diff --git a/GMW/Web.config b/GMW/Web.config index 88e45a3c..770077be 100644 --- a/GMW/Web.config +++ b/GMW/Web.config @@ -66,7 +66,7 @@ - + @@ -158,6 +158,7 @@ + diff --git a/GMW/WebUserControls/mod_SterrTagOUT.ascx.cs b/GMW/WebUserControls/mod_SterrTagOUT.ascx.cs index 81685e20..15439141 100644 --- a/GMW/WebUserControls/mod_SterrTagOUT.ascx.cs +++ b/GMW/WebUserControls/mod_SterrTagOUT.ascx.cs @@ -19,7 +19,11 @@ namespace GMW.WebUserControls /// /// stato associato (hard coded) a FUSI /// - protected string statoUDC = "Sterrati"; + protected string statoUDC = "Sterrato"; + /// + /// tipo di evento associato alla creazione dell'UDC + /// + protected string eventoUDC = "UDC_STTA"; /// /// stringa degli UDC selezionati per consumo COMPLETO (nel formato #UDC1##UDC2#) /// @@ -547,28 +551,45 @@ namespace GMW.WebUserControls } if (codSogg != "" && particolare != "") { - // genero cartellino anima + // genero cartellino DateTime adesso = DateTime.Now; try { // creo nuovo UDC anime multiple - newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoAnime"), "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneAnimeExt"), "IdxPosizioneAnimeExt", "UDC_ANIMA", noteTrim, "", adesso.Year, Request.UserHostName); //!!!Fare, finire porting da anime... + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, memLayer.ML.confReadString("CodImballoSterr"), "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneSterrati"), "IdxPosizioneSterrati", eventoUDC, noteTrim, "", adesso.Year, Request.UserHostName); // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Anime EX, qta: {0} {1}", qta, noteTrim)); + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Sterrato, qta: {0} {1}", qta, noteTrim)); } catch (Exception exc) { - httpLog(string.Format("Errore creazione UDC anime mult: {0}", exc), tipoLog.EXCEPTION); + httpLog(string.Format("Errore creazione UDC Sterrato: {0}", exc), tipoLog.EXCEPTION); } - // se ho cart liquidi genero (se non ci sono) cart trattamenti + // devo gestire associazione e consumo cartellini FUSI if (newUdcChild != "") { + string[] UDC_P; + // ASSOCIO tutti gli UDC consumati sia Parziali che Completi al nuovo UDC + if (udcSelP.Replace("#", "").Length > 1) + { + // associo + UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelP, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + explAssociaUdc(newUdcChild, UDC_P); + } + if (udcSelC.Replace("#", "").Length > 1) + { + // associo + UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelC, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + explAssociaUdc(newUdcChild, UDC_P); + // consumo gli UDC indicati come "C" + consumaUdc(UDC_P); + } + // sposto UDC appena creato in posizione default + /*************************************************************************************** - * dopo che l'ho creato lo sposto da post anime ext a post anime int (NO UPDATE AS400...) - * IdxPosizioneAnimeExt --> IdxPosizioneAnime + * dopo che l'ho creato lo sposto * !!! DEVO CALCOLARE LA CELLA !!! parto dal blocco calcolato da tab transizioni ***************************************************************************************/ - int idxBloccoTo = StateMachine.SM.getIdxBloccoTo("UDC_ANIMA", memLayer.ML.confReadInt("IdxPosizioneAnimeExt")); + int idxBloccoTo = StateMachine.SM.getIdxBloccoTo(eventoUDC, memLayer.ML.confReadInt("IdxPosizioneSterrati")); int idxCellaTo = 0; try { @@ -583,8 +604,7 @@ namespace GMW.WebUserControls adesso = DateTime.Now; adesso = adesso.AddSeconds(1); // registro creazione nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "spostaUDC", "Sposta UDC Anime EXT in Int"); - + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "spostaUDC", "Sposta UDC Sterrato"); } // ora stampo il nuovo cartellino!!! MagClass.magazzino.stampaUdc(newUdcChild, postazione_printer, tipoCartellino.cartAnime, Request.UserHostName); @@ -592,7 +612,7 @@ namespace GMW.WebUserControls adesso = DateTime.Now; adesso = adesso.AddSeconds(2); // registro stampa nuovo UDC - MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Anime EXT"); + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, postazione_name, postazione_IP, newUdcChild, particolare, "stampaUDC", "Stampato UDC Sterrato"); } // resetto doResetData(); @@ -610,6 +630,46 @@ namespace GMW.WebUserControls } } /// + /// effettua il consumo di tutti gli UDC inviati come array di stringhe + /// + /// + private void consumaUdc(string[] UDC_P) + { + if (UDC_P.Length > 0) + { + // ciclo + foreach (string udc_p in UDC_P) + { + // se UDC è NON vuoto ed esiste + if (udc_p != "" && MagClass.magazzino.checkUDC(barcodeIn)) + { + // consumo UDC + MagClass.magazzino.scaricaUdcMpWip(udc_p, Request.UserHostName); + } + } + } + } + /// + /// esplode elenco UDC ed associa al nuovo UDC + /// + /// UDC da associare come child + /// vettorei di UDC da associare come parent + private void explAssociaUdc(string newUdcChild, string[] UDC_P) + { + if (UDC_P.Length > 0) + { + // ciclo + foreach (string udc_p in UDC_P) + { + // se UDC è NON vuoto ed esiste + if (udc_p != "" && MagClass.magazzino.checkUDC(barcodeIn)) + { + MagClass.magazzino.associaUdcParent(newUdcChild, udc_p); + } + } + } + } + /// /// wrapper per log con salvataggio dell'IP del chiamante /// /// diff --git a/GMW/bin/GMW.dll b/GMW/bin/GMW.dll index 258c006e..fd4b2bfe 100644 Binary files a/GMW/bin/GMW.dll and b/GMW/bin/GMW.dll differ