200 lines
8.6 KiB
C#
200 lines
8.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using SteamWare;
|
|
using GMW_data;
|
|
|
|
namespace GMW_Term.WebUserControls
|
|
{
|
|
public partial class mod_smartList : System.Web.UI.UserControl
|
|
{
|
|
/// <summary>
|
|
/// wrapper traduzione termini
|
|
/// </summary>
|
|
/// <param name="lemma"></param>
|
|
/// <returns></returns>
|
|
public string traduci(string lemma)
|
|
{
|
|
return user_std.UtSn.Traduci(lemma);
|
|
}
|
|
/// <summary>
|
|
/// chiamata principale
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
updatePackListStatus();
|
|
// resetto!
|
|
resetAndUpdate();
|
|
}
|
|
/// <summary>
|
|
/// aggiorna lo stato della packing list corrente
|
|
/// </summary>
|
|
private void updatePackListStatus()
|
|
{
|
|
// recupero barcode e controllo sia valido
|
|
string barcode = memLayer.ML.StringSessionObj("UDC_sel");
|
|
string particolare = "";
|
|
bool barcodeOk = MagClass.magazzino.checkUDC(barcode);
|
|
bool checkUDC_mov = MagClass.magazzino.checkUDC_mov(barcode); //2013.07.24 aggiunto controllo x movimentabile poiché NON in LDP scaricata
|
|
bool udcIsConsumabile = MagClass.magazzino.IdxPosizioneUdc(barcode) >= 0; //2013.07.24 aggiunto controllo x sapere se sia consumabile (idxPosizione > 0)
|
|
bool udcPrelevabile = (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count == 0);
|
|
if (barcodeOk && checkUDC_mov && udcIsConsumabile && udcPrelevabile)
|
|
{
|
|
try
|
|
{
|
|
// calcolo particolare
|
|
particolare = MagClass.magazzino.getParticolareByUDC(barcode);
|
|
}
|
|
catch
|
|
{ }
|
|
if (particolare != "")
|
|
{
|
|
/* ***************************************************
|
|
* Ricalcola e salva:
|
|
* - elenco UDC
|
|
* - elenco particolari
|
|
* - crea LDP e relative righe x ogni UDC
|
|
* ***************************************************/
|
|
|
|
// lista di prelievo
|
|
string currLDP = "";
|
|
// cerco la LDP dato utente, tipo e particolare...
|
|
try
|
|
{
|
|
currLDP = MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipoPart(MagClass.magazzino.CodSoggCurrUser, "00-Smart", particolare)[0].CodLista;
|
|
}
|
|
catch
|
|
{ }
|
|
// controllo se vada aggiunto particolare
|
|
if (currLDP == "")
|
|
{
|
|
// creo nuova LDP smart
|
|
currLDP = MagClass.magazzino.creaListaPrelievoSmart(memLayer.ML.confReadString("CodCS"), "00-Smart", particolare, "*", "*", 1, "*", "", "");
|
|
// imposto ad iniziata
|
|
MagClass.magazzino.attivaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser);
|
|
MagClass.magazzino.iniziaListaPrelievo(memLayer.ML.confReadString("CodCS"), currLDP, MagClass.magazzino.CodSoggCurrUser);
|
|
}
|
|
// controllo se vada aggiunto UDC: lo cerco nelle RLP prelevate
|
|
if (MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(barcode).Rows.Count < 1)
|
|
{
|
|
if (currLDP != "")
|
|
{
|
|
// aggiungo particolare a LDP Smart esistente
|
|
MagClass.magazzino.confermaUdcPrelevatoPerLista(currLDP, barcode);
|
|
}
|
|
lblErrore.Visible = false;
|
|
}
|
|
else
|
|
{
|
|
// indico barcode già caricato
|
|
lblErrore.Visible = true;
|
|
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato"));
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (barcode != "")
|
|
{
|
|
lblErrore.Visible = true;
|
|
if (!udcIsConsumabile)
|
|
{
|
|
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcConsumato"));
|
|
}
|
|
else if (!checkUDC_mov)
|
|
{
|
|
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcInLdpScaricata"));
|
|
}
|
|
else
|
|
{
|
|
// indico barcode già caricato
|
|
lblErrore.Text = string.Format("{0}: {1}", barcode, traduci("udcGiaPrelevato"));
|
|
}
|
|
}
|
|
}
|
|
/* ***************************************************
|
|
* update visualizzazione, aggiorna:
|
|
* - tot UDC
|
|
* - tot particolari
|
|
* ***************************************************/
|
|
lblGeneraListe.Text = traduci("lblGeneraListe");
|
|
lblResetListe.Text = traduci("lblResetListe");
|
|
lblTotColli.Text = traduci("lblTotColli");
|
|
lblNumColli.Text = string.Format("{0} UDC", MagClass.magazzino.taRigheListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count);
|
|
lblParticolari.Text = traduci("lblParticolari");
|
|
lblNumPart.Text = string.Format("{0} {1}", MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart").Rows.Count, traduci("Particolari"));
|
|
}
|
|
/// <summary>
|
|
/// Generazione delle liste di prelievo
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnGeneraListe_Click(object sender, EventArgs e)
|
|
{
|
|
// prendo le liste smart e le completo
|
|
foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart"))
|
|
{
|
|
try
|
|
{
|
|
// indico completata
|
|
MagClass.magazzino.completaListaPrelievo(memLayer.ML.confReadString("CodCS"), riga.CodLista, MagClass.magazzino.CodSoggCurrUser, Request.UserHostName);
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
resetAndUpdate();
|
|
}
|
|
/// <summary>
|
|
/// aggiorna visualizzazioni e resetta
|
|
/// </summary>
|
|
private void resetAndUpdate()
|
|
{
|
|
//memLayer.ML.emptySessionVal("UDC_sel");
|
|
GMW_data.TermClass.Ter.resetScanBarcode(true, false, false);
|
|
// aggiorno visualizzazione
|
|
updatePackListStatus();
|
|
//lblErrore.Visible = false;
|
|
}
|
|
/// <summary>
|
|
/// reset UDC x le liste di prelievo
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnResetListe_Click(object sender, EventArgs e)
|
|
{
|
|
// prendo le liste smart e le completo
|
|
foreach (DS_magazzino.ElencoListePrelievoRow riga in MagClass.magazzino.taElencoListePrelievo.getOpenByUserTipo(MagClass.magazzino.CodSoggCurrUser, "00-Smart"))
|
|
{
|
|
try
|
|
{
|
|
// elimino righe
|
|
MagClass.magazzino.taRigheListePrelievo.stp_RLP_deleteFromCodLista(riga.CodLista);
|
|
// elimino lista
|
|
MagClass.magazzino.taElencoListePrelievo.DeleteQuery(riga.CodLista);
|
|
// elimino task attivo e cod lista attuale
|
|
memLayer.ML.emptySessionVal("CodListaAttiva");
|
|
memLayer.ML.emptySessionVal("activeTask");
|
|
lblErrore.Visible = false;
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
resetAndUpdate();
|
|
}
|
|
/// <summary>
|
|
/// fornisce verifica se l'udc sia già stato prelevato altrove...
|
|
/// </summary>
|
|
/// <param name="udc"></param>
|
|
/// <returns></returns>
|
|
public bool udcPrelevato(object udc)
|
|
{
|
|
return GMW_data.MagClass.magazzino.taRigheListePrelievo.getPrelevateByUdc(udc.ToString()).Rows.Count > 0;
|
|
}
|
|
|
|
}
|
|
} |