modifica controllo LiquidiDT integrato in MERGE con UserControlBCodeMan...

This commit is contained in:
Samuele E. Locatelli
2017-05-24 12:08:07 +02:00
parent 7f604035f6
commit 8070aaf211
2 changed files with 74 additions and 327 deletions
+4 -1
View File
@@ -5,6 +5,9 @@ using System.Web.UI;
namespace GMW.WebUserControls
{
/// <summary>
/// Pagina finiti DT
/// </summary>
public partial class mod_PostFin_DT : GMW_data.UserControlBCodeMan
{
/// <summary>
@@ -1136,7 +1139,7 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// IMposta e legge imballo selezionato
/// Imposta e legge imballo selezionato
/// </summary>
public override string imballoSel
{
+70 -326
View File
@@ -8,78 +8,40 @@ namespace GMW.WebUserControls
/// <summary>
/// Pagina liquidi DT
/// </summary>
public partial class mod_PostLiq_DT : System.Web.UI.UserControl
public partial class mod_PostLiq_DT : GMW_data.UserControlBCodeMan
{
/// <summary>
/// stringa UID univoca
/// Imposta variabili specifiche classe
/// </summary>
public string uid
{
get
public override void setupVariabili()
{
return this.UniqueID.Replace("$", "_").Replace("-", "_");
}
}
/// <summary>
/// flusso associato (hard coded) a LI (finiti)
/// </summary>
protected string flusso = "FI";
/// <summary>
/// flusso associato (hard coded) ad ancestor TT (Trattati)
/// </summary>
protected string flussoAnc = "TT";
/// <summary>
/// flusso associato (hard coded) a temporaneo TL (Trattati/Liquidi)
/// </summary>
protected string flussoTemp = "TL";
/// <summary>
/// stato associato (hard coded) a UDC in OUT: Finito
/// </summary>
protected string statoUdcOut = "Fin";
/// <summary>
/// stato associato (hard coded) a UDC in IN: Trattato da travaso AL
/// </summary>
protected string statoUdcIn = "Tratt";
/// <summary>
/// codice evento dell'UDC definitivo (OUT) che si crea
/// </summary>
protected string codEventoUdcOut = "UDC_TL_DT";
/// <summary>
/// codice evento dell'UDC temporaneo (IN) che si crea
/// </summary>
protected string codEventoUdcIn = "UDC_TRATT";
protected string cssOk = "stileComandoOk";
protected string cssErr = "stileComandoKo";
protected string cssWait = "stileComandoND";
protected string cssAtt = "stileAttesa";
protected string cssWarn = "stileComandoWarn";
protected string cssAdd = "stileComandoAdd";
public event EventHandler eh_reqUpdate;
/// <summary>
/// Codice AL sulla linea...
/// </summary>
protected string currAL
{
get
{
string answ = "";
try
{
answ = MagClass.magazzino.taAL.getByKey(Postazione.currCodLinea)[0].CurrVal;
}
catch
{ }
return answ;
}
set
{
MagClass.magazzino.taAL.updateCurrVal(Postazione.currCodLinea, value);
}
flusso = "FI";
flussoAnc = "TT";
// temporaneo TL (Trattati/Liquidi)
flussoTemp = "TL";
statoUDC = "Fin";
statoUDC_pre = "Tratt";
eventoUDC = "UDC_TL_DT"; //UDC_FINWIP ???
eventoUDC_qta = "UDC_QTY";
eventoUDC_temp = "UDC_TRATT";
codLineaKo = "W8200";
QtaImballoStd = memLayer.ML.cdvi("QtaImballoFiniti");
CodImballoStd = memLayer.ML.cdv("CodImballoFiniti");
tipoUdcLinea = "Finito";
IdxPosizioneIn = memLayer.ML.cdvi("IdxPosizioneTrattati");
IdxPosizioneOut = memLayer.ML.cdvi("IdxPosizioneFiniti");
IdxPosizioneOutTempName = "IdxPosizioneFinTemp";
sVarIdxCella = "IdxCellaLineaFiniti";
IdxPosizioneOutTemp = memLayer.ML.cdvi(IdxPosizioneOutTempName);
tipoCartCurr = tipoCartellino.cartFiniti;
enableBCodeParticolare = false;
}
/// <summary>
/// Codice AL in carico
/// </summary>
protected string sourceAL
public override string sourceAL
{
get
{
@@ -91,23 +53,9 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// ultimo valore barcode letto (x confronto conferme doppio input...)
/// </summary>
protected string lastBarcodeIn
{
get
{
return memLayer.ML.StringSessionObj(string.Format("lastBCode_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("lastBCode_{0}", uid), value, false);
}
}
/// <summary>
/// Codice AL della cella corrente
/// </summary>
protected string destAL
public override string destAL
{
get
{
@@ -119,97 +67,9 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// Codice AL associato alla cella corrente...
/// </summary>
protected string AlByCella
{
get
{
string answ = "";
try
{
answ = string.Format("ALF00{0}", Postazione.currCodCella);
// controllo se esista AL sennò lo creo...
if (MagClass.magazzino.taEA.getByAL(answ).Rows.Count == 0)
{
MagClass.magazzino.taEA.Insert(answ, true, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, "", "");
}
}
catch
{ }
return answ;
}
}
/// <summary>
/// indica il codice articolo correntemente selezionato
/// </summary>
protected string currParticolare
{
get
{
return memLayer.ML.StringSessionObj(string.Format("currParticolare_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("currParticolare_{0}", uid), value, memLayer.ML.confReadBool("keepParticolareSel"));
}
}
/// <summary>
/// indica UDC correntemente selezionato
/// </summary>
protected string currUDC
{
get
{
return memLayer.ML.StringSessionObj(string.Format("UDC_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("UDC_{0}", uid), value, memLayer.ML.confReadBool("keepParticolareSel"));
}
}
/// <summary>
/// num pezzi dell'ultimo UDC di uguale particolare e stato fatto...
/// </summary>
public int pezziUdc
{
get
{
int answ = 0;
try
{
answ = (int)MagClass.magazzino.taCartellini.getLastByParticolareStatoConImb(memLayer.ML.StringSessionObj("CodCS"), currParticolare, statoUdcOut)[0].Qta;
}
catch
{
answ = memLayer.ML.cdvi("QtaImballoFiniti");
}
return answ;
}
}
/// <summary>
/// cod imballo dell'ultimo UDC del particolare generato
/// </summary>
public string lastCodImb
{
get
{
string answ = "";
try
{
answ = MagClass.magazzino.taCartellini.getLastByParticolareStatoConImb(memLayer.ML.StringSessionObj("CodCS"), currParticolare, statoUdcOut)[0].CodImballo;
}
catch
{
answ = memLayer.ML.cdv("CodImballoFiniti");
}
return answ;
}
}
/// <summary>
/// qta pezzi x UDC
/// </summary>
public int qta
public override int qta
{
get
{
@@ -228,65 +88,9 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(object lemma)
{
return user_std.UtSn.Traduci(lemma.ToString());
}
/// <summary>
/// indica se i caratteri vadano forzati a maiuscoli
/// </summary>
public bool forceUppercase
{
get
{
return memLayer.ML.confReadBool("forceUppercase");
}
}
/// <summary>
/// Formato Datamatrix della linea selezionata
/// </summary>
protected string FormatoDtmxLinea
{
get
{
string answ = "";
try
{
answ = MagClass.magazzino.taAL.getByKey(Postazione.currCodLinea)[0].FormatoDtmx;
}
catch
{ }
return answ;
}
}
/// <summary>
/// codice particolare da datamatrix
/// </summary>
/// <param name="byTable">bollean:
/// true = utilizza lookUp su tabella dati acquisiti
/// false = prova a decodificare (da formato Dtmx linea)</param>
/// <returns></returns>
protected string partByDtmx(bool byTable)
{
string answ = "";
if (byTable)
{
answ = DataMatrix.mgr.taDtxAcquisiti.getByKey(barcodeIn)[0].Particolare; // Decode.GetData(barcodeIn, FormatoDtmxLinea)[0].Particolare;
}
else
{
answ = DataMatrix.mgr.taDecode.GetData(barcodeIn, FormatoDtmxLinea)[0].Particolare;
}
return answ;
}
/// <summary>
/// valore barcode
/// </summary>
public string barcodeIn
public override string barcodeIn
{
get
{
@@ -302,34 +106,26 @@ namespace GMW.WebUserControls
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
public override void Page_Load(object sender, EventArgs e)
{
// inizializzazione base!
base.Page_Load(sender, e);
// inizializzazione custom...
if (!Page.IsPostBack)
{
Postazione.messaggiText = "";
Postazione.warningText = "";
qta = 0;
currUDC = "";
forceDelete = false;
sourceAL = "";
setDefaultVal();
odsAL.DataBind();
grViewSource.DataBind();
// NON RESETTO... 2014.04.10
//sendUpdateTablet("ND", "-", traduci("attesaInput"), "-", "-", "-", "", cssWait, cssWait);
}
setVisibility();
checkBarcode();
}
/// <summary>
/// imposta i valori di default ad avvio
/// imposta i valori di default all'avvio
/// </summary>
private void setDefaultVal()
{
if (currAL != "")
{
sourceAL = currAL;
}
sourceAL = currAL != "" ? currAL : "";
destAL = AlByCella;
}
/// <summary>
@@ -344,7 +140,7 @@ namespace GMW.WebUserControls
/// <summary>
/// sistema modalità input
/// </summary>
private void setVisibility()
public override void setVisibility()
{
bool showBtn = false;
if (sourceAL != "" && currAL == "")
@@ -384,8 +180,6 @@ namespace GMW.WebUserControls
Postazione.warningText = "";
Postazione.CssClass = cssAtt;
doUpdate();
// NON RESETTO... 2014.04.10
//sendUpdateTablet("ND", "-", traduci("attesaInput"), "-", "-", "-", "", cssWait, cssWait);
}
/// <summary>
/// Verifica l'AL se sia ok x procedere:
@@ -406,12 +200,12 @@ namespace GMW.WebUserControls
if (answ)
{
Postazione.warningText = "";
Postazione.CssClass = "stileComandoOk";
Postazione.CssClass = cssOk;
}
else
{
Postazione.warningText = traduci("ErroreAlNonTtAttivo");
Postazione.CssClass = "stileComandoKo";
Postazione.CssClass = cssErr;
}
return answ;
@@ -433,19 +227,19 @@ namespace GMW.WebUserControls
if (!answ)
{
Postazione.warningText = traduci("ErroreAlNonDtx");
Postazione.CssClass = "stileComandoKo";
Postazione.CssClass = cssErr;
}
else
{
Postazione.warningText = "";
Postazione.CssClass = "stileComandoOk";
Postazione.CssClass = cssOk;
}
return answ;
}
/// <summary>
/// controlla se ci sia un barcode e cosa farne...
/// </summary>
private void checkBarcode()
public override void checkBarcode()
{
if (barcodeIn != "")
{
@@ -472,7 +266,7 @@ namespace GMW.WebUserControls
catch
{
Postazione.warningText = traduci("ERR-IMB-001");
Postazione.CssClass = "stileComandoKo";
Postazione.CssClass = cssErr;
}
break;
case tipoCodiceBarcode.Comando:
@@ -499,7 +293,7 @@ namespace GMW.WebUserControls
{
// controllo se sia un UDC di finiti LIQ in posizione 4...
DS_magazzino.ElencoCartelliniRow cartUDC = MagClass.magazzino.taCartellini.getByUdc(barcodeIn)[0];
if (cartUDC.CodStato == statoUdcOut && cartUDC.IdxPosizione == memLayer.ML.cdvi("IdxPosizioneFiniti"))
if (cartUDC.CodStato == statoUDC && cartUDC.IdxPosizione == memLayer.ML.cdvi("IdxPosizioneFiniti"))
{
// controllo NON ci sia già un UDC di pari particolare caricato nella postazione corrente (non posso avere 2 UDC a pari particolare da riempire...)
if (MagClass.magazzino.taCartellini.getByParticolareAL(cartUDC.Particolare, destAL).Rows.Count == 0)
@@ -729,21 +523,21 @@ namespace GMW.WebUserControls
if (memLayer.ML.confReadBool("useStoredLiqSP"))
{
// nuova stored con AL e cella......
NewUDC = MagClass.magazzino.creaUdcWithAlCella(destAL, sourceAL, barcodeIn, statoUdcOut, Postazione.currCodCella, flusso, "", currParticolare, "", "", "", "", OldUDC, 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, pezziUdc, 0, 0, adesso, 0, statoUdcOut, memLayer.ML.cdvi("IdxPosizioneFinTemp"), "IdxPosizioneFinTemp", codEventoUdcOut, "", "", adesso.Year, Request.UserHostName);
NewUDC = MagClass.magazzino.creaUdcWithAlCella(destAL, sourceAL, barcodeIn, statoUDC, Postazione.currCodCella, flusso, "", currParticolare, "", "", "", "", OldUDC, 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, pezziUdc, 0, 0, adesso, 0, statoUDC, memLayer.ML.cdvi("IdxPosizioneFinTemp"), "IdxPosizioneFinTemp", eventoUDC, "", "", adesso.Year, Request.UserHostName);
// registro creazione nuovo UDC
MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, NewUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC PostLiquidi DT, qta: {0} {1}", qta, ""));
}
else
{
// oppure lo creo...
NewUDC = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", OldUDC, 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, pezziUdc, 0, 0, adesso, 0, statoUdcOut, memLayer.ML.cdvi("IdxPosizioneFinTemp"), "IdxPosizioneFinTemp", codEventoUdcOut, "", "", adesso.Year, Request.UserHostName);
NewUDC = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", OldUDC, 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, pezziUdc, 0, 0, adesso, 0, statoUDC, memLayer.ML.cdvi("IdxPosizioneFinTemp"), "IdxPosizioneFinTemp", eventoUDC, "", "", adesso.Year, Request.UserHostName);
// registro creazione nuovo UDC
MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, NewUDC, currParticolare, "creaUDC", string.Format("Creato nuovo UDC PostLiquidi DT, qta: {0} {1}", qta, ""));
// lo associo all'AL!
MagClass.magazzino.taAL2UDC.Insert(destAL, NewUDC, adesso, MagClass.magazzino.CodSoggCurrUser);
DataMatrix.mgr.taDtx2UDC.UpdateUDC(NewUDC, barcodeIn, statoUdcOut, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
DataMatrix.mgr.taDtx2UDC.UpdateUDC(NewUDC, barcodeIn, statoUDC, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
// disattivo AL (se non era già disattivo...) x evitare si possa togliere senza chiudere...
MagClass.magazzino.taEA.DisattivaAL(sourceAL);
// fix messaggi
@@ -777,7 +571,7 @@ namespace GMW.WebUserControls
{
dtxInUdcDest = DataMatrix.mgr.taDtx2UDC.getByDtx(barcodeIn).Select(string.Format("UDC = '{0}'", NewUDC)).Length > 0;
// ricalcolo vecchio UDC
OldUDC = ((DS_DataMatrix.Dtx2UDCRow)DataMatrix.mgr.taDtx2UDC.getByDtx(barcodeIn).Select(string.Format("CodStato = '{0}'", statoUdcIn))[0]).UDC.Replace(flussoAnc, flussoTemp);
OldUDC = ((DS_DataMatrix.Dtx2UDCRow)DataMatrix.mgr.taDtx2UDC.getByDtx(barcodeIn).Select(string.Format("CodStato = '{0}'", statoUDC_pre))[0]).UDC.Replace(flussoAnc, flussoTemp);
// verifico SE sia in carico ad AL...
if (OldUDC != "")
{
@@ -792,7 +586,7 @@ namespace GMW.WebUserControls
if (dtxInUdcDest && udcSourceOk)
{
// tolgo da AL (se caricato), faccio update e sposto su UDC sorgente...
DataMatrix.mgr.taDtx2UDC.UpdateUDC(OldUDC, barcodeIn, statoUdcOut, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
DataMatrix.mgr.taDtx2UDC.UpdateUDC(OldUDC, barcodeIn, statoUDC, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
// fix messaggi
Postazione.messaggiText = traduci("ToltoDtxDaDest");
Postazione.warningText = "";
@@ -819,7 +613,7 @@ namespace GMW.WebUserControls
else
{
// se lo trovo chiamo procedura di spostamento Dtx tra UDC sorgente --> dest (con eventuale creazione dest)
DataMatrix.mgr.taDtx2UDC.UpdateUDC(NewUDC, barcodeIn, statoUdcOut, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
DataMatrix.mgr.taDtx2UDC.UpdateUDC(NewUDC, barcodeIn, statoUDC, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
// fix messaggi
Postazione.messaggiText = traduci("ConfermatoDtx");
Postazione.warningText = "";
@@ -926,7 +720,7 @@ namespace GMW.WebUserControls
try
{
// ricalcolo vecchio UDC
OldUDC = ((DS_DataMatrix.Dtx2UDCRow)DataMatrix.mgr.taDtx2UDC.getByDtx(barcodeIn).Select(string.Format("CodStato = '{0}'", statoUdcIn))[0]).UDC.Replace(flussoAnc, flussoTemp);
OldUDC = ((DS_DataMatrix.Dtx2UDCRow)DataMatrix.mgr.taDtx2UDC.getByDtx(barcodeIn).Select(string.Format("CodStato = '{0}'", statoUDC_pre))[0]).UDC.Replace(flussoAnc, flussoTemp);
IdxPosizione = MagClass.magazzino.taCartellini.getByUdc(OldUDC)[0].IdxPosizione;
currParticolare = MagClass.magazzino.taCartellini.getByUdc(OldUDC)[0].Particolare;
NewUDC = DataMatrix.mgr.taDtx2UDC.getByDtxAl(destAL, barcodeIn)[0].UDC;
@@ -945,7 +739,7 @@ namespace GMW.WebUserControls
if (dtxInUdcDest && udcSourceOk)
{
// tolgo da AL (se caricato), faccio update e sposto su UDC sorgente...
DataMatrix.mgr.taDtx2UDC.UpdateUDC(OldUDC, barcodeIn, statoUdcOut, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
DataMatrix.mgr.taDtx2UDC.UpdateUDC(OldUDC, barcodeIn, statoUDC, DateTime.Now, MagClass.magazzino.CodSoggCurrUser, false, false);
// fix messaggi
Postazione.messaggiText = traduci("ToltoDtxDaDest");
Postazione.warningText = "";
@@ -1035,17 +829,13 @@ namespace GMW.WebUserControls
/// <summary>
/// aggiorna tabella + focus a barcode
/// </summary>
public void doUpdate()
public override void doUpdate()
{
base.doUpdate();
setDefaultVal();
setVisibility();
grViewSource.DataBind();
grViewDest.DataBind();
// raise dell'evento
if (eh_reqUpdate != null)
{
eh_reqUpdate(this, new EventArgs());
}
raiseEvent(ucEvType.ReqUpdateParent);
verificaBtnStampa();
txtBarcode.Focus();
}
@@ -1070,7 +860,7 @@ namespace GMW.WebUserControls
}
Postazione.messaggiText = traduci("partSelected");
Postazione.warningText = "";
Postazione.CssClass = "stileComandoOk";
Postazione.CssClass = cssOk;
setVisibility();
doUpdate();
// fisso focus su note!
@@ -1195,42 +985,25 @@ namespace GMW.WebUserControls
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
public override void btnReset_Click(object sender, EventArgs e)
{
grViewDest.SelectedIndex = -1;
qta = 0;
currUDC = "";
setVisibility();
doUpdate();
base.btnReset_Click(sender, e);
}
/// <summary>
/// update Qty x UDC selezionato...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtUpdQty_Click(object sender, EventArgs e)
public override void lbtUpdQty_Click(object sender, EventArgs e)
{
MagClass.magazzino.taCartellini.updateQty(currUDC, MagClass.magazzino.CodSoggCurrUser, "U", codEventoUdcOut, qta);
base.lbtUpdQty_Click(sender, e);
// fix tablet
checkUpdateTablet(currUDC);
currUDC = "";
currParticolare = "";
grViewDest.SelectedIndex = -1;
doUpdate();
}
/// <summary>
/// richiesta (ri)stampa UDC
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ristampa()
{
bool fatto = false;
fatto = MagClass.magazzino.ristampaUdc(udcReq, Postazione.printer, Request.UserHostName);
// registro ri-stampa UDC
if (fatto) MagClass.magazzino.taSAO.insertQuery(DateTime.Now, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, udcReq, "", "stampaUDC", string.Format("Ri-Stampato UDC Dtx {0} su linea {1}", currUDC, Postazione.currCodLinea));
}
/// <summary>
/// verifica visibilità btn stampa UDC
/// </summary>
private void verificaBtnStampa()
@@ -1339,16 +1112,6 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// udc da stampare
/// </summary>
protected string udcReq
{
get
{
return memLayer.ML.StringSessionObj("udcSelSAO");
}
}
/// <summary>
/// Effettua update della pagina tablet RT collegata alla postazione liquidi
/// </summary>
/// <param name="UDC"></param>
@@ -1376,37 +1139,18 @@ namespace GMW.WebUserControls
}
}
/// <summary>
/// preseleziono (se possibile) imballo...
/// Imposta e legge imballo selezionato
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlImballi_DataBound(object sender, EventArgs e)
{
selezionaImballo();
public override string imballoSel
{
get
{
return ddlImballi.SelectedValue;
}
set
{
ddlImballi.SelectedValue = value;
}
}
/// <summary>
/// seleziona imballo corretto
/// </summary>
private void selezionaImballo()
{
string codImb = "";
// cerco se c'è un imballo x particolare corrente...
if (currParticolare != "")
{
codImb = lastCodImb;
}
else
{
codImb = memLayer.ML.cdv("CodImballoFiniti");
}
try
{
// preseleziono
ddlImballi.SelectedValue = codImb;
}
catch
{ }
}
}
}