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