private ArrayList FillDistinctCodes(ArrayList orderItems, AmzIFace.AmazonMerchant am, UtilityMaietta.genSettings s) //, DateTime dataInvoice) { double myprice; int pos = 0; AmzIFace.CodiciDist cd; ArrayList res = new ArrayList(); if (orderItems != null) { foreach (AmazonOrder.OrderItem oi in orderItems) { if (oi.prodotti != null && oi.prodotti.Count > 0) { foreach (AmazonOrder.SKUItem si in oi.prodotti) { if (si.lavorazione) { //myprice = oi.prezzo.ConvertPrice(am.GetRate()) * (si.prodotto.prezzopubbl * 1.22) / (oi.PubblicoInSKU() * 1.22); myprice = oi.prezzo.ConvertPrice(am.GetRate()) * (si.prodotto.prezzopubbl * s.IVA_MOLT) / (oi.PubblicoInSKU() * s.IVA_MOLT); cd = new AmzIFace.CodiciDist(si.prodotto, si.qtscaricare * oi.qtOrdinata, myprice); if (!res.Contains(cd)) { res.Add(cd); } else { pos = res.IndexOf(cd); ((AmzIFace.CodiciDist)res[pos]).AddQuantity(si.qtscaricare * oi.qtOrdinata, myprice); } } } } } } return(res); }
protected void btnMakePdf_Click(object sender, EventArgs e) { string errore = ""; UtilityMaietta.Utente u = (UtilityMaietta.Utente)Session["Utente"]; //string amzOrd = Request.Form["txNumOrd"].ToString(); string amzOrd = Request.QueryString["amzOrd"].ToString(); bool regalo = (Request.Form["chkRegalo"] != null && Request.Form["chkRegalo"].ToString() == "on"); bool mov = (Request.Form["chkMovimenta"] != null && Request.Form["chkMovimenta"].ToString() == "on") ? true : false; bool comm = (Request.Form["chkSendRisp"] != null && Request.Form["chkSendRisp"].ToString() == "on") ? true : false; DateTime invoiceDate = calInvoiceData.SelectedDate; UtilityMaietta.infoProdotto ip; int count = 0; string pos; string codprod; int codforn, qt; double costo; OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString); OleDbConnection wc = new OleDbConnection(settings.lavOleDbConnection); wc.Open(); cnn.Open(); // CHECK DISPONIBILITA if (mov) { foreach (GridViewRow gvr in gridProducts.Rows) { pos = (count + 2).ToString().PadLeft(2, '0'); codprod = gvr.Cells[colCodProd].Text; codforn = int.Parse(gvr.Cells[colCodForn].Text); costo = double.Parse(Request.Form["gridProducts$ctl" + pos + "$txCosto_" + count.ToString().Replace(",", ".")].ToString()); qt = int.Parse(Request.Form["gridProducts$ctl" + pos + "$txQt_" + count.ToString()].ToString()); ip = new UtilityMaietta.infoProdotto(codprod, codforn, cnn, settings); if (ip.getDispDate(cnn, DateTime.Now, false) < qt || ip.getDispDate(cnn, invoiceDate, true) - (qt) < 0) { wc.Close(); cnn.Close(); btnMakePdf.Enabled = false; Response.Write("Quantità indicata non disponibile!"); return; } count++; } } // RECUPERA ORDINE AmazonOrder.Order order; if (Session[amzOrd] == null) { order = AmazonOrder.Order.ReadOrderByNumOrd(amzOrd, amzSettings, aMerchant, out errore); } else { order = (AmazonOrder.Order)Session[amzOrd]; } if (order == null || errore != "") { Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore); return; } if (order.Items == null || order.Items.Count == 0) { order.RequestItems(amzSettings, aMerchant); } if (order.Items == null || order.Items.Count == 0) { Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore); return; } int vettS = int.Parse(dropVettori.SelectedValue.ToString()); int invoiceNum; /// IMPORTO DEFINITIVAMENTE L'ORDINE CON I VALORI della precedente schermata. if (Request.QueryString["amzInv"] != null && int.Parse(Request.QueryString["amzInv"].ToString()) > 0) { // ORDINE GIA' COMPLETAMENTE IMPORTATO E CON RICEVUTA, SOLO NUOVE MOVIMENTAZIONI invoiceNum = int.Parse(Request.QueryString["amzInv"].ToString()); } else if (order.IsFullyImported() || order.IsImported()) { // ORDINE COMPLETAMENTE IMPORTATO, CREO NUMERO RICEVUTA e MOVIMENTAZIONI invoiceNum = order.UpdateFullStatus(wc, cnn, amzSettings, aMerchant, invoiceDate, vettS, false); } else { // ORDINE DA IMPORTARE, CREO NUMERO RICEVUTA E MOVIMENTAZIONI invoiceNum = order.SaveFullStatus(wc, cnn, amzSettings, aMerchant, invoiceDate, vettS, false); } string siglaV = dropVettori.SelectedItem.Text; // EMETTI FATTURA AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invoiceNum, regalo, invoiceDate, siglaV, chkOpenLav.Checked); string inv = aMerchant.invoicePrefix(amzSettings) + invoiceNum.ToString().PadLeft(2, '0'); // MOVIMENTA SINGOLO CODICE count = 0; List <AmzIFace.CodiciDist> lip = new List <AmzIFace.CodiciDist>(); List <AmzIFace.ProductMaga> pm = new List <AmzIFace.ProductMaga>(); AmzIFace.ProductMaga prod; AmzIFace.CodiciDist cd; int cdpos; foreach (GridViewRow gvr in gridProducts.Rows) { pos = (count + 2).ToString().PadLeft(2, '0'); codprod = gvr.Cells[colCodProd].Text; codforn = int.Parse(gvr.Cells[colCodForn].Text); costo = double.Parse(Request.Form["gridProducts$ctl" + pos + "$txCosto_" + count.ToString()].ToString().Replace(",", ".")); qt = int.Parse(Request.Form["gridProducts$ctl" + pos + "$txQt_" + count.ToString()].ToString()); ip = new UtilityMaietta.infoProdotto(codprod, codforn, cnn, settings); if (mov) { ip.AmzMovimenta(cnn, inv, order.orderid, invoiceDate, costo, qt, order.dataUltimaMod, amzSettings, u); prod = new AmzIFace.ProductMaga(); prod.codicemaietta = ip.codmaietta; //prod.price = costo / 1.22; prod.price = costo / settings.IVA_MOLT; prod.qt = qt; pm.Add(prod); } cd = new AmzIFace.CodiciDist(ip, qt, costo); if (!lip.Contains(cd)) { lip.Add(cd); } else { cdpos = lip.IndexOf(cd); lip[cdpos].AddQuantity(qt, costo); } count++; } cnn.Close(); Session["freeProds"] = lip; if (mov) { UtilityMaietta.writeMagaOrder(pm, amzSettings.AmazonMagaCode, settings, 'F'); } if (comm && Request.Form["dropRisposte"] != null && Request.Form["dropRisposte"].ToString() != "0") { int risposta = int.Parse(Request.Form["dropRisposte"].ToString()); if (risposta != 0) { string fixedFile = AmazonOrder.Order.GetInvoiceFile(amzSettings, aMerchant, invoiceNum); AmazonOrder.Comunicazione com = new AmazonOrder.Comunicazione(risposta, amzSettings, aMerchant); string subject = com.Subject(order.orderid); string attach = (com.selectedAttach && File.Exists(fixedFile)) ? fixedFile : ""; bool send = UtilityMaietta.sendmail(attach, amzSettings.amzDefMail, order.buyer.emailCompratore, subject, com.GetHtml(order.orderid, order.destinatario.ToHtmlFormattedString(), order.buyer.nomeCompratore), false, "", "", settings.clientSmtp, settings.smtpPort, settings.smtpUser, settings.smtpPass, false, null); } } if (chkOpenLav.Checked) { /// APRI LAVORAZIONE Response.Redirect("lavAmzOpen.aspx?token=" + Request.QueryString["token"].ToString() + "&amzOrd=" + order.orderid + "&invnumb=" + inv + "&freeProds=" + lip.Count.ToString() + MakeQueryParams()); } else { /// TORNA IN HOME Response.Redirect("amzPanoramica.aspx?token=" + Session["token"].ToString() + MakeQueryParams()); } }