private int SaveLavoro(OleDbConnection cnn, OleDbConnection wc, AmzIFace.AmazonSettings amzs, UtilityMaietta.genSettings s, string nomeLavoro, List <int> indexRow) { LavClass.UtenteLavoro ul = new LavClass.UtenteLavoro(1, amzs.AmazonMagaCode, wc, cnn, s); LavClass.Operatore opLav; LavClass.Macchina mc = new LavClass.Macchina(amzs.lavMacchinaDef, s.lavMacchinaFile, s); LavClass.TipoStampa ts = new LavClass.TipoStampa(amzs.lavTipoStampaDef, s.lavTipoStampaFile); LavClass.Obiettivo ob = new LavClass.Obiettivo(amzs.lavObiettivoDef, s.lavObiettiviFile); LavClass.Priorita pr = new LavClass.Priorita(amzs.lavPrioritaDefStd, s.lavPrioritaFile); LavClass.Operatore approvatore = new LavClass.Operatore(amzs.lavApprovatoreDef, s.lavOperatoreFile, s.lavTipoOperatoreFile); int lavid = 0; if (ul.HasOperatorePref()) { opLav = ul.OperatorePreferito(); } else { opLav = new LavClass.Operatore(amzs.lavOperatoreDef, s.lavOperatoreFile, s.lavTipoOperatoreFile); } string testo = "Lavorazione Amazon spedizione logistica @ " + nomeLavoro + " @ <br />"; string qt, sku, titolo; int q; foreach (int ir in indexRow) { qt = int.TryParse((((TextBox)gridCheckItems.Rows[ir].Cells[OPcolQtLav].Controls[1]).Text), out q)? ((TextBox)gridCheckItems.Rows[ir].Cells[OPcolQtLav].Controls[1]).Text : gridCheckItems.Rows[ir].Cells[OPcolSped].Text; sku = gridCheckItems.Rows[ir].Cells[colSku].Text.Substring(0, gridCheckItems.Rows[ir].Cells[colSku].Text.IndexOf("<br")); titolo = UtilityMaietta.RemoveSpecialCharacters(gridCheckItems.Rows[ir].Cells[colTitolo].Text.Replace("My Custom Style", "").Trim()); titolo = (titolo.Length > 50) ? titolo.Substring(0, 49) : titolo; testo += "<br />-- n." + qt + " - " + sku + " - " + titolo; } lavid = LavClass.SchedaLavoro.SaveLavoro(wc, amzs.AmazonMagaCode, ul.id, opLav.id, mc.id, ts.id, ob.id, DateTime.Now, op, null, null, true, approvatore.id, false, testo, "", DateTime.Today.AddDays(2), nomeLavoro, pr.id); return(lavid); }
protected void LavGrid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.Cells.Count > idCol) { e.Row.Cells[clienteFID - 3].Visible = false; e.Row.Cells[operCol].Visible = false; e.Row.Cells[usidCol].Visible = false; e.Row.Cells[ordCol].Visible = false; e.Row.Cells[idStatoCol].Visible = false; //e.Row.Cells[opDispCol].Visible = false; } if (e.Row.RowIndex == -1) { return; } AmazonOrder.Order.lavInfo idlav = new AmazonOrder.Order.lavInfo(); idlav.lavID = int.Parse(e.Row.Cells[idCol].Text); idlav.rivID = int.Parse(e.Row.Cells[rivcodCol].Text); idlav.userID = int.Parse(e.Row.Cells[clienteFID - 3].Text); e.Row.Cells[obCol].Text = LavClass.Obiettivo.GetFromFile(obFile, "obiettivo", "id", int.Parse(e.Row.Cells[obCol].Text)).nome; e.Row.Cells[obCol].Font.Bold = true; LavClass.Priorita pr = LavClass.Priorita.GetFromFile(prFile, "npriorita", "id", int.Parse(e.Row.Cells[prCol].Text)); e.Row.Cells[prCol].Text = pr.nome; e.Row.Cells[prCol].Font.Bold = true; e.Row.Cells[prCol].BackColor = pr.colore; string allegati = ""; if (LavClass.SchedaLavoro.HasEmptyAttach(idlav.lavID, idlav.rivID, idlav.userID, settings)) { allegati = "<br /><font color='black' size='2px'><b>senza allegato</b></font>"; } else if (!LavClass.SchedaLavoro.HasAllegati(idlav.lavID, idlav.rivID, idlav.userID, settings)) { allegati = "<br /><font color='red' size='2px'><b>nessun allegato</b></font>"; } e.Row.Cells[statoCol].Text = "<b>" + e.Row.Cells[statoCol].Text.Replace("#", "</b><br /><font size='1'>") + "</font>" + allegati; e.Row.Cells[userCol].Font.Size = 9; LavClass.Operatore userRow = LavClass.Operatore.GetFromFile(operFile, "operatore", "id", int.Parse(e.Row.Cells[userCol].Text), tipoOpFile, "tipo", "id"); LavClass.Operatore operRow = LavClass.Operatore.GetFromFile(operFile, "operatore", "id", int.Parse(e.Row.Cells[operCol].Text), tipoOpFile, "tipo", "id"); e.Row.Cells[userCol].Text = "<b>" + userRow.ToString() + "</b><br />(" + operRow.ToString() + ")"; e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(e.Row.Cells[usidCol].Text); //if (checkCookie(int.Parse(e.Row.Cells[idCol].Text), op.id, settings.lavCookieFile).ToLower() != LavClass.CookieLav.NormalizeCookie(e.Row.Cells[statoCol].Text)) if (checkCookie(int.Parse(e.Row.Cells[idCol].Text), op.id, cookieX).ToLower() != LavClass.CookieLav.NormalizeCookie(e.Row.Cells[statoCol].Text)) { e.Row.Cells[blinkCol].Text = "<img src='pics/star-blink.gif' width='30px' height='30px' />"; } else { e.Row.Cells[blinkCol].Text = ""; } e.Row.Cells[isNoteCol].Text = (HttpUtility.HtmlDecode(e.Row.Cells[isNoteCol].Text).Trim() != "") ? "<img src='pics/postit.png' width='30px' height='30px' title='" + HttpUtility.HtmlDecode(e.Row.Cells[isNoteCol].Text).Trim() + "' />" : ""; string idvett; e.Row.Cells[isVettoreCol].Text = (idvett = HttpUtility.HtmlDecode(e.Row.Cells[isVettoreCol].Text).Trim()) != "0" && File.Exists(Server.MapPath("pics/vettori/" + idvett + ".png")) ? "<img src='pics/vettori/" + idvett + ".png' width='30px' height='30px' />" : ""; //title='" + HttpUtility.HtmlDecode(e.Row.Cells[isVettoreCol].Text).Trim() + "' />" : ""; e.Row.Cells[nomeLavCol].Font.Bold = true; e.Row.Cells[nomeLavCol].Font.Size = 12; Label lbId = new Label(); lbId.Text = int.Parse(e.Row.Cells[idCol].Text).ToString().PadLeft(5, '0'); lbId.ID = "lab_" + e.Row.Cells[idCol].Text; lbId.Width = 45; lbId.Font.Size = 12; lbId.Font.Bold = true; e.Row.Cells[idCol].Controls.Add(lbId); if (e.Row.Cells[linkCol].Text != "0") { e.Row.Cells[linkCol].Text = "<a href='lavDettaglio.aspx?id=" + e.Row.Cells[idCol].Text + "&token=" + Session["token"].ToString() + "&merchantId=" + Request.QueryString["merchantId"].ToString() + "' target='_self'><img src='pics/info.png' width='30px' height='30px' /></a>"; } else { e.Row.Cells[linkCol].Text = ""; } e.Row.Cells[inserCol].Text = "<b>" + e.Row.Cells[inserCol].Text.Replace(" ", "</b><br />"); e.Row.Cells[inserCol].Font.Size = 9; if (DateTime.Parse(e.Row.Cells[consCol].Text) < DateTime.Today) { e.Row.Cells[consCol].BackColor = System.Drawing.Color.Red; e.Row.Cells[consCol].Style.Add("text-decoration", "blink"); e.Row.Cells[consCol].Font.Bold = true; } Button b = new Button(); e.Row.Cells[rdbCol].Controls.Add(b); b.ID = "btn_" + e.Row.Cells[idCol].Text; b.Click += b_Click; b.Text = "*"; b.OnClientClick = "btnVisible(" + idlav.lavID + ");scrollBottom();"; AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); trigger.ControlID = b.UniqueID; trigger.EventName = "Click"; updPan1.Triggers.Add(trigger); }
private void fillGrid(UtilityMaietta.genSettings s, LavClass.Operatore oper) { string filOp, filOb, filTs, filMc, filPr, filApp, filEv, filComm, filRivend; filRivend = filOp = filOb = filTs = filMc = filPr = filApp = filEv = filComm = ""; int opID = int.Parse(DropOperatoreV.SelectedValue.ToString()); LavClass.Operatore op = new LavClass.Operatore(opID, s.lavOperatoreFile, s.lavTipoOperatoreFile); if (opID != 0) { filOp = " AND works.dbo.lavorazione.operatore_id = " + opID; } int obID = int.Parse(DropObiettiviV.SelectedValue.ToString()); LavClass.Obiettivo ob = new LavClass.Obiettivo(obID, s.lavObiettiviFile); if (obID != 0) { filOb = " AND works.dbo.lavorazione.obiettivo_id = " + obID; } int tsID = int.Parse(DropTipoStampa.SelectedValue.ToString()); LavClass.TipoStampa ts = new LavClass.TipoStampa(tsID, s.lavTipoStampaFile); if (tsID != 0) { filTs = " AND works.dbo.lavorazione.tipostampa_id = " + tsID; } int mcID = int.Parse(DropMacchina.SelectedValue.ToString()); LavClass.Macchina mc = new LavClass.Macchina(mcID, s.lavMacchinaFile, s); if (mcID != 0) { filMc = " AND works.dbo.lavorazione.macchina_id = " + mcID; } int prID = int.Parse(DropPriorita.SelectedValue.ToString()); LavClass.Priorita pr = new LavClass.Priorita(prID, s.lavPrioritaFile); if (prID != 0) { filPr = " AND works.dbo.lavorazione.priorita_id = " + prID; } int statID = int.Parse(dropStato.SelectedValue.ToString()); if (approvate) { filApp = " AND works.dbo.lavorazione.approvato = 1"; } if (incomplete) { filEv = " AND works.dbo.lavorazione.evaso = 0"; } if (soloCommer) { filComm = " AND works.dbo.lavorazione.utente_id = " + oper.id; } if (DropRivenditori.SelectedValue != "" && int.Parse(DropRivenditori.SelectedValue.ToString()) != 0) { filRivend = " AND works.dbo.lavorazione.rivenditore_id = " + DropRivenditori.SelectedValue.ToString(); } OleDbConnection mcn = new OleDbConnection(s.MainOleDbConnection); mcn.Open(); /*string str = " SELECT '0' AS [Sel.], Right('000' + CONVERT(NVARCHAR, works.dbo.lavorazione.id), 6) AS ID, works.dbo.lavorazione.rivenditore_id AS [Riv.Cod.], " + * " giomai_db.dbo.ecmonsql.azienda AS [Rivenditore], works.dbo.utente_lavoro.nome + ' (' + convert(VARCHAR, works.dbo.utente_lavoro.utente_id) + ')' AS [Cliente], " + * " works.dbo.lavorazione.nomelavoro AS [Nome], works.dbo.lavorazione.obiettivo_id AS [Obiettivo], works.dbo.lavorazione.priorita_id AS [Priorita], " + * " convert(varchar, works.dbo.lavorazione.consegna, 103) AS [Consegna], works.dbo.lavorazione.datainserimento AS [Inserito], works.dbo.lavorazione.utente_id AS [Proprietario], " + * " works.dbo.lavorazione.id AS [Ultimo Stato], works.dbo.lavorazione.id AS [News], works.dbo.lavorazione.operatore_id AS [OP], works.dbo.lavorazione.id AS [Link], " + * " works.dbo.lavorazione.id AS [USID], '0' AS [ORDCOL], '0' AS [IDSTATO], '0' AS [NEWORD], '0' AS [SCAD] " + * " from works.dbo.lavorazione, giomai_db.dbo.ecmonsql, works.dbo.utente_lavoro " + * " where works.dbo.lavorazione.rivenditore_id = works.dbo.utente_lavoro.rivenditore_id AND works.dbo.utente_lavoro.utente_id = works.dbo.lavorazione.clienteF_id AND works.dbo.lavorazione.rivenditore_id = giomai_db.dbo.ecmonsql.cliente_id " + * filOb + filTs + filMc + filPr + filApp + filEv + filOp + filComm + filRivend;*/ string str = " SELECT '0' AS [Sel.], Right('000' + CONVERT(NVARCHAR, works.dbo.lavorazione.id), 6) AS ID, " + " works.dbo.lavorazione.rivenditore_id AS [Riv.Cod.], giomai_db.dbo.ecmonsql.azienda AS [Rivenditore], " + " works.dbo.utente_lavoro.nome + ' (' + convert(VARCHAR, works.dbo.utente_lavoro.utente_id) + ')' AS [Cliente], " + " works.dbo.lavorazione.nomelavoro AS [Nome], works.dbo.lavorazione.obiettivo_id AS [Obiettivo], works.dbo.lavorazione.priorita_id AS [Priorita], " + " convert(varchar, works.dbo.lavorazione.consegna, 103) AS [Consegna], works.dbo.lavorazione.datainserimento AS [Inserito], " + " works.dbo.lavorazione.utente_id AS [Proprietario], storico.descrizione + '#' + convert (varchar, storico.data, 103) + ' ' + convert(varchar, storico.data, 24) AS [Ultimo Stato], works.dbo.lavorazione.id AS [News], works.dbo.lavorazione.operatore_id AS [OP], " + " works.dbo.lavorazione.id AS [Link], works.dbo.lavorazione.note AS [Nota], isnull(works.dbo.amzordine.vettore_id, 0) AS [VettID], " + " storico.colore AS [USID], storico.ordine AS [ORDCOL], storico.stato_id AS [IDSTATO], '0' AS [NEWORD], '0' AS [SCAD], storico.operatori_display AS [OPDISP], works.dbo.utente_lavoro.utente_id AS clfID" + " from works.dbo.lavorazione " + " outer apply(select top 1 works.dbo.storico_lavoro.stato_id, works.dbo.stato_lavoro.ordine, works.dbo.stato_lavoro.descrizione, works.dbo.storico_lavoro.data, works.dbo.stato_lavoro.colore, works.dbo.stato_lavoro.operatori_display " + " from works.dbo.storico_lavoro, works.dbo.stato_lavoro where works.dbo.stato_lavoro.id = works.dbo.storico_lavoro.stato_id and works.dbo.storico_lavoro.lavorazione_id = works.dbo.lavorazione.id order by works.dbo.storico_lavoro.data desc) as storico " + " join giomai_db.dbo.ecmonsql on (works.dbo.lavorazione.rivenditore_id = giomai_db.dbo.ecmonsql.cliente_id) " + " join works.dbo.utente_lavoro on (works.dbo.lavorazione.rivenditore_id = works.dbo.utente_lavoro.rivenditore_id AND works.dbo.utente_lavoro.utente_id = works.dbo.lavorazione.clienteF_id ) " + " left join works.dbo.amzordine on (works.dbo.amzordine.numamzordine = works.dbo.lavorazione.nomelavoro) " + " where works.dbo.lavorazione.id > 0 " + filOb + filTs + filMc + filPr + filApp + filEv + filOp + filComm + filRivend; //" order by works.dbo.lavorazione.datainserimento desc "; OleDbDataAdapter adt = new OleDbDataAdapter(str, mcn); DataTable dt = new DataTable(); adt.Fill(dt); DataTable res = dt.Clone(); res.Columns[statoCol].DataType = typeof(string); res.Columns[ordCol].DataType = typeof(int); res.Columns[prCol].DataType = typeof(int); res.Columns[inserCol].DataType = typeof(DateTime); res.Columns[idStatoCol].DataType = typeof(int); res.Columns[newOrd].DataType = typeof(int); res.Columns[scadCol].DataType = typeof(int); res.Columns[clienteFID].DataType = typeof(int); res.Columns[clienteFID].DataType = typeof(int); foreach (DataRow row in dt.Rows) { res.ImportRow(row); } //LavClass.StoricoLavoro storL; //LavClass.StatoLavoro slDisplay; int dispID; string dispUsers; DateTime cons; OleDbConnection wc = new OleDbConnection(s.lavOleDbConnection); wc.Open(); foreach (DataRow dr in res.Rows) { /*storL = LavClass.StatoLavoro.GetLastStato(int.Parse(dr[statoCol].ToString()), this.settings, wc); * dr[statoCol] = storL.stato.descrizione + "#" + storL.data.ToString(); * dr[ordCol] = storL.stato.ordine; * dr[idStatoCol] = storL.stato.id;*/ // MODIFICA PRIORITA' cons = DateTime.Parse(dr[consCol].ToString()); if (oper.tipo.id == settings.lavDefOperatoreID && cons.Subtract(DateTime.Today).Days <= NPriorita) { dr[newOrd] = -1; } if (cons < DateTime.Today) { dr[scadCol] = -1; } /*slDisplay = new LavClass.StatoLavoro(int.Parse(dr[idStatoCol].ToString()), settings, wc); * if (!sospesi && slDisplay.id == s.lavDefStatoSospeso) * dr.Delete(); * else if (!soloMieiStati && (slDisplay.id == s.lavDefStoricoChiudi || slDisplay.id == s.lavDefStatoNotificaIns)) * dr.Delete(); * else if (soloMieiStati && !slDisplay.OperatoreDisplay(oper)) * dr.Delete(); * else if (!soloMieiStati && !slDisplay.OperatoreDisplay(oper)) * dr[linkCol] = 0;*/ dispID = int.Parse(dr[idStatoCol].ToString()); dispUsers = dr[opDispCol].ToString(); if (!sospesi && dispID == s.lavDefStatoSospeso) { dr.Delete(); } else if (!soloMieiStati && (dispID == s.lavDefStoricoChiudi || dispID == s.lavDefStatoNotificaIns)) { dr.Delete(); } else if (soloMieiStati && !LavClass.StatoLavoro.IsOperatoreInList(dispUsers, ',', oper)) { dr.Delete(); } else if (!soloMieiStati && !LavClass.StatoLavoro.IsOperatoreInList(dispUsers, ',', oper)) { dr[linkCol] = 0; } } wc.Close(); mcn.Close(); if (statID == 0) { res.DefaultView.Sort = (chkSortDate.Checked) ? "ORDCOL ASC, Inserito ASC, SCAD ASC, NEWORD ASC, Priorita DESC" : "ORDCOL ASC, SCAD ASC, NEWORD ASC, Priorita DESC, Inserito ASC"; //////////// res.Columns.RemoveAt(opDispCol); res.Columns.RemoveAt(scadCol); res.Columns.RemoveAt(newOrd); LavGrid.DataSource = res.DefaultView.ToTable(); } else if (statID != 0 && res.Select(" IDSTATO = " + statID.ToString()).Length > 0) { res = res.Select(" IDSTATO = " + statID.ToString()).CopyToDataTable(); res.DefaultView.Sort = (chkSortDate.Checked) ? "ORDCOL ASC, Inserito ASC, SCAD ASC, NEWORD ASC, Priorita DESC" : "ORDCOL ASC, SCAD ASC, NEWORD ASC, Priorita DESC, Inserito ASC"; //////////// res.Columns.RemoveAt(opDispCol); res.Columns.RemoveAt(scadCol); res.Columns.RemoveAt(newOrd); LavGrid.DataSource = res.DefaultView.ToTable(); } else if (statID == 0 && res.Select(" IDSTATO = " + statID.ToString()).Length == 0) { res = null; LavGrid.DataSource = res; } prFile = XDocument.Load(settings.lavPrioritaFile); obFile = XDocument.Load(settings.lavObiettiviFile); operFile = XDocument.Load(settings.lavOperatoreFile); tipoOpFile = XDocument.Load(settings.lavTipoOperatoreFile); LavGrid.DataBind(); labTotRighe.Text = "Lavorazioni mostrate: " + LavGrid.Rows.Count; fillDropRivenditori((DataTable)LavGrid.DataSource, DropRivenditori.SelectedValue); }
private AmazonOrder.Order.lavInfo OpenLavorazioneFromAmz(AmazonOrder.Order order, OleDbConnection wc, OleDbConnection cnn, AmzIFace.AmazonSettings amzs, UtilityMaietta.genSettings s, string invoice) { string mailcl = order.buyer.emailCompratore; LavClass.UtenteLavoro ul = new LavClass.UtenteLavoro(mailcl, amzs.AmazonMagaCode, wc, cnn, s); LavClass.Operatore opLav; LavClass.Macchina mc = new LavClass.Macchina(amzs.lavMacchinaDef, s.lavMacchinaFile, s); LavClass.TipoStampa ts = new LavClass.TipoStampa(amzs.lavTipoStampaDef, s.lavTipoStampaFile); LavClass.Obiettivo ob = new LavClass.Obiettivo(amzs.lavObiettivoDef, s.lavObiettiviFile); //LavClass.Priorita pr = new LavClass.Priorita(amzs.lavPrioritaDef, s.lavPrioritaFile); LavClass.Priorita pr = new LavClass.Priorita(((order.ShipmentServiceLevelCategory.ShipmentLevelIs(AmazonOrder.ShipmentLevel.ESPRESSA)) ? amzs.lavPrioritaDefExpr : amzs.lavPrioritaDefStd), s.lavPrioritaFile); LavClass.Operatore approvatore = new LavClass.Operatore(amzs.lavApprovatoreDef, s.lavOperatoreFile, s.lavTipoOperatoreFile); int lavid = 0; //double myprice; if (ul.id == 0) // NON HO MAIL UTENTE { // INSERISCI SAVE UTENTE UtilityMaietta.clienteFattura amazonRiv = new UtilityMaietta.clienteFattura(amzs.AmazonMagaCode, cnn, s); LavClass.UtenteLavoro.SaveUtente(amazonRiv, wc, order.buyer.nomeCompratore + " c/o " + order.destinatario.nome, order.buyer.emailCompratore, order.destinatario.ToString(), order.destinatario.ToStringFormatted()); ul = new LavClass.UtenteLavoro(order.buyer.emailCompratore, amzs.AmazonMagaCode, wc, cnn, s); } if (ul.HasOperatorePref()) { opLav = ul.OperatorePreferito(); } else { opLav = new LavClass.Operatore(amzs.lavOperatoreDef, s.lavOperatoreFile, s.lavTipoOperatoreFile); } //string postit = ((order.GetSiglaVettore(cnn, amzs)) == postaSigla) ? "Spedizione con " + postaSigla : ""; // INSERISCI SAVE LAVORAZIONE string testo = (invoice != "") ? "Lavorazione <b>" + order.canaleVendita.ToUpper() + "</b> automatica.<br /><br />" + invoice : "Lavorazione <b>" + order.canaleVendita.ToUpper() + "</b> automatica."; lavid = LavClass.SchedaLavoro.SaveLavoro(wc, amzs.AmazonMagaCode, ul.id, opLav.id, mc.id, ts.id, ob.id, DateTime.Now, op, null, null, true, approvatore.id, false, testo, "", order.dataSpedizione, order.orderid, pr.id); // ADD PRODOTTI ArrayList distinctMaietta; if (freeProds && Session["freeProds"] != null) /// VENGO DA RICEVUTA FREEINVOICE E CON SPUNTA CREA LAVORAZIONE { distinctMaietta = new ArrayList((List <AmzIFace.CodiciDist>)Session["freeProds"]); foreach (AmzIFace.CodiciDist codD in distinctMaietta) { LavClass.ProdottoLavoro.SaveProdotto(lavid, codD.maietta.idprodotto, codD.qt, "", codD.totPrice / codD.qt, false, wc); } } else if (order.Items != null) /// VENGO DA PANORAMICA { distinctMaietta = FillDistinctCodes(order.Items, aMerchant, s); //, DateTime.Today); foreach (AmzIFace.CodiciDist codD in distinctMaietta) { LavClass.ProdottoLavoro.SaveProdotto(lavid, codD.maietta.idprodotto, codD.qt, "", codD.totPrice / codD.qt, false, wc); } } AmazonOrder.Order.lavInfo li = new AmazonOrder.Order.lavInfo(); li.lavID = lavid; li.rivID = amzs.AmazonMagaCode; li.userID = ul.id; return(li); }