diff --git a/GMW-RT/bin/GMW-RT.dll b/GMW-RT/bin/GMW-RT.dll index 9c0d44c2..8395abd5 100644 Binary files a/GMW-RT/bin/GMW-RT.dll and b/GMW-RT/bin/GMW-RT.dll differ diff --git a/GMW-UT/bin/GMW-UT.dll b/GMW-UT/bin/GMW-UT.dll index 32650c0b..b80b028a 100644 Binary files a/GMW-UT/bin/GMW-UT.dll and b/GMW-UT/bin/GMW-UT.dll differ diff --git a/GMW/GMW.csproj b/GMW/GMW.csproj index 0e92cb71..96d8d422 100644 --- a/GMW/GMW.csproj +++ b/GMW/GMW.csproj @@ -515,6 +515,8 @@ + + @@ -1653,6 +1655,20 @@ mod_periodoAnalisi.ascx + + mod_PostFinMultIN.ascx + ASPXCodeBehind + + + mod_PostFinMultIN.ascx + + + mod_PostFinMultOUT.ascx + ASPXCodeBehind + + + mod_PostFinMultOUT.ascx + mod_PostFusioni.ascx ASPXCodeBehind diff --git a/GMW/POST_FinitiMult_IN.aspx b/GMW/POST_FinitiMult_IN.aspx index 5a793226..0102db20 100644 --- a/GMW/POST_FinitiMult_IN.aspx +++ b/GMW/POST_FinitiMult_IN.aspx @@ -1,7 +1,40 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/FullPage.master" AutoEventWireup="true" CodeBehind="POST_FinitiMult_IN.aspx.cs" Inherits="GMW.POST_FinitiMult_IN" %> + +<%@ Register Src="WebUserControls/mod_selLineaNtDt.ascx" TagName="mod_selLineaNtDt" TagPrefix="uc1" %> +<%@ Register Src="WebUserControls/mod_storicoAzioniOperatore.ascx" TagName="mod_storicoAzioniOperatore" TagPrefix="uc2" %> +<%@ Register Src="~/WebUserControls/mod_PostFinMultIN.ascx" TagPrefix="uc1" TagName="mod_PostFinMultIN" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GMW/POST_FinitiMult_IN.aspx.cs b/GMW/POST_FinitiMult_IN.aspx.cs index 224f4f5a..853c3bd9 100644 --- a/GMW/POST_FinitiMult_IN.aspx.cs +++ b/GMW/POST_FinitiMult_IN.aspx.cs @@ -4,6 +4,8 @@ using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using SteamWare; +using GMW_data; namespace GMW { @@ -11,7 +13,119 @@ namespace GMW { protected void Page_Load(object sender, EventArgs e) { - + if (!Page.IsPostBack) + { + updatePrinterPostazione(); + // fix css... + Postazione.CssClass = "stileAttesa"; + // imposto pos abilitata x cancellazione + mod_storicoAzioniOperatore1.IdxPosizione2del = memLayer.ML.confReadInt("IdxPosizioneFiniti"); + // pulisco dir temp dai file dei cartellini stampati + reportPrinter.obj.pulisciDir(); + } + // update vari... + doUpdate(); + mod_storicoAzioniOperatore1.eh_stampa += new EventHandler(mod_storicoAzioniOperatore1_eh_stampa); + mod_PostFinMultIN.doUpdate(); + mod_PostFinMultIN.eh_reqUpdate += mod_PostRX_NT1_eh_reqUpdate; + mod_selLineaNtDt1.eh_lineSelected += mod_selLineaNtDt1_eh_doRefresh; + mod_selLineaNtDt1.eh_showHideStorico += mod_selLineaNtDt1_eh_showHideStorico; + } + /// + /// Handles the showHideStorico event of the mod_selLineaNtDt1_eh control. + /// + /// The source of the event. + /// The instance containing the event data. + private void mod_selLineaNtDt1_eh_showHideStorico(object sender, EventArgs e) + { + fixStorico(); + } + /// + /// Handles the doRefresh event of the mod_selLineaNtDt1_eh control. + /// + /// The source of the event. + /// The instance containing the event data. + private void mod_selLineaNtDt1_eh_doRefresh(object sender, EventArgs e) + { + doUpdate(); + mod_PostFinMultIN.doResetData(); + mod_PostFinMultIN.doUpdate(); + } + /// + /// richiesta update del controllo SAO + /// + /// + /// + void mod_PostRX_NT1_eh_reqUpdate(object sender, EventArgs e) + { + doUpdate(); + } + /// + /// aggiorna messaggi e css + /// + private void updateMessCss() + { + lblWarning.Text = Postazione.warningText; + lblMessaggi.Text = Postazione.messaggiText; + pnlAll.CssClass = Postazione.CssClass; + } + /// + /// richiesta (ri)stampa UDC + /// + /// + /// + void mod_storicoAzioniOperatore1_eh_stampa(object sender, EventArgs e) + { + mod_PostFinMultIN.ristampa(); + } + /// + /// sistemo visualizzazione pannelli + /// + private void fixPanels() + { + // default: moduli NON visibili SE non ho linea indicata.. + bool enableBtn = false; + if (Postazione.currCodCella != "") enableBtn = true; + mod_PostFinMultIN.Visible = enableBtn; + fixStorico(); + } + /// + /// wrapper traduzione + /// + /// + /// + public string traduci(object lemma) + { + return user_std.UtSn.Traduci(lemma.ToString()); + } + /// + /// toggle controllo storico + /// + private void fixStorico() + { + pnlSAO.Visible = Postazione.showStorico; + } + /// + /// update generale controlli + /// + private void doUpdate() + { + updateMessCss(); + fixPanels(); + mod_storicoAzioniOperatore1.doUpdate(); + } + /// + /// calcola postazione corrente (ip, name, printer) + /// + private void updatePrinterPostazione() + { + Postazione.IP = Request.UserHostName; + Postazione.setupPrinter(); + // mostro warning se postazione non configurata... + if (Postazione.printer == "n.d.") + { + lblWarning.Text = traduci("lblWarnPostNonConf"); + } } } } \ No newline at end of file diff --git a/GMW/POST_FinitiMult_IN.aspx.designer.cs b/GMW/POST_FinitiMult_IN.aspx.designer.cs index 2b05269b..2057ad6b 100644 --- a/GMW/POST_FinitiMult_IN.aspx.designer.cs +++ b/GMW/POST_FinitiMult_IN.aspx.designer.cs @@ -3,15 +3,76 @@ // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ -namespace GMW -{ - - - public partial class POST_FinitiMult_IN - { +namespace GMW { + + + public partial class POST_FinitiMult_IN { + + /// + /// mod_selLineaNtDt1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_selLineaNtDt mod_selLineaNtDt1; + + /// + /// pnlAll control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel pnlAll; + + /// + /// pnlSAO control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel pnlSAO; + + /// + /// mod_storicoAzioniOperatore1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_storicoAzioniOperatore mod_storicoAzioniOperatore1; + + /// + /// lblMessaggi control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblMessaggi; + + /// + /// lblWarning control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblWarning; + + /// + /// mod_PostFinMultIN control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_PostFinMultIN mod_PostFinMultIN; } } diff --git a/GMW/POST_FinitiMult_OUT.aspx b/GMW/POST_FinitiMult_OUT.aspx index 8fac3942..658b5d38 100644 --- a/GMW/POST_FinitiMult_OUT.aspx +++ b/GMW/POST_FinitiMult_OUT.aspx @@ -1,7 +1,41 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/FullPage.master" AutoEventWireup="true" CodeBehind="POST_FinitiMult_OUT.aspx.cs" Inherits="GMW.POST_FinitiMult_OUT" %> + +<%@ Register Src="WebUserControls/mod_selLineaNtDt.ascx" TagName="mod_selLineaNtDt" TagPrefix="uc1" %> +<%@ Register Src="WebUserControls/mod_storicoAzioniOperatore.ascx" TagName="mod_storicoAzioniOperatore" TagPrefix="uc2" %> +<%@ Register Src="~/WebUserControls/mod_PostFinMultOUT.ascx" TagPrefix="uc1" TagName="mod_PostFinMultOUT" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GMW/POST_FinitiMult_OUT.aspx.cs b/GMW/POST_FinitiMult_OUT.aspx.cs index 659ad052..933e8144 100644 --- a/GMW/POST_FinitiMult_OUT.aspx.cs +++ b/GMW/POST_FinitiMult_OUT.aspx.cs @@ -4,6 +4,8 @@ using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using SteamWare; +using GMW_data; namespace GMW { @@ -11,7 +13,118 @@ namespace GMW { protected void Page_Load(object sender, EventArgs e) { - + if (!Page.IsPostBack) + { + updatePrinterPostazione(); + // fix css... + Postazione.CssClass = "stileAttesa"; + // imposto pos abilitata x cancellazione + mod_storicoAzioniOperatore1.IdxPosizione2del = memLayer.ML.confReadInt("IdxPosizioneFiniti"); + // pulisco dir temp dai file dei cartellini stampati + reportPrinter.obj.pulisciDir(); + } + // update vari... + doUpdate(); + mod_storicoAzioniOperatore1.eh_stampa += new EventHandler(mod_storicoAzioniOperatore1_eh_stampa); + mod_PostFinMultOUT.eh_reqUpdate += mod_PostRX_NT1_eh_reqUpdate; + mod_selLineaNtDt1.eh_lineSelected += mod_selLineaNtDt1_eh_doRefresh; + mod_selLineaNtDt1.eh_showHideStorico += mod_selLineaNtDt1_eh_showHideStorico; + } + /// + /// Handles the showHideStorico event of the mod_selLineaNtDt1_eh control. + /// + /// The source of the event. + /// The instance containing the event data. + private void mod_selLineaNtDt1_eh_showHideStorico(object sender, EventArgs e) + { + fixStorico(); + } + /// + /// Handles the doRefresh event of the mod_selLineaNtDt1_eh control. + /// + /// The source of the event. + /// The instance containing the event data. + private void mod_selLineaNtDt1_eh_doRefresh(object sender, EventArgs e) + { + doUpdate(); + mod_PostFinMultOUT.doResetData(); + mod_PostFinMultOUT.doUpdate(); + } + /// + /// richiesta update del controllo SAO + /// + /// + /// + void mod_PostRX_NT1_eh_reqUpdate(object sender, EventArgs e) + { + doUpdate(); + } + /// + /// aggiorna messaggi e css + /// + private void updateMessCss() + { + lblWarning.Text = Postazione.warningText; + lblMessaggi.Text = Postazione.messaggiText; + pnlAll.CssClass = Postazione.CssClass; + } + /// + /// richiesta (ri)stampa UDC + /// + /// + /// + void mod_storicoAzioniOperatore1_eh_stampa(object sender, EventArgs e) + { + mod_PostFinMultOUT.ristampa(); + } + /// + /// sistemo visualizzazione pannelli + /// + private void fixPanels() + { + // default: moduli NON visibili SE non ho linea indicata.. + bool enableBtn = false; + if (Postazione.currCodCella != "") enableBtn = true; + mod_PostFinMultOUT.Visible = enableBtn; + fixStorico(); + } + /// + /// wrapper traduzione + /// + /// + /// + public string traduci(object lemma) + { + return user_std.UtSn.Traduci(lemma.ToString()); + } + /// + /// toggle controllo storico + /// + private void fixStorico() + { + pnlSAO.Visible = Postazione.showStorico; + } + /// + /// update generale controlli + /// + private void doUpdate() + { + updateMessCss(); + fixPanels(); + mod_storicoAzioniOperatore1.doUpdate(); + } + /// + /// calcola postazione corrente (ip, name, printer) + /// + private void updatePrinterPostazione() + { + Postazione.IP = Request.UserHostName; + Postazione.setupPrinter(); + // mostro warning se postazione non configurata... + if (Postazione.printer == "n.d.") + { + lblWarning.Text = traduci("lblWarnPostNonConf"); + } } } } \ No newline at end of file diff --git a/GMW/POST_FinitiMult_OUT.aspx.designer.cs b/GMW/POST_FinitiMult_OUT.aspx.designer.cs index d9ea2b17..944ab199 100644 --- a/GMW/POST_FinitiMult_OUT.aspx.designer.cs +++ b/GMW/POST_FinitiMult_OUT.aspx.designer.cs @@ -3,15 +3,76 @@ // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ -namespace GMW -{ - - - public partial class POST_FinitiMult_OUT - { +namespace GMW { + + + public partial class POST_FinitiMult_OUT { + + /// + /// mod_selLineaNtDt1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_selLineaNtDt mod_selLineaNtDt1; + + /// + /// pnlAll control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel pnlAll; + + /// + /// pnlSAO control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel pnlSAO; + + /// + /// mod_storicoAzioniOperatore1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_storicoAzioniOperatore mod_storicoAzioniOperatore1; + + /// + /// lblMessaggi control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblMessaggi; + + /// + /// lblWarning control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblWarning; + + /// + /// mod_PostFinMultOUT control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW.WebUserControls.mod_PostFinMultOUT mod_PostFinMultOUT; } } diff --git a/GMW/WebUserControls/mod_PostFinMultIN.ascx b/GMW/WebUserControls/mod_PostFinMultIN.ascx new file mode 100644 index 00000000..905e88a3 --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultIN.ascx @@ -0,0 +1,113 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_PostFinMultIN.ascx.cs" Inherits="GMW.WebUserControls.mod_PostFinMultIN" %> + +<% if (false) + { %> + + +<% } %> + + + + + + + + + + + + +   + + + + + + + + + + + + + <%: traduci("UDC") %> + + + + + + + + + + + + + + <%-- + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GMW/WebUserControls/mod_PostFinMultIN.ascx.cs b/GMW/WebUserControls/mod_PostFinMultIN.ascx.cs new file mode 100644 index 00000000..63740245 --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultIN.ascx.cs @@ -0,0 +1,506 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Net; +using SteamWare; +using GMW_data; + +namespace GMW.WebUserControls +{ + public partial class mod_PostFinMultIN : System.Web.UI.UserControl + { + public event EventHandler eh_nuovaRicerca; + public event EventHandler eh_reqUpdate; + /// + /// stringa UID univoca + /// + public string uid + { + get + { + return this.UniqueID.Replace("$", "_").Replace("-", "_"); + } + } + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + fixRicercaUdc(); + traduciObj(); + idxCella = Postazione.currIdxCella; + } + doChecks(); + } + /// + /// IDX cella associata alla linea corrente + /// + protected int idxCella + { + get + { + int answ = 0; + if (memLayer.ML.isInSessionObject("IdxCellaLineaLM_IN")) + { + answ = memLayer.ML.IntSessionObj("IdxCellaLineaLM_IN"); + } + return answ; + } + set + { + memLayer.ML.setSessionVal("IdxCellaLineaLM_IN", value); + } + } + /// + /// verifica se si debab mostrare un campo ricerca UDC attivo... + /// + private void fixRicercaUdc() + { + if (memLayer.ML.isInSessionObject("valoreCercatoLMI")) + { + testoRicerca = memLayer.ML.StringSessionObj("valoreCercatoLMI"); + } + } + /// + /// richiesta (ri)stampa UDC + /// + /// + /// + public void ristampa() + { + bool fatto = false; + // registro ri-stampa UDC + DateTime adesso = DateTime.Now; + // calcolo particolare... + DS_magazzino.ElencoCartelliniRow rigaUDC; + string particolare = ""; + try + { + rigaUDC = MagClass.magazzino.taCartellini.getByUdc(udcReq)[0]; + particolare = rigaUDC.Particolare; + fatto = MagClass.magazzino.ristampaUdc(udcReq, Postazione.printer, Request.UserHostName); + } + catch + { + logger.lg.scriviLog(string.Format("Errore recupero particolare UDC Finito LM IN {0}", udcReq), tipoLog.EXCEPTION); + } + if (fatto) MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, udcReq, particolare, "stampaUDC", "Ri-Stampato UDC Finito LM IN"); + } + /// + /// udc da stampare + /// + protected string udcReq + { + get + { + return memLayer.ML.StringSessionObj("udcSelSAO"); + } + } + /// + /// effettua controlli visibilità + /// + private void doChecks() + { + checkBarcode(); + } + /// + /// sistemo labels oggetti + /// + private void traduciObj() + { + btnCerca.Text = traduci("btnSearch"); + } + /// + /// restituisce il nome della pagina corrente + /// + protected string PagCorrente + { + get + { + string answ = ""; + Uri MyUrl = Request.Url; + string delimStr = "/"; + char[] delimiter = delimStr.ToCharArray(); + string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter); + int n = finalUrl.Length; + answ = finalUrl[n - 1].ToString(); + DataLayer_AnagGen.PermessiRow riga = (DataLayer_AnagGen.PermessiRow)user_std.UtSn.permessi.Select(string.Format("URL = '{0}'", answ))[0]; + answ = riga.NOME; + return answ; + } + } + /// + /// wrapper traduzione + /// + /// + /// + public string traduci(object lemma) + { + return user_std.UtSn.Traduci(lemma.ToString()); + } + /// + /// indica se i caratteri vadano forzati a maiuscoli + /// + public bool forceUppercase + { + get + { + return memLayer.ML.confReadBool("forceUppercase"); + } + } + /// + /// decodifica il tipo barcode acquisito + /// + public tipoCodiceBarcode tipoBCode + { + get + { + tipoCodiceBarcode answ = tipoCodiceBarcode.ND; + int trovati = 0; + // controllo non si tratti di un comando... + string preCmd = memLayer.ML.confReadString("prefComandi"); + if (barcodeIn.StartsWith(preCmd)) + { + answ = tipoCodiceBarcode.Comando; + } + else if ((TermClass.Ter.riconosciBarcode(barcodeIn) == tipoCodiceBarcode.Particolare) && TermClass.Ter.isAnima(barcodeIn)) // è un particolare... ed un anima... + { + answ = tipoCodiceBarcode.Particolare; + } + else + { + try + { + // cerco tra gitterbox (UDC)... + trovati = MagClass.magazzino.taCartellini.getByUdc(barcodeIn).Rows.Count; + if (trovati > 0) + { + answ = tipoCodiceBarcode.UDC; + } + } + catch + { + } + } + return answ; + } + } + /// + /// valore barcode + /// + public string barcodeIn + { + get + { + return txtBarcode.Text.Trim(); + } + set + { + txtBarcode.Text = value; + } + } + /// + /// valore barcode + /// + public string lastBarcodeIn + { + get + { + return hfLastBCode.Value; + } + set + { + hfLastBCode.Value = value; + } + } + /// + /// controlla se ci sia un barcode + /// + private void checkBarcode() + { + if (barcodeIn != "") + { + Postazione.messaggiText = string.Format("Barcode digitato: {0}", barcodeIn); + switch (tipoBCode) + { + case tipoCodiceBarcode.UDC: + // se linea non selezionata ERRORE!!! + if (Postazione.currCodLinea == "W2000") + { + Postazione.messaggiText += " - Attenzione, IMPOSTARE LINEA!"; + Postazione.CssClass = "stileComandoKo"; + } + else + { + // procedo solo se UDC esistente + if (MagClass.magazzino.checkUDC(barcodeIn)) + { + // controllo se NON ci siano NC "pending" + if (MagClass.magazzino.checkUDC_NC(barcodeIn) != checkUdcNc.HasNc) + { + // controllo IdxPosizione dell'UDC e confronto con posizione in webconfig x trattati (pre lavorazioni meccaniche) + int IdxPosizione = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].IdxPosizione; + if (IdxPosizione == memLayer.ML.confReadInt("IdxPosizioneTrattati")) + { + int idxCellaCurr = 0; + try + { + idxCellaCurr = MagClass.magazzino.taPosUdcCorr.getByUDC(barcodeIn)[0].IdxCella; + } + catch + { } + // controllo se UDC non sia già stato spostato in posizione... ds magazzino, posiz udc corrente, get By udc + if (idxCellaCurr == Postazione.currIdxCella) + { + Postazione.messaggiText += " - Attenzione, UDC già caricato!"; + Postazione.CssClass = "stileComandoKo"; + } + else + { + // altrimenti procedo... + string codSogg = ""; + string particolare = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; + decimal qta = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Qta; + string noteTrim = ""; + try + { + codSogg = MagClass.magazzino.CodSoggCurrUser; + } + catch + { } + try + { + noteTrim = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Note.Trim(); + } + catch + { + noteTrim = ""; + } + DateTime adesso = DateTime.Now; + // se ho cod cella sposto! + MagClass.magazzino.spostaUDC(memLayer.ML.StringSessionObj("CodCS"), barcodeIn, Postazione.currIdxCella, memLayer.ML.confReadBool("spostaUdcResettaLdp"), Request.UserHostName); + // registro spostamento UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, barcodeIn, particolare, "spostaUDC", string.Format("Caricato UDC Trattati su linea {2}, qta: {0} {1} ", qta, noteTrim, Postazione.currCodLinea)); + Postazione.CssClass = "stileComandoOk"; + } + } + else + { + // udc NON corretto, mostro errore... + Postazione.messaggiText += " - Attenzione, UDC NON VALIDO!"; + Postazione.CssClass = "stileComandoKo"; + } + + // controllo SE PER CASO ci fosse NC e ci sia stata deroga, cambio MSG... + if (MagClass.magazzino.checkUDC_NC(barcodeIn) == checkUdcNc.ChkDis_HasNc) + { + Postazione.CssClass = "stileComandoKo"; + Postazione.messaggiText += traduci("ERR-NC-001"); + } + } + else + { + Postazione.messaggiText += traduci("ERR-NC-001"); + Postazione.CssClass = "stileComandoKo"; + } + } + } + + break; + default: + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + break; + } + barcodeIn = ""; + lastBarcodeIn = "-"; + } + else + { + if (lastBarcodeIn == "") + { + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + } + lastBarcodeIn = ""; + } + doUpdate(); + } + /// + /// aggiorna tabella + focus a barcode + /// + public void doUpdate() + { + idxCella = Postazione.currIdxCella; + grView.DataBind(); + txtBarcode.Focus(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// wrapper per log con salvataggio dell'IP del chiamante + /// + /// + /// + public bool httpLog(string _testoPre) + { + bool answ = false; + logger.lg.scriviLog(Postazione.IP + _testoPre); + return answ; + } + /// + /// wrapper per log con salvataggio dell'IP del chiamante + /// + /// + /// + public bool httpLog(string testoLog, tipoLog tipo) + { + bool answ = false; + logger.lg.scriviLog(Postazione.IP + testoLog, tipo); + return answ; + } + /// + /// effettua reset dati + /// + public void doResetData() + { + // resetto i dati QtaTot e particolare... + testoRicerca = ""; + doChecks(); + } + /// + /// passo alla modalità OUT + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + Response.Redirect("LavorMeccOUT.aspx"); + } + /// + /// cambiato valore in ricerca + /// + /// + /// + protected void txtCerca_TextChanged(object sender, EventArgs e) + { + salvaCerca(); + } + /// + /// effettuato reset + /// + /// + /// + protected void lnkReset_Click(object sender, EventArgs e) + { + testoRicerca = ""; + salvaCerca(); + } + /// + /// pressione del button di ricerca + /// + /// + /// + protected void btnCerca_Click(object sender, EventArgs e) + { + salvaCerca(); + } + + /// + /// testo ricerca trimmato da spazi + /// + protected string testoRicerca + { + get + { + return txtCerca.Text.Trim(); + } + set + { + txtCerca.Text = value; + } + } + protected void salvaCerca() + { + if (testoRicerca == "") + { + SteamWare.memLayer.ML.emptySessionVal("valoreCercatoLMI"); + } + else + { + SteamWare.memLayer.ML.setSessionVal("valoreCercatoLMI", testoRicerca); + } + // raise dell'evento + if (eh_nuovaRicerca != null) + { + eh_nuovaRicerca(this, new EventArgs()); + } + doUpdate(); + } + protected void grView_PageIndexChanged(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + protected void grView_Sorted(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + /// + /// aggiorno ods al binding.. + /// + /// + /// + protected void ods_DataBinding(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + /// + /// verifica se attivo filtro company e imposta ods di conseguenza... + /// + private void checkFixOds() + { + } + /// + /// traduce gli header delle colonne + /// + /// + /// + protected void grView_DataBound(object sender, EventArgs e) + { + if (grView.Rows.Count > 0) + { + LinkButton lb; + // aggiorno gli headers + foreach (TableCell cella in grView.HeaderRow.Cells) + { + try + { + lb = (LinkButton)cella.Controls[0]; + lb.Text = traduci(lb.Text); + } + catch + { } + } + int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1); + lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord); + } + else + { + lblNumRec.Text = ""; + } + } + } +} \ No newline at end of file diff --git a/GMW/WebUserControls/mod_PostFinMultIN.ascx.designer.cs b/GMW/WebUserControls/mod_PostFinMultIN.ascx.designer.cs new file mode 100644 index 00000000..9ab9b62b --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultIN.ascx.designer.cs @@ -0,0 +1,141 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW.WebUserControls { + + + public partial class mod_PostFinMultIN { + + /// + /// BundleReference1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Microsoft.AspNet.Web.Optimization.WebForms.BundleReference BundleReference1; + + /// + /// BundleReference2 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Microsoft.AspNet.Web.Optimization.WebForms.BundleReference BundleReference2; + + /// + /// lblParticolareAttivo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblParticolareAttivo; + + /// + /// lblDescrAttivo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDescrAttivo; + + /// + /// lblDisegno control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDisegno; + + /// + /// lblBarcode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblBarcode; + + /// + /// hfLastBCode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HiddenField hfLastBCode; + + /// + /// txtBarcode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtBarcode; + + /// + /// btnCerca control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnCerca; + + /// + /// txtCerca control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtCerca; + + /// + /// lnkReset control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lnkReset; + + /// + /// grView control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.GridView grView; + + /// + /// ods control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource ods; + + /// + /// lblNumRec control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblNumRec; + } +} diff --git a/GMW/WebUserControls/mod_PostFinMultOUT.ascx b/GMW/WebUserControls/mod_PostFinMultOUT.ascx new file mode 100644 index 00000000..631ebcbe --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultOUT.ascx @@ -0,0 +1,160 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_PostFinMultOUT.ascx.cs" Inherits="GMW.WebUserControls.mod_PostFinMultOUT" %> +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> +<%@ Register Src="mod_storicoAzioniOperatore.ascx" TagName="mod_storicoAzioniOperatore" TagPrefix="uc1" %> +<% if (false) + { %> + + +<% } %> + + + + + + <%: traduci("UDC") %> + + + + + + + + + + + + + + <%-- + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +   + + + + + + + <%----%> + + + + <%: traduci("Note") %> + + + + + + + <%----%> + <%: traduci("btnStampaUdc") %> + + + + + + + <%: traduci("Qta") %> + + + + + + + + <%: traduci("CodImballo") %> + + + + + + + + + + + + + \ No newline at end of file diff --git a/GMW/WebUserControls/mod_PostFinMultOUT.ascx.cs b/GMW/WebUserControls/mod_PostFinMultOUT.ascx.cs new file mode 100644 index 00000000..6d5b583f --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultOUT.ascx.cs @@ -0,0 +1,1185 @@ +using System; +using System.Web.UI; +using System.Web.UI.WebControls; +using SteamWare; +using GMW_data; + +namespace GMW.WebUserControls +{ + public partial class mod_PostFinMultOUT : System.Web.UI.UserControl + { + /// + /// flusso associato (hard coded) a FUSI + /// + protected string flusso = "FI"; + /// + /// stato associato (hard coded) a FUSI + /// + protected string statoUDC = "Fin"; + /// + /// tipo di evento associato alla creazione dell'UDC + /// + protected string eventoUDC = "UDC_FINITO"; + /// + /// dati x verifica CodSoggetto / matricola + /// + protected string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + /// + /// stringa degli UDC selezionati per consumo COMPLETO (nel formato #UDC1##UDC2#) + /// + protected string udcSelC + { + get + { + return memLayer.ML.StringSessionObj(string.Format("UdcSelC_{0}", uid)); + } + set + { + memLayer.ML.setSessionVal(string.Format("UdcSelC_{0}", uid), value); + } + } + /// + /// stringa degli UDC selezionati per consumo PARZIALE (nel formato #UDC1##UDC2#) + /// + protected string udcSelP + { + get + { + return memLayer.ML.StringSessionObj(string.Format("UdcSelP_{0}", uid)); + } + set + { + memLayer.ML.setSessionVal(string.Format("UdcSelP_{0}", uid), value); + } + } + public event EventHandler eh_nuovaRicerca; + public event EventHandler eh_reqUpdate; + /// + /// stringa UID univoca + /// + public string uid + { + get + { + return this.UniqueID.Replace("$", "_").Replace("-", "_"); + } + } + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + Postazione.messaggiText = ""; + Postazione.warningText = ""; + fixRicercaUdc(); + traduciObj(); + idxCella = Postazione.currIdxCella; + checkNumKeyIn(); + } + doChecks(); + } + /// + /// verifico se ci sia in sessione un input da NumKeyb e nel caso lometto in barcodeIn e processo... + /// + private void checkNumKeyIn() + { + if (memLayer.ML.isInSessionObject("numKeyIn")) + { + barcodeIn = memLayer.ML.StringSessionObj("numKeyIn"); + // svuoto valore in sessione... + memLayer.ML.emptySessionVal("numKeyIn"); + // controllo barcode... + checkBarcode(); + } + } + /// + /// IDX cella associata alla linea corrente + /// + protected int idxCella + { + get + { + int answ = 0; + if (memLayer.ML.isInSessionObject("IdxCellaLineaLM_OUT")) + { + answ = memLayer.ML.IntSessionObj("IdxCellaLineaLM_OUT"); + } + return answ; + } + set + { + memLayer.ML.setSessionVal("IdxCellaLineaLM_OUT", value); + } + } + /// + /// verifica se si debba mostrare un campo ricerca attivo... + /// + private void fixRicercaUdc() + { + if (memLayer.ML.isInSessionObject("valoreCercatoLMO")) + { + testoRicerca = memLayer.ML.StringSessionObj("valoreCercatoLMO"); + } + + } + /// + /// richiesta (ri)stampa UDC + /// + /// + /// + public void ristampa() + { + bool fatto = false; + // registro ri-stampa UDC + DateTime adesso = DateTime.Now; + // calcolo particolare... + DS_magazzino.ElencoCartelliniRow rigaUDC; + string particolare = ""; + try + { + rigaUDC = MagClass.magazzino.taCartellini.getByUdc(udcReq)[0]; + particolare = rigaUDC.Particolare; + fatto = MagClass.magazzino.ristampaUdc(udcReq, Postazione.printer, Request.UserHostName); + } + catch + { + logger.lg.scriviLog(string.Format("Errore recupero particolare UDC Finito LM OUT {0}", udcReq), tipoLog.EXCEPTION); + } + if (fatto) MagClass.magazzino.taSAO.insertQuery(adesso, MagClass.magazzino.CodSoggCurrUser, Postazione.name, Postazione.IP, udcReq, particolare, "stampaUDC", "Ri-Stampato UDC Finito LM OUT"); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// udc da stampare + /// + protected string udcReq + { + get + { + return memLayer.ML.StringSessionObj("udcSelSAO"); + } + } + /// + /// controlla particolare selezionato + /// + private void checkParticolare() + { + if (currParticolare != "") + { + lblParticolareAttivo.Text = string.Format("Particolare selezionato {0}", currParticolare); + lblPart.Text = currParticolare; + // aggiungo descrizione del particolare + string descr = ""; + string disegno = ""; + try + { + DS_magazzino.AnagParticolariRow riga = MagClass.magazzino.taAnagPart.likeSearch(currParticolare, memLayer.ML.StringSessionObj("CodCS"))[0]; + descr = riga.DescParticolare; + disegno = string.Format("( {0} )", riga.DisegnoGrezzo); + } + catch + { } + lblDescrAttivo.Text = descr; + lblDisegno.Text = disegno; + } + else + { + lblParticolareAttivo.Text = "..."; + lblDescrAttivo.Text = ""; + lblDisegno.Text = ""; + } + } + /// + /// effettua controlli visibilità + /// + private void doChecks() + { + checkBarcode(); + checkStampa(); + checkParticolare(); + } + /// + /// sistemo labels oggetti + /// + private void traduciObj() + { + // labels + btnCerca.Text = traduci("btnSearch"); + //txtBox + txtQta.Text = memLayer.ML.confReadString("QtaImballoFiniti"); + // buttons + btnEmptyNote.Text = traduci("btnEmptyNote"); + } + /// + /// restituisce il nome della pagina corrente + /// + protected string PagCorrente + { + get + { + string answ = ""; + Uri MyUrl = Request.Url; + string delimStr = "/"; + char[] delimiter = delimStr.ToCharArray(); + string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter); + int n = finalUrl.Length; + answ = finalUrl[n - 1].ToString(); + DataLayer_AnagGen.PermessiRow riga = (DataLayer_AnagGen.PermessiRow)user_std.UtSn.permessi.Select(string.Format("URL = '{0}'", answ))[0]; + answ = riga.NOME; + return answ; + } + } + /// + /// wrapper traduzione + /// + /// + /// + public string traduci(object lemma) + { + return user_std.UtSn.Traduci(lemma.ToString()); + } + /// + /// indica il codice articolo correntemente selezionato + /// + 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")); + } + } + /// + /// indica se i caratteri vadano forzati a maiuscoli + /// + public bool forceUppercase + { + get + { + return memLayer.ML.confReadBool("forceUppercase"); + } + } + /// + /// num pezzi dell'ultimo UDC del particolare generato + /// + public int pezziUdc + { + get + { + int answ = 0; + try + { + answ = (int)MagClass.magazzino.taCartellini.getLastByParticolareStato(memLayer.ML.StringSessionObj("CodCS"), currParticolare, statoUDC)[0].Qta; + } + catch + { } + return answ; + } + } + /// + /// cod imballo dell'ultimo UDC del particolare generato + /// + public string lastCodImb + { + get + { + string answ = ""; + try + { + answ = MagClass.magazzino.taCartellini.getLastByParticolareStato(memLayer.ML.StringSessionObj("CodCS"), currParticolare, statoUDC)[0].CodImballo; + } + catch + { } + return answ; + } + } + /// + /// decodifica il tipo barcode acquisito + /// + public tipoCodiceBarcode tipoBCode + { + get + { + tipoCodiceBarcode answ = tipoCodiceBarcode.ND; + int trovati = 0; + int matricola = -1; + // provo a convertire in intero barcode x verifica eventuale matricola... + try + { + matricola = Convert.ToInt32(barcodeIn); + } + catch + { } + // controllo non si tratti di un comando... + string preCmd = memLayer.ML.confReadString("prefComandi"); + if (barcodeIn.StartsWith(preCmd)) + { + answ = tipoCodiceBarcode.Comando; + } + else if ((TermClass.Ter.riconosciBarcode(barcodeIn) == tipoCodiceBarcode.Particolare)) // è un particolare... + { + answ = tipoCodiceBarcode.Particolare; + } + // controllo se sia un codice IMBALLO + else if (utils.obj.taSelImballi.getByImballo(barcodeIn).Rows.Count > 0) + { + // è imballo! + answ = tipoCodiceBarcode.Imballo; + } + else if (barcodeIn.StartsWith(preCodSogg)) + { + // cerco cod soggetto... + if (DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else if (matricola >= 0) + { + if (DataProxy.obj.taTrascSogg.getByKey("", matricola).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Operatore; + } + } + else + { + try + { + // cerco tra gitterbox (UDC)... + trovati = MagClass.magazzino.taCartellini.getByUdc(barcodeIn).Rows.Count; + if (trovati > 0) + { + answ = tipoCodiceBarcode.UDC; + } + } + catch + { + } + } + return answ; + } + } + /// + /// valore barcode + /// + public string barcodeIn + { + get + { + return txtBarcode.Text.Trim(); + } + set + { + txtBarcode.Text = value; + } + } + /// + /// qta pezzi TOTALE + /// + public int qta + { + get + { + int qta = 0; + try + { + qta = Convert.ToInt32(txtQta.Text.Trim()); + } + catch + { } + return qta; + } + set + { + txtQta.Text = value.ToString(); + } + } + /// + /// controlla se ci sia un barcode + /// + private void checkBarcode() + { + if (barcodeIn != "") + { + Postazione.messaggiText = string.Format("Barcode digitato: {0}", barcodeIn); + switch (tipoBCode) + { + case tipoCodiceBarcode.Comando: + if (barcodeIn == memLayer.ML.confReadString("cmdReset")) + { + currParticolare = ""; + Response.Redirect(PagCorrente); + } + break; + case tipoCodiceBarcode.Imballo: + // cerco di selezionare! + try + { + ddlImballi.SelectedValue = barcodeIn; + } + catch + { + Postazione.warningText = traduci("ERR-IMB-001"); + Postazione.CssClass = "stileComandoKo"; + } + break; + case tipoCodiceBarcode.Particolare: + // imposto il particolare corrente + currParticolare = barcodeIn; + impostaParticolare(); + break; + case tipoCodiceBarcode.UDC: + // procedo solo se UDC esistente + if (MagClass.magazzino.checkUDC(barcodeIn)) + { + // calcolo nuovo particolare + string newPart = DataProxy.obj.taCartellini.stp_getByUdc(barcodeIn)[0].Particolare; + // 2015.09.25 salvo barcode UDC SSE NON E' un finito (flusso = "FI") --> dovrebbe evitare poi di avere relazioni UDC tra finito --> finito con consumo di uno x creazione altro... + if (barcodeIn.IndexOf(flusso) < 0) + { + if (testoRicerca != newPart) + { + // resetto precedente ricerca e deseleziono TUTTI gli UDC elencati SE è cambiato il particolare + udcSelC = string.Format("#{0}#", barcodeIn); + } + else + { + udcSelC = string.Format("{0}#{1}#", udcSelC, barcodeIn); + // se era presente in elenco "P" lo elimino + udcSelP = udcSelP.Replace(string.Format("#{0}#", barcodeIn), ""); + } + } + updFiltroPart(newPart); + //tolto x richiesta di quel pelato di Gian 2014.02.11 +#if false + // imposto particolare! + currParticolare = newPart; + impostaParticolare(); +#endif + } + + break; + case tipoCodiceBarcode.Operatore: + // calcolo matricola utente + int MatrUtente = -1; + string preCodSogg = memLayer.ML.confReadString("prefCodSogg"); + if (barcodeIn.StartsWith(preCodSogg)) + { + MatrUtente = DataProxy.obj.taTrascSogg.getByKey(barcodeIn, 0)[0].CodMatricola; + } + else + { + MatrUtente = Convert.ToInt32(barcodeIn); + } + if (MatrUtente >= 0) + { + // salvo in sessione operatore con AUTH + OpAuth.startOpAuth(MatrUtente); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRec"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + else + { + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + } + break; + default: + // cerco se sia "0" = reset utente... + if (barcodeIn == memLayer.ML.CRS("resetCodSogg")) + { + // salvo in sessione operatore con AUTH + OpAuth.stopAuth(); + // mostro che ho autorizzato... + Postazione.messaggiText += traduci("userAuthRem"); + Postazione.CssClass = "stileComandoOk"; + Response.Redirect(user_std.pagCorrente); + } + Postazione.messaggiText += " - codice non riconosciuto!"; + Postazione.CssClass = "stileComandoND"; + break; + } + barcodeIn = ""; + } +#if false + else + { + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + } +#endif + //grView.DataBind(); + txtBarcode.Focus(); + } + /// + /// imposto i dati dal particolare corrente + /// + private void impostaParticolare() + { + // controllo esista il particolare scansionato + if (DataProxy.obj.taAnagParticolari.getByParticolare(currParticolare).Rows.Count == 0) + { + currParticolare = ""; + Postazione.messaggiText += " - codice particolare non valido / non trovato in RILPRO."; + Postazione.CssClass = "stileComandoKo"; + } + else + { + Postazione.messaggiText += " - impostato particolare!"; + Postazione.CssClass = "stileComandoOk"; + } + // leggo la qta dell'ultimo UDC del particolare, SE C'E', e la imposto... + if (pezziUdc > 0) + { + txtQta.Text = pezziUdc.ToString(); + } + else // rimette default + { + txtQta.Text = memLayer.ML.confReadString("QtaImballoFiniti"); + } + if (lastCodImb != "") + { + selezionaImballo(); + } + } + /// + /// update del filtro su particolare x grview UDC caricati in linea + /// + /// + private void updFiltroPart(string newPart) + { + if (testoRicerca != newPart) + { + // imposto filtraggio x particoalre nell'elenco degli UDC della linea... + testoRicerca = newPart; + // salvo UDC da selezionare come consumo COMPLETO + salvaCerca(); + } + else + { + doUpdate(); + } + } + /// + /// aggiorna tabella + focus a barcode + /// + public void doUpdate() + { + idxCella = Postazione.currIdxCella; + checkStampa(); + grView.DataBind(); + txtBarcode.Focus(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// controllo l'abilitazioen alla stampa UDC: + /// - particolare ok + /// - qta > 0 + /// - udc da consumo totale/parziale + /// altrimenti disabilito btn stampa + /// + private void checkStampa() + { + bool stampaOk = false; + //controllo siano inseriti valori qta + if (qta > 0) + { + // controllo ci siano particolare e ci sia selezionato almeno un UDC + if (currParticolare != "" && ((udcSelC.Replace("#", "").Length > 1) || (udcSelP.Replace("#", "").Length > 1))) + { + stampaOk = true; + } + } + divNote.Visible = stampaOk; + } + /// + /// genera i barcode di + /// - trattamenti + /// - nuovo x pezzi liquidi + /// e lancia la relativa stampa + /// + /// + /// + protected void btnStampa_Click(object sender, EventArgs e) + { + bool needsRedirect = false; + string[] stringSeparators = new string[] { "#" }; + // verifico postazione x procedere... + if (Postazione.printer != "n.d.") + { + // verifico auth utente OPPURE se NON sia richiesta... + if (OpAuth.isAuth || !OpAuth.opAuthReq) + { + // controllo UDC in ingresso, che siano tutti con uguale particolare e DIVERSO da "" + string partUdcIn = ""; + try + { + string fullUdc = string.Format("{0}#{1}", udcSelC, udcSelP); + // ciclo tutti gli UDC consumati P e C e verifico loro particolare + if (fullUdc.Replace("#", "").Length > 1) + { + string[] elencoUDC; + elencoUDC = fullUdc.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + partUdcIn = checkPartUDC(elencoUDC); + } + } + catch + { } + if (partUdcIn != "") + { + // controllo da distinta base coerenza particolare IN/OUT + bool partDistintaOk = false; + try + { + if (MagClass.magazzino.taPartIO.GetData(currParticolare, partUdcIn, true)[0].Trovati > 0) partDistintaOk = true; + } + catch + { } + if (partDistintaOk) + { + string newUdcChild = ""; + int qta = memLayer.ML.confReadInt("QtaImballoFiniti"); + string noteTrim = txtNote.Text.Trim(); + // 2014.05.08 tolto e spostato in classe postazione gestione NOME LINEA x note, da verificare... +#if false + string nomeLinea = ddlLinea.SelectedItem.Text; +#endif + noteTrim = string.Format("{0}{1}{2}", Postazione.currNomeLinea, Environment.NewLine, noteTrim); + try + { + qta = Convert.ToInt32(txtQta.Text); + } + catch + { } + // effettuo controlli che cod_soggetto e cod particolare siano disponibili... + string codSogg = ""; + string particolare = ""; + try + { + codSogg = MagClass.magazzino.CodSoggCurrUser; + particolare = currParticolare; + } + catch + { + } + if (codSogg != "" && particolare != "") + { + // genero cartellino + DateTime adesso = DateTime.Now; + try + { + string codImballo = ""; + try + { + codImballo = ddlImballi.SelectedValue; + } + catch + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // se NON HA selezionato prendo default... + if (codImballo == "" || codImballo == "-") + { + codImballo = memLayer.ML.confReadString("CodImballoFiniti"); + } + // creo nuovo UDC FINITO OUT multiple + newUdcChild = MagClass.magazzino.creaUdc(flusso, "", currParticolare, "", "", "", "", "", 0, codImballo, "U", MagClass.magazzino.CodSoggCurrUser, qta, 0, 0, adesso, 0, statoUDC, memLayer.ML.confReadInt("IdxPosizioneFiniti"), "IdxPosizioneFiniti", eventoUDC, noteTrim, "", adesso.Year, Request.UserHostName); + + if (OpAuth.isAuth) + { + // salvo attributo dell'OpAuth... + MagClass.magazzino.taAtt2UDC.Insert(newUdcChild, memLayer.ML.CRS("attrOpAuth"), OpAuth.currAuth.CodSoggetto, DateTime.Now, codSogg); + // consumo una auth... + OpAuth.currAuth.remAuth--; + if (OpAuth.currAuth.remAuth == 0) + { + OpAuth.stopAuth(); + needsRedirect = true; + } + } + + // registro creazione nuovo UDC + MagClass.magazzino.taSAO.insertQuery(adesso, codSogg, Postazione.name, Postazione.IP, newUdcChild, particolare, "creaUDC", string.Format("Creato nuovo UDC Finito LM OUT, qta: {0} {1}", qta, noteTrim)); + } + catch (Exception exc) + { + httpLog(string.Format("Errore creazione UDC Finito LM OUT: {0}", exc), tipoLog.EXCEPTION); + } + // 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 = udcSelP.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelP, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + associaUdc(newUdcChild, UDC_P); + } + if (udcSelC.Replace("#", "").Length > 1) + { + // associo + UDC_P = udcSelC.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); + //UDC_P = SteamWare.StringSplitter.CSplitter.Split(udcSelC, "#", false, 0, SteamWare.StringSplitter.ComparisonMethod.Text); + associaUdc(newUdcChild, UDC_P); + // consumo gli UDC indicati come "C" + consumaUdc(UDC_P); + } + + // ora stampo il nuovo cartellino!!! + MagClass.magazzino.stampaUdc(newUdcChild, Postazione.printer, tipoCartellino.cartFiniti, Request.UserHostName); + // incremento timing... + 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 Finito LM OUT"); + } + // resetto + doResetData(); + } + else + { + httpLog(string.Format("Finiti LM OUT, Errore persi utente/particolare, ricarico!"), tipoLog.ERROR); + Response.Redirect("~/login.aspx"); + } + } + else + { + httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza particolari da distinta base!"), tipoLog.ERROR); + Postazione.messaggiText += "Errore particolari UDC da controllo distinta base"; + Postazione.CssClass = "stileComandoND"; + } + } + else + { + httpLog(string.Format("Finiti LM OUT, Errore controllo coerenza elenco particolari IN!"), tipoLog.ERROR); + Postazione.messaggiText += "Errore particolari UDC da consumare non coerenti"; + Postazione.CssClass = "stileComandoND"; + } + } + else + { + Postazione.messaggiText = traduci("noOpAuth"); + Postazione.CssClass = "stileComandoKo"; + httpLog(string.Format("Errore manca OpAuth x UDC anime"), tipoLog.ERROR); + } + } + else + { + Response.Redirect("~/menu.aspx"); + } + doUpdate(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + if (needsRedirect) + { + Response.Redirect(user_std.pagCorrente); + } + } + /// + /// 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(udc_p)) + { + // se è consumabile (IdxPosizione > 0)... + if (MagClass.magazzino.udcMpIsConsumabile(udc_p)) + { + // consumo UDC + MagClass.magazzino.scaricaUdcMpWip(udc_p, Request.UserHostName); + // sposta UDC da posizione corrente a nessuna... + } + } + } + } + } + /// + ///associa nuovo UDC ad elenco UDC + /// + /// UDC da associare come child + /// vettore di UDC da associare come parent + private void associaUdc(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(udc_p)) + { + MagClass.magazzino.associaUdcParent(newUdcChild, udc_p, true); + } + } + } + } + /// + /// verifica che il vettore di UDC abbia tutto lo stesso particolare e lo restituisce, altrimenti restituisce "" + /// + /// vettore di UDC da verificare + private string checkPartUDC(string[] UDC_P) + { + string answ = ""; + if (UDC_P.Length > 0) + { + // imposto il primo particolare... + answ = MagClass.magazzino.getParticolareByUDC(UDC_P[0]); + // ciclo + foreach (string udc_p in UDC_P) + { + if (MagClass.magazzino.getParticolareByUDC(udc_p) != answ) answ = ""; // se uno è diverso "azzero" + } + } + return answ; + } + /// + /// wrapper per log con salvataggio dell'IP del chiamante + /// + /// + /// + public bool httpLog(string _testoPre) + { + bool answ = false; + logger.lg.scriviLog(Postazione.IP + _testoPre); + return answ; + } + /// + /// wrapper per log con salvataggio dell'IP del chiamante + /// + /// + /// + public bool httpLog(string testoLog, tipoLog tipo) + { + bool answ = false; + logger.lg.scriviLog(Postazione.IP + testoLog, tipo); + return answ; + } + /// + /// effettua reset dati + /// + public void doResetData() + { + // resetto i dati QtaTot e particolare... + qta = 0; + currParticolare = ""; + txtQta.Text = ""; + testoRicerca = ""; + salvaCerca(); + doChecks(); + } + /// + /// svuoto le note + /// + /// + /// + protected void btnEmptyNote_Click(object sender, EventArgs e) + { + txtNote.Text = ""; + Postazione.messaggiText = traduci("AttesaBCode"); + Postazione.CssClass = "stileAttesa"; + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + /// + /// passo alla modalità IN + /// + /// + /// + protected void btnIn_Click(object sender, EventArgs e) + { + Response.Redirect("LavorMeccIN.aspx"); + } + + /// + /// effettua refresh (su db) del blocco postazione + /// + /// + private void refreshBloccoPost(string codLinea) + { + // resetto usi linee precedenti.. + MagClass.magazzino.taAL.resetPost(Postazione.name); + // se la linea non è "base" = "Sel linea", finisce x "0" + if (codLinea.Substring(codLinea.Length - 1) != "0") + { + // salvo su DB che sto occupando linea... + MagClass.magazzino.taAL.updatePost(codLinea, Postazione.name); + } + } + /// + /// CODICE cella associata alla linea corrente + /// + protected string codCella + { + get + { + string answ = ""; + if (memLayer.ML.isInSessionObject("codCellaLM")) + { + answ = memLayer.ML.StringSessionObj("codCellaLM"); + } + return answ; + } + set + { + memLayer.ML.setSessionVal("codCellaLM", value); + } + } + /// + /// codice della linea corrente + /// + protected string currCodLinea + { + get + { + string answ = ""; + if (memLayer.ML.isInSessionObject(string.Format("LineaOut-{0}", uid))) + { + answ = memLayer.ML.StringSessionObj(string.Format("LineaOut-{0}", uid)); + } + return answ; + } + set + { + memLayer.ML.setSessionVal(string.Format("LineaOut-{0}", uid), value); + } + } + /// + /// cambiato valore in ricerca + /// + /// + /// + protected void txtCerca_TextChanged(object sender, EventArgs e) + { + // se è nuovo il testo resetto + if (testoRicerca != SteamWare.memLayer.ML.StringSessionObj("valoreCercatoLMO")) + { + udcSelC = ""; + udcSelP = ""; + } + salvaCerca(); + } + /// + /// effettuato reset + /// + /// + /// + protected void lnkReset_Click(object sender, EventArgs e) + { + testoRicerca = ""; + salvaCerca(); + } + /// + /// pressione del button di ricerca + /// + /// + /// + protected void btnCerca_Click(object sender, EventArgs e) + { + salvaCerca(); + } + + /// + /// testo ricerca trimmato da spazi + /// + protected string testoRicerca + { + get + { + return txtCerca.Text.Trim(); + } + set + { + txtCerca.Text = value; + } + } + /// + /// salvo ricerca particolare + /// + protected void salvaCerca() + { + if (testoRicerca == "") + { + SteamWare.memLayer.ML.emptySessionVal("valoreCercatoLMO"); + udcSelC = ""; + udcSelP = ""; + } + else + { + SteamWare.memLayer.ML.setSessionVal("valoreCercatoLMO", testoRicerca); + } + // raise dell'evento + if (eh_nuovaRicerca != null) + { + eh_nuovaRicerca(this, new EventArgs()); + } + doUpdate(); + } + protected void grView_PageIndexChanged(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + protected void grView_Sorted(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + /// + /// aggiorno ods al binding.. + /// + /// + /// + protected void ods_DataBinding(object sender, EventArgs e) + { + // fix dell'ODS + checkFixOds(); + } + /// + /// verifica se attivo filtro company e imposta ods di conseguenza... + /// + private void checkFixOds() + { + } + /// + /// traduce gli header delle colonne + /// + /// + /// + protected void grView_DataBound(object sender, EventArgs e) + { + if (grView.Rows.Count > 0) + { + LinkButton lb; + // aggiorno gli headers + foreach (TableCell cella in grView.HeaderRow.Cells) + { + try + { + lb = (LinkButton)cella.Controls[0]; + lb.Text = traduci(lb.Text); + } + catch + { } + } + int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1); + lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord); + } + else + { + lblNumRec.Text = ""; + } + } + + protected void rbl_DataBinding(object sender, EventArgs e) + { + RadioButtonList rbl = (RadioButtonList)sender; + if (udcSelC.IndexOf(rbl.ToolTip) >= 0) + { + rbl.SelectedValue = "C"; + } + else if (udcSelP.IndexOf(rbl.ToolTip) >= 0) + { + rbl.SelectedValue = "P"; + } + } + + protected void rbl_DataBound(object sender, EventArgs e) + { + + } + /// + /// selezione UDC da elenco + /// + /// + /// + protected void rbl_SelectedIndexChanged(object sender, EventArgs e) + { + RadioButtonList rbl = (RadioButtonList)sender; + if (rbl.SelectedValue == "C") + { + udcSelC = string.Format("{0}#{1}#", udcSelC, rbl.ToolTip); + // se era presente in elenco "P" lo elimino + udcSelP = udcSelP.Replace(string.Format("#{0}#", rbl.ToolTip), ""); + } + else + { + udcSelP = string.Format("{0}#{1}#", udcSelP, rbl.ToolTip); + // se era presente in elenco "C" lo elimino + udcSelC = udcSelC.Replace(string.Format("#{0}#", rbl.ToolTip), ""); + } + // calcolo il particolare da selezionare... + string newPart = DataProxy.obj.taCartellini.stp_getByUdc(rbl.ToolTip)[0].Particolare; + updFiltroPart(newPart); + checkStampa(); + // raise dell'evento + if (eh_reqUpdate != null) + { + eh_reqUpdate(this, new EventArgs()); + } + } + + /// + /// preseleziono (se possibile) imballo... + /// + /// + /// + protected void ddlImballi_DataBound(object sender, EventArgs e) + { + selezionaImballo(); + } + /// + /// seleziona imballo corretto + /// + private void selezionaImballo() + { + string codImb = ""; + // cerco se c'è un imballo x particolare corrente... + if (currParticolare != "") + { + codImb = lastCodImb; + } + else + { + codImb = memLayer.ML.confReadString("CodImballoFiniti"); + } + try + { + // preseleziono + ddlImballi.SelectedValue = codImb; + } + catch + { } + } + } +} \ No newline at end of file diff --git a/GMW/WebUserControls/mod_PostFinMultOUT.ascx.designer.cs b/GMW/WebUserControls/mod_PostFinMultOUT.ascx.designer.cs new file mode 100644 index 00000000..03fcea97 --- /dev/null +++ b/GMW/WebUserControls/mod_PostFinMultOUT.ascx.designer.cs @@ -0,0 +1,204 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW.WebUserControls { + + + public partial class mod_PostFinMultOUT { + + /// + /// BundleReference1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Microsoft.AspNet.Web.Optimization.WebForms.BundleReference BundleReference1; + + /// + /// BundleReference2 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Microsoft.AspNet.Web.Optimization.WebForms.BundleReference BundleReference2; + + /// + /// btnCerca control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnCerca; + + /// + /// txtCerca control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtCerca; + + /// + /// lnkReset control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lnkReset; + + /// + /// grView control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.GridView grView; + + /// + /// ods control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource ods; + + /// + /// lblNumRec control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblNumRec; + + /// + /// lblParticolareAttivo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblParticolareAttivo; + + /// + /// lblDescrAttivo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDescrAttivo; + + /// + /// lblDisegno control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblDisegno; + + /// + /// lblBarcode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblBarcode; + + /// + /// txtBarcode control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtBarcode; + + /// + /// divNote control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNote; + + /// + /// txtNote control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtNote; + + /// + /// btnEmptyNote control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnEmptyNote; + + /// + /// lbtStampaUDC control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lbtStampaUDC; + + /// + /// txtQta control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtQta; + + /// + /// lblPart control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblPart; + + /// + /// ddlImballi control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DropDownList ddlImballi; + + /// + /// odsImballi control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsImballi; + } +} diff --git a/GMW/WebUserControls/mod_lavMeccIN.ascx b/GMW/WebUserControls/mod_lavMeccIN.ascx index 4bde086e..9e249157 100644 --- a/GMW/WebUserControls/mod_lavMeccIN.ascx +++ b/GMW/WebUserControls/mod_lavMeccIN.ascx @@ -1,6 +1,5 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_lavMeccIN.ascx.cs" Inherits="GMW.WebUserControls.mod_lavMeccIN" %> -<%--<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> -<%@ Register Src="mod_storicoAzioniOperatore.ascx" TagName="mod_storicoAzioniOperatore" TagPrefix="uc1" %>--%> + <% if (false) { %> diff --git a/GMW/WebUserControls/mod_lavMeccOUT.ascx b/GMW/WebUserControls/mod_lavMeccOUT.ascx index a6bd02ac..a606e203 100644 --- a/GMW/WebUserControls/mod_lavMeccOUT.ascx +++ b/GMW/WebUserControls/mod_lavMeccOUT.ascx @@ -157,4 +157,4 @@ - + \ No newline at end of file diff --git a/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs b/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs index e317052b..83140f4f 100644 --- a/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs +++ b/GMW/WebUserControls/mod_lavMeccOUT.ascx.cs @@ -1181,6 +1181,5 @@ namespace GMW.WebUserControls catch { } } - } } \ No newline at end of file diff --git a/GMW/bin/GMW.dll b/GMW/bin/GMW.dll index e7ddab0b..f804f8d9 100644 Binary files a/GMW/bin/GMW.dll and b/GMW/bin/GMW.dll differ diff --git a/GMW/bin/VersGen.dll b/GMW/bin/VersGen.dll index e37317b0..54e65fe2 100644 Binary files a/GMW/bin/VersGen.dll and b/GMW/bin/VersGen.dll differ diff --git a/VersGen/GMW.cs b/VersGen/GMW.cs index 7870e16a..cc0006f9 100644 --- a/VersGen/GMW.cs +++ b/VersGen/GMW.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("3.4.866.2379")] -[assembly: AssemblyFileVersion("3.4.866.2379")] +[assembly: AssemblyVersion("3.4.867.2379")] +[assembly: AssemblyFileVersion("3.4.867.2379")] [assembly: AssemblyCopyright("Steamware © 2007-2016")] [assembly: AssemblyCompany("Steamware")] diff --git a/VersGen/GMW.tt b/VersGen/GMW.tt index 49dd62f9..4dec7de8 100644 --- a/VersGen/GMW.tt +++ b/VersGen/GMW.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("3.4.866.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("3.4.866.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("3.4.867.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("3.4.867.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Steamware © 2007-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware")] <#+