using MapoDb; using SteamWare; using System; using System.Text; namespace MoonProAdmin.WebUserControls { public partial class mod_gestKIT : System.Web.UI.UserControl { #region setup VARS /// /// RegExp x RESET / CANCEL /// protected string regExp_KO = memLayer.ML.cdv("regExp_KO"); /// /// RegExp x CONFERMA /// protected string regExp_OK = memLayer.ML.cdv("regExp_OK"); /// /// RegExp x START KIT /// protected string regExp_KitStart = memLayer.ML.cdv("regExp_KitStart"); /// /// RegExp x SAVE KIT /// protected string regExp_KitSave = memLayer.ML.cdv("regExp_KitSave"); #endregion #region variabili in sessione /// /// UID formattato con "_" /// public string uid { get { return this.UniqueID.Replace("$", "_").Replace("-", "_"); } } public string codArt { get { return memLayer.ML.StringSessionObj(string.Format("codArt_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("codArt_{0}", uid), value); } } public string descArt { get { return memLayer.ML.StringSessionObj(string.Format("descArt_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("descArt_{0}", uid), value); } } public string kitCode { get { return memLayer.ML.StringSessionObj(string.Format("kitCode_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("kitCode_{0}", uid), value); } } public string codOrd { get { return memLayer.ML.StringSessionObj(string.Format("codOrd_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("codOrd_{0}", uid), value); } } public int qta { get { return memLayer.ML.IntSessionObj(string.Format("qta_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("qta_{0}", uid), value); } } public string idxMacc { get { return memLayer.ML.StringSessionObj(string.Format("idxMacc_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("idxMacc_{0}", uid), value); } } public string nomeMacc { get { return memLayer.ML.StringSessionObj(string.Format("nomeMacc_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("nomeMacc_{0}", uid), value); } } public string codGruppo { get { return memLayer.ML.StringSessionObj(string.Format("codGruppo_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("codGruppo_{0}", uid), value); } } /// /// titolo pagina /// public string titolo { get { return devicesAuthProxy.getPage(Request.Url).Replace(".aspx", ""); } } public string codKitTemp { get { return memLayer.ML.StringSessionObj(string.Format("codKitTemp_{0}", uid)); } set { memLayer.ML.setSessionVal(string.Format("codKitTemp_{0}", uid), value); } } #if false /// /// Oggetto KIT in composizione gestito in sessione /// public OrdineProdKit OrdineKit { get { OrdineProdKit answ; string serVal = memLayer.ML.StringSessionObj(string.Format("OrdineKit_{0}", uid)); // deserializzo SE C'E'... if (serVal != "") { //var objDeser = memLayer.ML.deserializeVal(serVal); //answ = (OrdineProdKit)objDeser; answ = JsonConvert.DeserializeObject(serVal); } else { answ = new OrdineProdKit(); } return answ; } set { // serializzo... string serVal = memLayer.ML.serializeVal(value); //string serVal = JsonConvert.SerializeObject(value); // salvo memLayer.ML.setSessionVal(string.Format("OrdineKit_{0}", uid), serVal); } } #endif /// /// Aggiunge (in obj OrdineKit) l'ordine coi parametri indicati /// /// /// /// /// /// public bool addOrdArt(string codOrd, string codArt, string descArt, int qta) { bool answ = false; // verifico di avere un codiceKIT checkCodKit(); // salvo info x il cod temporaneo... DataLayer.obj.taWKS.insertQuery(codKitTemp, codOrd, codArt, descArt, qta); answ = true; #if false var currOrd = OrdineKit; // creo oggetto articolo Articolo newArt = new Articolo { Codice = codArt, Descrizione = descArt }; // creo un nuovo oggetto OrdineArticolo OrdineProdArt newOrdArt = new OrdineProdArt { OrdNum = codOrd, ArtOrd = newArt, Qta = qta }; var orderList = new List(); // se nullo inizializzo... if (currOrd == null || currOrd.Codice == null) { orderList.Add(newOrdArt); currOrd = new OrdineProdKit { OrdNum = "000000", Codice = "KIT_UNKNOWN", Qta = 1, OrdiniArt = orderList }; } else { // cerco duplicato... int idx = currOrd.OrdiniArt.FindIndex(x => x.OrdNum.Equals(codOrd)); if (idx >= 0) { // se ci fosse riga la cancello... currOrd.OrdiniArt.RemoveAt(idx); } // aggiungo SOLO la riga articolo currOrd.OrdiniArt.Add(newOrdArt); } // salvo ordine... OrdineKit = currOrd; answ = true; #endif return answ; } #endregion /// /// Caricamento pagina /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { doReset(); } } /// /// Ultimo input registrato /// public string lastInput { get { return hlLastInput.Value; } set { hlLastInput.Value = value; } } /// /// Aggiorno controllo secondo ULTIMO input /// public void doUpdate() { // aggiorno label... messOut = ""; // controllo input (reset/inizio o salva...) if (lastInput == regExp_KO) { // resetto dati doReset(); messOut = "Effettuato reset!"; } else if (lastInput == regExp_KitStart) { // resetto dati doReset(); messOut = "Inizio configurazione KIT"; } else if (lastInput == regExp_KitSave) { } else if (lastInput == regExp_OK) { } //riporto gli ordini caricati... StringBuilder sb = new StringBuilder(); string elCodArt = ""; string elCodOrd = ""; checkCodKit(); if (codKitTemp != "") { sb.AppendLine(string.Format("CodTemp:{0}
", codKitTemp)); // recupero da tab... var tabRes = DataLayer.obj.taWKS.getByFilt(codKitTemp); foreach (var item in tabRes) { sb.AppendLine(string.Format("OrdNum:{0}, CodArt: {1}, Descr: {2}, Qta: {3}
", item.CodOrd, item.CodArt, item.DescArt, item.Qta)); elCodArt += item.CodArt + ","; elCodOrd += item.CodOrd + ","; } } #if false var currOrd = OrdineKit; if (currOrd != null && currOrd.Codice != null) { sb.AppendLine(string.Format("OrdNum:{0}, TemplateKIT: {1}, Qta: {2}
", currOrd.OrdNum, currOrd.Codice, currOrd.Qta)); foreach (var item in OrdineKit.OrdiniArt) { sb.AppendLine(string.Format("OrdNum:{0}, CodArt: {1}, Descr: {2}, Qta: {3}
", item.OrdNum, item.ArtOrd.Codice, item.ArtOrd.Descrizione, item.Qta)); elCodArt += item.ArtOrd.Codice + ","; elCodOrd += item.OrdNum + ","; } } #endif // accodo... messOut += sb.ToString(); hfCodArtList.Value = elCodArt; hfCodOrdList.Value = elCodOrd; } private void doReset() { codOrd = ""; codArt = ""; kitCode = ""; qta = 0; descArt = ""; #if false OrdineKit = new OrdineProdKit(); #endif // elimino eventuali record ODL DataLayer.obj.taWKS.deleteQuery(codKitTemp); codKitTemp = ""; checkCodKit(); } /// /// Verifico SE HO un codKit Temporaneo sennò lo creo... /// private void checkCodKit() { if (codKitTemp == "") { // genero un NUOVO cod temp kit... codKitTemp = string.Format("KIT_{0:yyMMdd_HHmmss}", DateTime.Now); } } public string messOut { set { lblOut.Text = value; } get { return lblOut.Text; } } protected void grViewKitSel_SelectedIndexChanged(object sender, EventArgs e) { // se ho selezionato recupero CHIAVE string CodKit = grViewKitSel.SelectedValue.ToString(); // calcolo NUOVO codice kit... var tabKey = DataLayer.obj.taIstK.getNewKey(); if (tabKey.Rows.Count == 1) { // !!! FARE!!! nuovo metodo x creazione PODL #if false // recupero dati var currOrd = OrdineKit; // ora calcolo codice ordine... currOrd.Codice = CodKit; string newCodKit = tabKey[0].KeyKit; // creo NUOVA IstanzaKIT PER OGNI ordine if (currOrd != null && currOrd.Codice != null) { foreach (var item in OrdineKit.OrdiniArt) { DataLayer.obj.taIstK.insertQuery(newCodKit, item.OrdNum, currOrd.Codice, item.ArtOrd.Codice, item.Qta, item.Qta); } } // ora resetto ordine caricato... OrdineKit = new OrdineProdKit(); messOut = string.Format("Creato NUOVA P.ODL cod {0} per il KIT {1}", newCodKit, CodKit); #endif } } } }