protected void btnFindInvoice_Click(object sender, EventArgs e)
    {
        //string ricevuta = aMerchant.invoicePrefix(amzSettings) + txInvoice.Text.Trim();
        string          ricevuta = txInvoice.Text.Trim();
        OleDbConnection wc       = new OleDbConnection(settings.lavOleDbConnection);

        wc.Open();
        ArrayList al     = new ArrayList();
        string    errore = "";

        AmazonOrder.Order o = AmazonOrder.Order.FindOrderByInvoice(ricevuta, amzSettings, aMerchant, wc, out errore);
        al.Add(o);
        wc.Close();

        if (o != null)
        {
            fillGrid(int.Parse(dropVett.SelectedValue), amzSettings, al); //, false);
        }
        else if (o == null || errore != "")
        {
            Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore);
            return;
        }
        else
        {
            Response.Write("Nessun ordine trovato!");
        }
    }
    protected void btnFindSingleOrder_Click(object sender, EventArgs e)
    {
        string errore;

        if (!(AmazonOrder.Order.CheckOrderNum(txNumOrdine.Text)))
        {
            return;
        }

        AmazonOrder.Order o = AmazonOrder.Order.ReadOrderByNumOrd(txNumOrdine.Text, amzSettings, aMerchant, out errore);
        if (o != null)
        {
            ArrayList l = new ArrayList();
            l.Add(o);
            gvShips.DataSource = null;
            gvShips.DataBind();
            //addFirstRow(op.tipo, settings);
            //createGrid(l, false, op.tipo, settings);
            //addFirstRow(op.tipo, settings);
            //createGrid(l, false, op.tipo, settings);

            fillGrid(int.Parse(dropVett.SelectedValue), amzSettings, l); //, false);
        }
        else if (o == null || errore != "")
        {
            Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore);
            return;
        }

        //imbNextPag.Visible = imbPrevPag.Visible = false;
    }
        public EcmScheda(AmazonOrder.Order o, bool amazon, string cat)
        {
            this.spedizione    = o.ShipmentServiceLevelCategory;
            this.tipoAcquisto  = o.canaleOrdine;
            this.compratore    = o.buyer;
            this.address       = o.destinatario;
            this.canaleVendita = o.canaleVendita;

            this.cat_scheda = cat;
            this.dataOrdine = o.dataUltimaMod;
            this.isAmazon   = amazon;
        }
Esempio n. 4
0
    protected void btnMakePdf_Click(object sender, EventArgs e)
    {
        string data = "&invDate=" + calDataInvoice.SelectedDate.ToString().Replace("/", ".");

        //data = labDataScelta.Text.ToString().Replace("/", ".");
        if (dataInvoiceHidden.Value != null || dataInvoiceHidden.Value.ToString() != "0")
        {
            data = "&invDate=" + dataInvoiceHidden.Value.ToString();
        }
        string numord = Request.QueryString["amzOrd"].ToString();
        bool   movim  = (Request.Form["chkMovimenta"] != null && Request.Form["chkMovimenta"].ToString() == "on");

        AmazonOrder.Order o   = (AmazonOrder.Order)Session[numord];
        OleDbConnection   wc  = new OleDbConnection(settings.lavOleDbConnection);
        OleDbConnection   cnn = new OleDbConnection(settings.OleDbConnString);

        cnn.Open();
        if (o.Items == null)
        {
            wc.Open();
            System.Threading.Thread.Sleep(1500);
            o.RequestItemsAndSKU(amzSettings, aMerchant, settings, cnn, wc);
            wc.Close();
        }

        if (movim && !o.HasDispItems(cnn, calDataInvoice.SelectedDate))
        {
            cnn.Close();
            chkMovimenta.Enabled = chkMovimenta.Checked = false;
            Response.Write("Disponibilità negative per uno o più Item dell'ordine. Impossibile eseguire lo scarico.<br />" +
                           "Puoi solo creare il pdf.");
            return;
        }
        cnn.Close();

        int invoicenum = (Request.QueryString["amzInv"] != null) ? int.Parse(Request.QueryString["amzInv"].ToString()) : 0;

        string regalo = (Request.Form["chkRegalo"] != null && Request.Form["chkRegalo"].ToString() == "on") ? "&regalo=true" : "&regalo=false";
        string mov    = movim ? "&movimenta=true" : "&movimenta=false";

        string comunicazione = (Request.Form["chkSendRisp"] != null && Request.Form["chkSendRisp"].ToString() == "on") ? "&tiporisposta=" + Request.Form["dropRisposte"].ToString() : "";
        string schedaecm     = (Request.Form["chkMakeEcmScheda"] != null && Request.Form["chkMakeEcmScheda"].ToString() == "on") ? "&schedaecm=true" : "&schedaecm=false";
        string vettSig       = (Request.Form["dropVettori"] != null && Request.Form["dropVettori"].ToString() != "0") ? "&vettS=" + Request.Form["dropVettori"].ToString() : "";

        //string token = (Request.QueryString["token"] != null) ? Request.QueryString["token"].ToString() : "";

        Response.Redirect("download.aspx?amzOrd=" + numord + "&amzInv=" + invoicenum + regalo + mov + schedaecm + comunicazione + MakeQueryParams() + data + vettSig);
    }
Esempio n. 5
0
    //private int Year;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["bprefix"] != null && Request.QueryString["start"] != null && Request.QueryString["vettID"] != null && Session["addresses"] != null && Session["orderList"] != null)
        {
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            settings    = (UtilityMaietta.genSettings)Session["settings"];
            string        csv     = "";
            string        bprefix = Request.QueryString["bprefix"].ToString();
            int           start   = int.Parse(Request.QueryString["start"].ToString());
            int           vettID  = int.Parse(Request.QueryString["vettID"].ToString());
            string        code;
            int           c     = 0;
            List <string> lines = new List <string>();
            for (c = 0; c < ((ArrayList)Session["addresses"]).Count; c++)
            {
                code = bprefix + (start + c).ToString().PadLeft(2, '0');
                //csv = ((AmazonOrder.Order)((ArrayList)Session["orderIDS"])[c]).orderid + "\t" + DateTime.Today.ToString("ddMMyy") + "\t" + code.ToUpper();
                csv = (((ArrayList)Session["orderIDS"])[c]).ToString() + "\t" + DateTime.Today.ToString("ddMMyy") + "\t" + code.ToUpper();
                lines.Add(csv);
            }

            Shipment.ShipRead sr    = new Shipment.ShipRead(vettID, amzSettings.amzShipReadColumns);
            string[]          array = Shipment.ShipRead.AmazonLoadTable(lines, sr, '\t');
            csv = "";
            foreach (string s in array)
            {
                csv = (csv == "") ? s : csv + '\n' + s;
            }

            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + bprefix + start + "_" + c + ".txt");
            Response.Charset     = "";
            Response.ContentType = "application/text";
            Response.Output.Write(csv);
            Response.Flush();
            Response.End();
        }
        else if (Request.QueryString["shipment"] != null && Session["shipmentTable"] != null)
        {
            string vettName = Request.QueryString["shipment"].ToString();
            System.Data.DataTable csvTable =
                (System.Data.DataTable)Session["shipmentTable"];
            string csv = "";

            int i;
            foreach (DataRow dr in csvTable.Rows)
            {
                for (i = 0; i < csvTable.Columns.Count - 1; i++)
                {
                    csv += dr[i].ToString() + ";";
                }
                csv += dr[i].ToString() + Environment.NewLine;
            }

            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + vettName + "_" + csvTable.Rows.Count.ToString() + ".csv");
            Response.Charset     = "";
            Response.ContentType = "application/text";
            Response.Output.Write(csv);
            Response.Flush();
            Response.End();
        }
        else if (Request.QueryString["csvPackage"] != null && Session[Request.QueryString["csvPackage"].ToString()] != null)
        {
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            string     shipid     = Request.QueryString["csvPackage"].ToString();
            FileUpload fup        = ((FileUpload)Session["fupPackage"]);
            string     sourceFile = fup.FileName;
            ((FileUpload)Session["fupPackage"]).SaveAs(Path.Combine(Server.MapPath("temp"), "model_" + sourceFile));
            string            localFile = Path.Combine(Server.MapPath("temp"), "model_" + sourceFile);
            List <string>     lines     = File.ReadLines(localFile).ToList();
            int               colSt     = SHIP_MODEL_COL_START;
            int               rowSt     = SHIP_MODEL_ROW_START;
            string[]          linea;
            string            fnsku;
            boxSets.shipsInfo ship = (boxSets.shipsInfo)Session["ship_" + shipid];
            boxSets.Box       box;
            List <int>        boxlistIndexes;
            List <string[]>   finalRows = new List <string[]>();
            DateTime?         scad;
            int               hPos;
            // PER OGNI SKU CERCO I BOX
            for (int i = rowSt; i < lines.Count; i++)
            {
                linea          = lines[i].Split('\t');
                fnsku          = linea[SHIP_MODEL_FNSKU_COL];
                boxlistIndexes = ship.BoxContainsNames(fnsku);

                // PER OGNI BOX IN CUI SKU è PRESENTE SCRIVO QUANTITA
                foreach (int index in boxlistIndexes)
                {
                    //box = ship.GetBox(bid);
                    box  = ship.GetBox(index);
                    scad = box.GetScadenza(fnsku);
                    hPos = (index * 2) + colSt;
                    //hPos = (box.id * 2) + colSt;
                    linea[hPos] = box.GetItemsQtBySku(fnsku).ToString();
                    //if (hPos + 1 < linea.Length && linea[hPos + 1].Trim() == "")
                    if (scad.HasValue && hPos + 1 < linea.Length && linea[hPos + 1].Trim() == "")
                    {
                        //linea[hPos + 1] = DateTime.Today.AddYears(1).ToShortDateString();
                        linea[hPos + 1] = scad.Value.ToShortDateString();
                    }
                }
                // CONSERVO LA LINEA CON LE QUANTITA
                finalRows.Add(linea);
            }

            List <string> finalFile = new List <string>();
            // RICOSTRUISCO IL FILE: INTESTAZIONE
            for (int i = 0; i < rowSt; i++)
            {
                finalFile.Add(lines[i]);
            }
            string res;
            // RICOSTRUISCO IL FILE: PRODOTTI
            foreach (string [] skuRow in finalRows)
            {
                res = String.Join('\t'.ToString(), skuRow);
                finalFile.Add(res);
            }
            string file = String.Join('\n'.ToString(), finalFile);
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + sourceFile);
            Response.Charset     = "";
            Response.ContentType = "application/text";
            Response.Output.Write(file);
            Response.Flush();
            Response.End();
        }
        else if (Request.QueryString["csvFull"] != null && Session[Request.QueryString["csvFull"].ToString()] != null)
        {
            string shipid = Request.QueryString["csvFull"].ToString();
            //string[] cods, qts;
            string csv = "codicemaietta;qt;descrizione;sku";
            foreach (AmzIFace.AmzonInboundShipments.ShipItem si in (List <AmzIFace.AmzonInboundShipments.ShipItem>)Session[shipid])
            {
                csv += Environment.NewLine + " ;" + si.quantita + ";" + si.title + ";" + si.FNSKU;
            }
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + shipid + "_full.csv");
            Response.Charset     = "";
            Response.ContentType = "application/text";
            Response.Output.Write(csv);
            Response.Flush();
            Response.End();
        }
        else if (Request.QueryString["csv"] != null && Session[Request.QueryString["csv"].ToString()] != null)
        {
            string   shipid = Request.QueryString["csv"].ToString();
            string   csv    = "";
            string[] cods, qts;
            csv += "codicemaietta;qt";
            foreach (AmzIFace.AmzonInboundShipments.ShipItem si in (List <AmzIFace.AmzonInboundShipments.ShipItem>)Session[shipid])
            {
                if (si.codmaie == "" || si.qtSca == "")
                {
                    csv += Environment.NewLine + si.codmaie + ";" + si.quantita;
                    continue;
                }

                cods = si.codmaie.Split(';');
                qts  = si.qtSca.Split(';');
                for (int i = 0; i < cods.Length; i++)
                {
                    csv += Environment.NewLine + cods[i].Trim() + ";" + (si.quantita * int.Parse(qts[i].Trim())).ToString();
                }
            }
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + shipid + ".csv");
            Response.Charset     = "";
            Response.ContentType = "application/text";
            Response.Output.Write(csv);
            Response.Flush();
            Response.End();
        }
        else if (Request.QueryString["path"] != null)
        {
            string filePath = Request.QueryString["path"].ToString();
            Response.Buffer  = true;
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = "image/jpg";
            Response.AddHeader("content-disposition", "attachment;filename=" + Path.GetFileName(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(filePath))).Replace(" ", "_"));
            Response.TransmitFile(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(filePath)));
            Response.End();
        }
        else if (Request.QueryString["zip"] != null && Request.QueryString["id"] != null && Request.QueryString["tipo"] != null)
        {
            string dir    = Request.QueryString["zip"].ToString();
            string idLav  = Request.QueryString["id"].ToString();
            string tipo   = Request.QueryString["tipo"].ToString();
            string outZip = tipo + "_" + idLav + ".zip";
            StreamCompressDirectory(dir, outZip);
        }
        else if (Request.QueryString["rtfId"] != null)
        {
            int idLav = int.Parse(Request.QueryString["rtfId"].ToString());
            StreamConvertHtml(idLav);
        }
        else if (Request.QueryString["pdf"] != null && Request.QueryString["amzOrd"] != null && Session[Request.QueryString["amzOrd"].ToString()] != null && Request.QueryString["merchantId"] != null)
        {
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            string            orderID = Request.QueryString["amzOrd"].ToString();
            AmazonOrder.Order order   = (AmazonOrder.Order)Session[orderID];
            int      invoiceNum       = order.InvoiceNum;
            DateTime invoiceDate      = order.InvoiceDate;
            string   siglaV           = order.GetSiglaVettoreStatus();
            aMerchant = new AmzIFace.AmazonMerchant(int.Parse(Request.QueryString["merchantId"].ToString()), amzSettings.Year, amzSettings.marketPlacesFile, amzSettings);
            AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invoiceNum, true, invoiceDate, siglaV, false);
            //string fixedFileRegalo = Path.Combine(amzSettings.invoicePdfFolder(aMerchant), aMerchant.invoicePrefix(amzSettings) + invoiceNum.ToString().PadLeft(2, '0') + "_regalo.pdf");
            string fixedFileRegalo = order.GetGiftFile(amzSettings, aMerchant);
            //if (File.Exists(fixedFileRegalo))
            if (order.ExistsGiftFile(amzSettings, aMerchant))
            {
                Response.Buffer  = true;
                Response.Charset = "";
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "inline;filename=" + Path.GetFileName(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(fixedFileRegalo))).Replace(" ", "_"));
                Response.TransmitFile(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(fixedFileRegalo)));
            }
            else
            {
                Response.Write("File " + fixedFileRegalo + " non trovato!");
            }
            Response.End();
        }
        else if (Request.QueryString["pdf"] != null)
        {
            string filePath = Request.QueryString["pdf"].ToString();
            if (File.Exists(filePath))
            {
                Response.Buffer  = true;
                Response.Charset = "";
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "inline;filename=" + Path.GetFileName(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(filePath))).Replace(" ", "_"));
                Response.TransmitFile(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(filePath)));
            }
            else
            {
                Response.Write("File " + filePath + " non trovato!");
            }
            Response.End();
        }
        else if (Request.QueryString["amzOrd"] != null && Request.QueryString["amzInv"] != null && Request.QueryString["merchantId"] != null)
        {
            int invN = 0;
            //if (Session["amzSettings"] == null || !int.TryParse(Request.QueryString["amzInv"].ToString(), out invN) || invN < 1)
            if (Session["amzSettings"] == null || !int.TryParse(Request.QueryString["amzInv"].ToString(), out invN))// || invN < 1)
            {
                Response.Write("Sessione scaduta");
                return;
            }
            //string invoiceNum = Request.QueryString["amzInv"].ToString();
            string amzOrd   = Request.QueryString["amzOrd"].ToString();
            int    risposta = (Request.QueryString["tiporisposta"] != null) ? int.Parse(Request.QueryString["tiporisposta"].ToString()) : 0;
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            settings    = (UtilityMaietta.genSettings)Session["settings"];
            UtilityMaietta.Utente u = (UtilityMaietta.Utente)Session["Utente"];
            //Year = DateTime.Today.Year;
            aMerchant = new AmzIFace.AmazonMerchant(int.Parse(Request.QueryString["merchantId"].ToString()), amzSettings.Year, amzSettings.marketPlacesFile, amzSettings);
            COUNTRY   = amzSettings.Year + "&nbsp;-&nbsp;" + aMerchant.nazione + "&nbsp;" + aMerchant.ImageUrlHtml(25, 40, "inherit");

            string            errore = "";
            AmazonOrder.Order order;
            if (Session[Request.QueryString["amzOrd"].ToString()] != null)
            {
                order = (AmazonOrder.Order)Session[Request.QueryString["amzOrd"].ToString()];
            }
            else
            {
                order = AmazonOrder.Order.ReadOrderByNumOrd(amzOrd, amzSettings, aMerchant, out errore);
            }

            if (order == null || errore != "")
            {
                Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore);
                return;
            }

            DateTime invoiceDate;
            if (Request.QueryString["invDate"] != null)
            {
                invoiceDate = DateTime.Parse(Request.QueryString["invDate"].ToString());
            }
            else
            {
                invoiceDate = DateTime.Today;
            }

            OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString);
            OleDbConnection wc  = new OleDbConnection(settings.lavOleDbConnection);
            cnn.Open();
            wc.Open();

            if (order.Items == null)
            {
                order.RequestItemsAndSKU(amzSettings, aMerchant, settings, cnn, wc);
            }

            int vettS = 0;
            if (Request.QueryString["vettS"] != null)
            {
                int.TryParse(Request.QueryString["vettS"].ToString(), out vettS);
            }
            vettS = (vettS == 0) ? order.GetVettoreID(amzSettings) : vettS;

            int invoiceNum;
            /// IMPORTO DEFINITIVAMENTE L'ORDINE CON I VALORI della precedente schermata. ///
            ///
            if (int.Parse(Request.QueryString["amzInv"].ToString()) > 0)
            {
                // ORDINE GIA' COMPLETAMENTE IMPORTATO E CON RICEVUTA, SOLO NUOVE MOVIMENTAZIONI
                invoiceNum = int.Parse(Request.QueryString["amzInv"].ToString());
                if (order.GetVettoreID(amzSettings) != vettS) // NUOVO VETTORE, AGGIORNO
                {
                    order.UpdateVettore(cnn, wc, vettS);
                }
            }
            else if (order.IsFullyImported() || order.IsImported())
            {
                // ORDINE COMPLETAMENTE IMPORTATO, CREO NUMERO RICEVUTA e MOVIMENTAZIONI
                invoiceNum = order.UpdateFullStatus(wc, cnn, amzSettings, aMerchant, invoiceDate, vettS, true);
            }

            else
            {
                // ORDINE DA IMPORTARE,  CREO NUMERO RICEVUTA E MOVIMENTAZIONI
                invoiceNum = order.SaveFullStatus(wc, cnn, amzSettings, aMerchant, invoiceDate, vettS, true);
            }
            ///

            //string fixedFile = Path.Combine(amzSettings.invoicePdfFolder(aMerchant), aMerchant.invoicePrefix(amzSettings) + invoiceNum.ToString().PadLeft(2, '0') + ".pdf");
            string fixedFile = AmazonOrder.Order.GetInvoiceFile(amzSettings, aMerchant, invoiceNum);
            //string fixedFileRegalo = Path.Combine(amzSettings.invoicePdfFolder(aMerchant), aMerchant.invoicePrefix(amzSettings) + invoiceNum.ToString().PadLeft(2, '0') + "_regalo.pdf");
            string fixedFileRegalo = order.GetGiftFile(amzSettings, aMerchant);

            if (File.Exists(fixedFile))
            {
                Response.Write("Impossibile sovrascrivere il file " + fixedFile + "<br />" +
                               "Devi cancellarlo prima di poterlo sovrascrivere!");
                return;
            }
            //else if (File.Exists(fixedFileRegalo))
            else if (order.ExistsGiftFile(amzSettings, aMerchant))
            {
                Response.Write("Impossibile sovrascrivere il file " + fixedFileRegalo + "<br />" +
                               "Devi cancellarlo prima di poterlo sovrascrivere!");
                return;
            }

            if (Request.QueryString["movimenta"] != null && bool.Parse(Request.QueryString["movimenta"].ToString()))
            {
                string inv = aMerchant.invoicePrefix(amzSettings) + invoiceNum.ToString().PadLeft(2, '0');
                if (!order.HasDispItems(cnn, invoiceDate))
                {
                    cnn.Close();
                    wc.Close();
                    Response.Write("Disponibilità negative per uno o più Item dell'ordine. Impossibile eseguire lo scarico.<br />" +
                                   "Puoi solo creare il pdf.");
                    return;
                }
                List <AmzIFace.ProductMaga> pm = order.MakeMovimentaAllItems(cnn, amzSettings, u, inv, invoiceDate, order.dataUltimaMod, aMerchant, settings);
                UtilityMaietta.writeMagaOrder(pm, amzSettings.AmazonMagaCode, settings, 'F');
            }

            if (Request.QueryString["schedaecm"] != null && bool.Parse(Request.QueryString["schedaecm"].ToString()))
            {
                OleDbConnection ecmScn = new OleDbConnection(settings.EcmOleDbConnString);
                ecmScn.Open();
                EcmUtility.EcmScheda es = new EcmUtility.EcmScheda(order, true, EcmUtility.categoria);
                es.makeSchedaEcm(ecmScn);
                ecmScn.Close();
            }

            string siglaV = (vettS == 0) ? order.GetSiglaVettore(cnn, amzSettings) : order.GetSiglaVettoreStatus();
            //AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invN, false, invoiceDate, siglaV, false);
            AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invoiceNum, false, invoiceDate, siglaV, false);
            if (Request.QueryString["regalo"] != null && bool.Parse(Request.QueryString["regalo"].ToString()))
            {
                fixedFile = fixedFileRegalo;
                //AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invN, true, invoiceDate, siglaV, false);
                AmzIFace.AmazonInvoice.makeInvoicePdf(amzSettings, aMerchant, order, invoiceNum, true, invoiceDate, siglaV, false);
            }
            cnn.Close();
            wc.Close();

            if (risposta != 0)
            {
                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);
            }

            /*Response.Buffer = true;
             * Response.Charset = "";
             * Response.Cache.SetCacheability(HttpCacheability.NoCache);
             * Response.ContentType = "application/pdf";
             * Response.AddHeader("content-disposition", "attachment;filename=" + Path.GetFileName(fixedFile));
             * Response.TransmitFile(fixedFile);*/

            /*
             *
             */
            /*if (Request.QueryString["amzToken"] != null)
             * {
             *  string nexttoken = Request.QueryString["amzToken"].ToString();
             *  //imbNextPag.PostBackUrl = "amzPanoramica.aspx?token=" + Session["token"].ToString() + "&merchantId=" + Request.QueryString["merchantId"].ToString() + "&amzToken=" + HttpUtility.UrlEncode(nexttoken);
             *
             *  ClientScript.RegisterStartupScript(this.GetType(), "amzTokenPb",
             *      "<script type='text/javascript' language='javascript'>" +
             *      "window.open('download.aspx?pdf=" + HttpUtility.UrlEncode(fixedFile) + "&token=" + Session["token"].ToString() + "', '_blank');" +
             *      "__doPostBack('imbNextPag','OnClick');</script>");
             * }
             * else*/
            //{
            Response.Write(@"<script lang='text/javascript'>window.open('download.aspx?pdf=" + HttpUtility.UrlEncode(fixedFile) + "&token=" + Session["token"].ToString() + "', '_blank');" +
                           "window.top.location.href = 'amzPanoramica.aspx?token=" + Session["token"].ToString() + MakeQueryParams() + "';</script>)");
            //}

            /*if (Session["token"] != null)
             *  Response.Redirect("amzPanoramica.aspx?token=" + Session["token"].ToString() + MakeQueryParams());
             * else
             *  Response.Redirect("login.aspx?path=amzPanoramica");
             * Response.End();*/
        }
        else if (Request.QueryString["amzBCSku"] != null && Request.QueryString["labQt"] != null && Request.QueryString["descBC"] != null &&
                 Request.QueryString["status"] != null && Request.QueryString["labCode"] != null)
        {
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            settings    = (UtilityMaietta.genSettings)Session["settings"];

            int    numLabels = int.Parse(Request.QueryString["labQt"].ToString());
            string sku       = Request.QueryString["amzBCSku"].ToString();
            string descBC    = HttpUtility.HtmlDecode(HttpUtility.UrlDecode(Request.QueryString["descBC"].ToString()));
            string status    = Request.QueryString["status"].ToString();
            AmzIFace.AmazonInvoice.PaperLabel pl = new AmzIFace.AmazonInvoice.PaperLabel(0, 0, amzSettings.amzPaperLabelsFile, Request.QueryString["labCode"].ToString());

            string file = "barcode_" + sku + "_" + numLabels.ToString() + ".pdf";
            Response.ContentType = "application/pdf";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + file);
            AmzIFace.AmzonInboundShipments.MakeBarCodeFullPages(sku, descBC, status, numLabels, Response.OutputStream, amzSettings,
                                                                amzSettings.amzBarCodeWpx, amzSettings.amzBarCodeHpx, amzSettings.amzBarCodeWmm, amzSettings.amzBarCodeHmm, pl);

            Response.End();
            return;
        }
        else if (Request.QueryString["printAll"] != null && Request.QueryString["labCode"] != null && Session["printAll"] != null && Request.QueryString["status"] != null)
        {
            amzSettings = (AmzIFace.AmazonSettings)Session["amzSettings"];
            settings    = (UtilityMaietta.genSettings)Session["settings"];
            string status = Request.QueryString["status"].ToString();
            string shipid = Request.QueryString["printAll"].ToString();
            AmzIFace.AmazonInvoice.PaperLabel pl = new AmzIFace.AmazonInvoice.PaperLabel(0, 0, amzSettings.amzPaperLabelsFile, Request.QueryString["labCode"].ToString());
            List <AmzIFace.AmzonInboundShipments.FullLabel> printAll = (List <AmzIFace.AmzonInboundShipments.FullLabel>)Session["printAll"];

            int forPage  = pl.rows * pl.cols;
            int numpages = ((printAll.Count % forPage) == 0) ? printAll.Count / forPage : (printAll.Count / forPage) + 1;

            List <AmzIFace.AmzonInboundShipments.FullLabel[][]> document = new List <AmzIFace.AmzonInboundShipments.FullLabel[][]>();
            AmzIFace.AmzonInboundShipments.FullLabel[][]        page;

            int count = 0;
            for (int p = 0; p < numpages; p++)
            {
                if (count >= printAll.Count)
                {
                    break;
                }

                page = new AmzIFace.AmzonInboundShipments.FullLabel[pl.rows][];
                for (int r = 0; r < pl.rows; r++)
                {
                    if (count >= printAll.Count)
                    {
                        break;
                    }

                    page[r] = new AmzIFace.AmzonInboundShipments.FullLabel[pl.cols];
                    for (int c = 0; c < pl.cols; c++)
                    {
                        if (count >= printAll.Count)
                        {
                            break;
                        }

                        page[r][c]      = new AmzIFace.AmzonInboundShipments.FullLabel();
                        page[r][c].sku  = printAll[count].sku;
                        page[r][c].desc = printAll[count].desc;
                        page[r][c].qt   = printAll[count].qt;

                        count++;
                    }
                }
                document.Add(page);
            }

            /*int count = 0, pag = 0;
             * int c = 1, r = 1;
             * ArrayList labels = new ArrayList();
             *
             * //////////// ERRORE AUMENTO R E C
             * while (count < printAll.Count)
             * {
             *  labels.Add(new AmzIFace.AmazonInvoice.PaperLabel(c++, r++, amzSettings.amzPaperLabelsFile, Request.QueryString["labCode"].ToString()));
             *  count++;
             * }
             * for (int r = 0; r < pl.rows; r++)
             * {
             *  if (count >= printAll.Count)
             *      break;
             *  for (int c = 0; c < pl.cols; c++)
             *  {
             *      if (count >= printAll.Count)
             *          break;
             *
             *      labels.Add(new AmzIFace.AmazonInvoice.PaperLabel(c, r, amzSettings.amzPaperLabelsFile, Request.QueryString["labCode"].ToString()));
             *      count++;
             *  }
             * }*/
            string file = "barcode_" + shipid + "_" + printAll.Count.ToString() + ".pdf";
            Response.ContentType = "application/pdf";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + file);
            AmzIFace.AmzonInboundShipments.MakeMultiBarCodeGrid(document, Response.OutputStream, status, amzSettings, amzSettings.amzBarCodeWpx, amzSettings.amzBarCodeHpx,
                                                                amzSettings.amzBarCodeWmm, amzSettings.amzBarCodeHmm, pl);
            Response.End();
            return;
        }
        Response.Write("Sessione scaduta");
        return;
    }
    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);
    }
    protected void btnSaveCodes_Click(object sender, EventArgs e)
    {
        int tabLenght = 0, z = 0;

        if (Request.Form["hidRowsCount"] != null)
        {
            tabLenght = int.Parse(Request.Form["hidRowsCount"].ToString()) - 1;
        }

        string[] skuIndex = getHidIndex(tabLenght);
        rowSku[] lista    = new rowSku[skuIndex.Length];

        int count = 0;

        /// INSERIMENTO DA ORDINE AMAZON SU SKU
        /// DIFFERENZIAZIONE FATTA PER LE COPIE DA #c1 RIPETUTO
        if (Request.QueryString["amzOrd"] != null || Request.QueryString["amzSingleSku"] != null)
        {
            for (int i = 0; i < lista.Length; i++)
            {
                lista[i].sku = Request.Form["hidSku#" + skuIndex[i]].ToString();
                if (i > 0 && lista[i].sku != lista[i - 1].sku) // CAMBIO SKU
                {
                    count = 0;
                }
                lista[i].codicemaietta = (Request.Form["txCodMaga#" + RepeteRight(lista[i].sku, "#c1", count)] != null) ?
                                         Request.Form["txCodMaga#" + RepeteRight(lista[i].sku, "#c1", count)].ToString().Trim() :
                                         Request.Form["hidCodMaie#" + RepeteRight(lista[i].sku, "#c1", count)].ToString().Trim();
                lista[i].tiporisposta = int.Parse(Request.Form["dropTpr#" + RepeteRight(lista[i].sku, "#c1", count)].ToString());
                lista[i].lavorazione  = (Request.Form["chkLav#" + RepeteRight(lista[i].sku, "#c1", count)] != null &&
                                         Request.Form["chkLav#" + RepeteRight(lista[i].sku, "#c1", count)].ToString() == "on");
                lista[i].qts   = int.Parse(Request.Form["txQtS#" + RepeteRight(lista[i].sku, "#c1", count)].ToString());
                lista[i].ismcs = (Request.Form["chkMCS#" + RepeteRight(lista[i].sku, "#c1", count)] != null &&
                                  Request.Form["chkMCS#" + RepeteRight(lista[i].sku, "#c1", count)].ToString() == "on");
                lista[i].vettoreID = (Request.Form["dropVett#" + RepeteRight(lista[i].sku, "#c1", count)] != null) ?
                                     int.Parse(Request.Form["dropVett#" + RepeteRight(lista[i].sku, "#c1", count)].ToString()) : amzSettings.amzDefVettoreID;
                count++;
            }
        }
        /// INSERIMENTO/MODIFICA DA SINGOLO SKU
        /// DIFFERENZIAZIONE DA #si + count
        else if (Request.QueryString["amzSku"] != null) //TORNO IN PANORAMICA
        {
            lista = new rowSku[tabLenght];
            string mainSku = Request.QueryString["amzSku"].ToString();
            for (int i = 0; i < lista.Length; i++) // CICLO PER RIGHE INSERITE DAL PROGRAMMA #SI + i
            {
                lista[i].sku = mainSku;

                lista[i].codicemaietta = (Request.Form["txCodMaga#" + lista[i].sku + "#si" + i.ToString()] != null) ?
                                         Request.Form["txCodMaga#" + lista[i].sku + "#si" + i.ToString()].ToString().Trim() :
                                         Request.Form["hidCodMaie#" + lista[i].sku + "#si" + i.ToString()].ToString().Trim();

                lista[i].tiporisposta = int.Parse(Request.Form["dropTpr#" + lista[i].sku + "#si" + i.ToString()].ToString());
                lista[i].lavorazione  = (Request.Form["chkLav#" + lista[i].sku + "#si" + i.ToString()] != null &&
                                         Request.Form["chkLav#" + lista[i].sku + "#si" + i.ToString()].ToString() == "on");

                lista[i].qts = int.Parse(Request.Form["txQtS#" + lista[i].sku + "#si" + i.ToString()].ToString());

                lista[i].ismcs = (Request.Form["chkMCS#" + lista[i].sku + "#si" + i.ToString()] != null &&
                                  Request.Form["chkMCS#" + lista[i].sku + "#si" + i.ToString()].ToString() == "on");

                lista[i].vettoreID = (Request.Form["dropVett#" + lista[i].sku + "#si" + i.ToString()] != null) ?
                                     int.Parse(Request.Form["dropVett#" + lista[i].sku + "#si" + i.ToString()].ToString()) :
                                     amzSettings.amzDefVettoreID;

                for (z = 1; (Request.Form["txCodMaga#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)] != null); z++) // CICLO PER EVENTUALI RIGHE COPIATE #c0 z volte

                {
                    lista[i + z].sku = mainSku;

                    lista[i + z].codicemaietta = Request.Form["txCodMaga#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString().Trim();

                    lista[i + z].tiporisposta = int.Parse(Request.Form["dropTpr#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString());

                    lista[i + z].lavorazione = (Request.Form["chkLav#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)] != null &&
                                                Request.Form["chkLav#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString() == "on");

                    lista[i + z].qts = int.Parse(Request.Form["txQtS#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString());

                    lista[i + z].ismcs = (Request.Form["chkMCS#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)] != null &&
                                          Request.Form["chkMCS#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString() == "on");

                    lista[i + z].vettoreID = (Request.Form["dropVett#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)] != null) ?
                                             int.Parse(Request.Form["dropVett#" + RepeteRight(mainSku + "#si" + i.ToString(), "#c1", z)].ToString()) :
                                             amzSettings.amzDefVettoreID;
                }
                i = i + z - 1;
            }
        }
        z = 0;
        foreach (rowSku l in lista)
        {
            if (z + 1 < lista.Length && (lista[z].sku == lista[z + 1].sku && lista[z].vettoreID != lista[z + 1].vettoreID))
            {
                Response.Write("Per tutti i prodotti dello stesso SKU è richiesto lo stesso vettore. Impossibile continuare.");
                return;
            }
            z++;
        }
        OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString);
        OleDbConnection wc  = new OleDbConnection(settings.lavOleDbConnection);

        wc.Open();
        cnn.Open();
        UtilityMaietta.infoProdotto ip;
        //AmazonOrder.SKUItem[] items = new AmazonOrder.SKUItem[lista.Length];
        ///// CHECK validità codici
        ///// CONTROLLO SUI CODICI MAIETTA CORRETTI E IN LINEA
        for (int i = 0; i < lista.Length; i++)
        {
            ip = new UtilityMaietta.infoProdotto(lista[i].codicemaietta, cnn, settings);
            if (ip.codprodotto == "" || ip.codicefornitore == 0 || !ip.inlinea)
            {
                Response.Write("Codice maietta " + lista[i].codicemaietta + " non trovato o non in linea, impossibile salvare!");
                cnn.Close();
                return;
            }
        }
        ///// CERCA GLI SKU DISTINCT DA ELIMINARE (QUINDI ELIMINA x SKU con UNO O PIU' COD MAIETTA COLLEGATI)
        ArrayList distItem = distinctSku(lista);

        ///// CLEAR DISTINCT SKU
        foreach (rowSku s in distItem)
        {
            AmazonOrder.SKUItem.ClearSku(wc, s.sku);
        }
        ///// COLLEGA I NUOVI SKU AI CODICI
        for (int i = 0; i < lista.Length; i++)
        {
            AmazonOrder.SKUItem.LinkSku(wc, lista[i].sku, lista[i].codicemaietta, lista[i].tiporisposta, lista[i].lavorazione, lista[i].qts,
                                        lista[i].ismcs, lista[i].vettoreID);
        }

        ///////// Aggiorno items dell'ordine
        if (Request.QueryString["amzOrd"] != null && Session[Request.QueryString["amzOrd"].ToString()] != null)
        {
            AmazonOrder.Order order = (AmazonOrder.Order)Session[Request.QueryString["amzOrd"].ToString()];
            order.ReloadItemsAndSKU(order, order.orderid, amzSettings, settings, cnn, wc);
            Session[order.orderid] = order;
        }
        /////////
        cnn.Close();
        wc.Close();

        if (Request.QueryString["amzOrd"] != null) // VENGO DA PANORAMICA VADO IN INVOICE
        {
            int tpr = GetRisposta(lista, amzSettings);
            Response.Redirect("amzAutoInvoice.aspx?token=" + Request.QueryString["token"].ToString() + "&amzOrd=" + Request.QueryString["amzOrd"].ToString() + "&tiporisposta=" + tpr.ToString() + MakeQueryParams());
        }
        else if (Request.QueryString["amzSingleSku"] != null && Request.QueryString["ship"] != null)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "goBack", "<script type='text/javascript' language='javascript'>window.history.go(-2);</script>");
        }
        else if (Request.QueryString["amzSingleSku"] != null) //TORNO IN CERCA SKU SINGOLO
        {
            Response.Redirect("amzfindcode.aspx?token=" + Request.QueryString["token"].ToString() + "&merchantId=" + Request.QueryString["merchantId"].ToString());
        }
        else if (Request.QueryString["amzSku"] != null) //TORNO IN PANORAMICA
        {
            Response.Redirect("amzPanoramica.aspx?token=" + Request.QueryString["token"].ToString() + "&amzSku=" + Request.QueryString["amzSku"].ToString() + MakeQueryParams());
        }
    }
    private void FillTableCodes(AmazonOrder.Order o, OleDbConnection cnn)
    {
        AddFirstRow();
        TableRow    tr;
        TableCell   tc;
        Label       labSku;
        HiddenField hidSku;
        TextBox     txCodMaga;
        //TextBox txTipoR;
        DropDownList dropTipoR;
        CheckBox     chklav;
        TextBox      txQtS;
        CheckBox     chkMCS;
        DropDownList dropVett;
        ImageButton  imgB;
        DataTable    vettori  = UtilityMaietta.Vettore.GetVettori(cnn);
        ArrayList    risposte = AmazonOrder.Comunicazione.GetAllRisposte(amzSettings.amzComunicazioniFile, aMerchant);

        int count = 0;

        foreach (AmazonOrder.OrderItem oi in o.Items)
        {
            if (oi.prodotti == null || oi.prodotti.Count == 0)  // QUESTO ITEM HA SKU DA INSERIRE
            {
                tr = new TableRow();
                //SKU
                tc           = new TableCell();
                labSku       = new Label();
                labSku.ID    = "labSku#" + oi.sellerSKU + "#si" + count.ToString();
                labSku.Text  = oi.sellerSKU;
                hidSku       = new HiddenField();
                hidSku.ID    = "hidSku#" + oi.sellerSKU + "#si" + count.ToString();
                hidSku.Value = oi.sellerSKU;
                tc.Controls.Add(labSku);
                tc.Controls.Add(hidSku);
                tr.Cells.Add(tc);

                //CODICE MAGA
                tc             = new TableCell();
                txCodMaga      = new TextBox();
                txCodMaga.ID   = "txCodMaga#" + oi.sellerSKU;
                txCodMaga.Text = (AmazonOrder.SKUItem.SkuExistsMaFra(cnn, oi.sellerSKU) ? oi.sellerSKU.ToUpper() : "");
                tc.Controls.Add(txCodMaga);
                tr.Cells.Add(tc);

                //TIPO RISPOSTA
                tc                       = new TableCell();
                dropTipoR                = new DropDownList();
                dropTipoR.ID             = "dropTpr#" + oi.sellerSKU;
                dropTipoR.Width          = 160;
                dropTipoR.DataSource     = risposte;
                dropTipoR.DataTextField  = "nome";
                dropTipoR.DataValueField = "id";
                dropTipoR.DataBind();
                tc.Controls.Add(dropTipoR);

                /*txTipoR = new TextBox();
                 * txTipoR.ID = "txTpr#" + oi.sellerSKU;
                 * txTipoR.Width = 30;
                 * tc.Controls.Add(txTipoR);*/
                tr.Cells.Add(tc);

                //LAVORAZIONE
                tc        = new TableCell();
                chklav    = new CheckBox();
                chklav.ID = "chkLav#" + oi.sellerSKU;
                tc.Controls.Add(chklav);
                tr.Cells.Add(tc);

                //QT SCARICARE
                tc          = new TableCell();
                txQtS       = new TextBox();
                txQtS.ID    = "txQtS#" + oi.sellerSKU;
                txQtS.Width = 30;
                tc.Controls.Add(txQtS);
                tr.Cells.Add(tc);

                //OFFERTA
                tc        = new TableCell();
                chkMCS    = new CheckBox();
                chkMCS.ID = "chkMCS#" + oi.sellerSKU;
                tc.Controls.Add(chkMCS);
                tr.Cells.Add(tc);

                //VETTORE
                tc                      = new TableCell();
                dropVett                = new DropDownList();
                dropVett.ID             = "dropVett#" + oi.sellerSKU;
                dropVett.DataSource     = vettori;
                dropVett.DataTextField  = "sigla";
                dropVett.DataValueField = "id";
                dropVett.DataBind();
                dropVett.SelectedValue = amzSettings.amzDefVettoreID.ToString();
                tc.Controls.Add(dropVett);
                tr.Cells.Add(tc);

                // AGGIUNGI RIGA
                tc                 = new TableCell();
                imgB               = new ImageButton();
                imgB.ID            = "add_" + oi.sellerSKU;
                imgB.ImageUrl      = "pics/add.png";
                imgB.Width         = 35;
                imgB.Height        = 35;
                imgB.OnClientClick = "return addRow(this);";
                tc.Controls.Add(imgB);
                tr.Cells.Add(tc);

                if ((count % 2) != 0)
                {
                    tr.BackColor = System.Drawing.Color.LightGray;
                }
                tabCodes.Rows.Add(tr);
                count++;
            }
            else
            {
                foreach (AmazonOrder.SKUItem si in oi.prodotti) // QUESTO ITEM E' GIA' MEMORIZZATO
                {
                    tr = new TableRow();
                    //SKU
                    tc           = new TableCell();
                    labSku       = new Label();
                    labSku.ID    = "labSku#" + oi.sellerSKU + "#si" + count.ToString();
                    labSku.Text  = "@@" + si.SKU;
                    hidSku       = new HiddenField();
                    hidSku.ID    = "hidSku#@@" + si.SKU + "#si" + count.ToString();
                    hidSku.Value = "@@" + oi.sellerSKU;
                    tc.Controls.Add(labSku);
                    tc.Controls.Add(hidSku);
                    tr.Cells.Add(tc);

                    //CODICE MAGA
                    tc      = new TableCell();
                    tc.Text = si.prodotto.codmaietta;
                    tr.Cells.Add(tc);

                    //TIPO RISPOSTA
                    tc      = new TableCell();
                    tc.Text = si.idrisposta.ToString();
                    tr.Cells.Add(tc);

                    //LAVORAZIONE
                    tc             = new TableCell();
                    chklav         = new CheckBox();
                    chklav.ID      = "chkLav#" + oi.sellerSKU;
                    chklav.Checked = si.lavorazione;
                    chklav.Enabled = false;
                    tc.Controls.Add(chklav);
                    tr.Cells.Add(tc);

                    //QT SCARICARE
                    tc      = new TableCell();
                    tc.Text = si.qtscaricare.ToString();
                    tr.Cells.Add(tc);

                    //OFFERTA
                    tc             = new TableCell();
                    chkMCS         = new CheckBox();
                    chkMCS.ID      = "chkMCS#" + oi.sellerSKU;
                    chkMCS.Checked = si.isMCS;
                    chkMCS.Enabled = false;
                    tc.Controls.Add(chkMCS);
                    tr.Cells.Add(tc);

                    //VETTORE
                    tc                      = new TableCell();
                    dropVett                = new DropDownList();
                    dropVett.ID             = "dropVett#" + oi.sellerSKU;
                    dropVett.DataSource     = vettori;
                    dropVett.DataTextField  = "sigla";
                    dropVett.DataValueField = "id";
                    dropVett.DataBind();
                    dropVett.SelectedValue = amzSettings.amzDefVettoreID.ToString();
                    tc.Controls.Add(dropVett);
                    tr.Cells.Add(tc);

                    if ((count % 2) != 0)
                    {
                        tr.BackColor = System.Drawing.Color.LightGray;
                    }
                    tabCodes.Rows.Add(tr);
                    count++;
                }
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["entry"] == null || !bool.Parse(Session["entry"].ToString()) || Request.QueryString["merchantId"] == null ||
            Session["token"] == null || Request.QueryString["token"] == null ||
            Session["token"].ToString() != Request.QueryString["token"].ToString() ||
            Session["Utente"] == null || Session["settings"] == null ||
            (Request.QueryString["amzOrd"] == null && Request.QueryString["amzSku"] == null && Request.QueryString["amzSingleSku"] == null))
        {
            Session.Abandon();
            Response.Redirect("login.aspx?path=amzPanoramica");
        }

        u        = (UtilityMaietta.Utente)Session["Utente"];
        settings = (UtilityMaietta.genSettings)Session["settings"];
        //workYear = DateTime.Today.Year;
        Year = (int)Session["year"];


        LavClass.MafraInit folder = LavClass.MAFRA_INIT(Server.MapPath(""));
        if (folder.mafraPath == "")
        {
            folder.mafraPath = Server.MapPath("\\");
        }
        settings.ReplacePath(@folder.mafraInOut1[0], @folder.mafraInOut1[1]);
        settings.ReplacePath(@folder.mafraInOut2[0], @folder.mafraInOut2[1]);
        amzSettings = new AmzIFace.AmazonSettings(settings.lavAmazonSettingsFile, Year);
        amzSettings.ReplacePath(@folder.mafraInOut1[0], @folder.mafraInOut1[1]);
        amzSettings.ReplacePath(@folder.mafraInOut2[0], @folder.mafraInOut2[1]);

        /*string folder = LavClass.MAFRA_FOLDER(Server.MapPath(""));
         * settings.ReplacePath(@"G:\", @"\\10.0.0.80\c$\");
         * settings.ReplacePath(@"F:\", @"\\10.0.0.2\c$\");
         * amzSettings = new AmzIFace.AmazonSettings(settings.lavAmazonSettingsFile, Year);
         * amzSettings.ReplacePath(@"G:\", @"\\10.0.0.80\c$\");
         * amzSettings.ReplacePath(@"F:\", @"\\10.0.0.2\c$\");*/

        Session["settings"]    = settings;
        Session["amzSettings"] = amzSettings;
        Session["Utente"]      = u;

        aMerchant     = new AmzIFace.AmazonMerchant(int.Parse(Request.QueryString["merchantId"].ToString()), amzSettings.Year, amzSettings.marketPlacesFile, amzSettings);
        COUNTRY_TITLE = aMerchant.nazione;
        COUNTRY       = Year + "&nbsp;-&nbsp;" + aMerchant.nazione + "&nbsp;&nbsp;" + aMerchant.ImageUrlHtml(25, 40, "inherit");

        if (Page.IsPostBack)
        {
        }
        else if (Request.QueryString["amzOrd"] != null) // VENGO DA PANORAMICA VADO IN INVOICE
        {
            OPERAZIONE = " Inserimento da ordine";
            string amzOrd = Request.QueryString["amzOrd"].ToString();
            labOrderID.Text = "Ordine n#: " + amzOrd;

            string errore = "";

            if (Session[amzOrd] != null)
            {
                order = (AmazonOrder.Order)Session[Request.QueryString["amzOrd"].ToString()];
            }
            else
            {
                order = AmazonOrder.Order.ReadOrderByNumOrd(amzOrd, amzSettings, aMerchant, out errore);
            }
            Session[Request.QueryString["amzOrd"].ToString()] = order;

            if (order == null || errore != "")
            {
                Response.Write("Impossibile contattare amazon, riprova più tardi!<br />Errore: " + errore);
                return;
            }

            OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString);
            cnn.Open();
            if (order.Items == null)
            {
                System.Threading.Thread.Sleep(1500);
                OleDbConnection wc = new OleDbConnection(settings.lavOleDbConnection);
                wc.Open();
                order.RequestItemsAndSKU(amzSettings, aMerchant, settings, cnn, wc);
                wc.Close();
            }
            FillTableCodes(order, cnn);
            cnn.Close();

            labRedCode.Text = "";
        }
        else if (Request.QueryString["amzSingleSku"] != null)
        {
            OPERAZIONE = " Inserimento singolo";
            string amzSingleSku = Request.QueryString["amzSingleSku"].ToString();
            labOrderID.Text = "";

            OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString);
            cnn.Open();
            FillTableSingleSku(amzSingleSku, cnn);
            cnn.Close();

            if (amzSingleSku.Contains(" "))
            {
                btnSaveCodes.Enabled = false;
            }
        }
        else if (Request.QueryString["amzSku"] != null) /// MODIFICO SKU ESISTENTE
        {
            OPERAZIONE = " Modifica";
            string amzSku = Request.QueryString["amzSku"].ToString();
            labOrderID.Text = "";

            OleDbConnection cnn = new OleDbConnection(settings.OleDbConnString);
            OleDbConnection wc  = new OleDbConnection(settings.lavOleDbConnection);
            cnn.Open();
            wc.Open();
            ArrayList items = AmazonOrder.SKUItem.SkuItems(amzSku, wc, cnn, settings, amzSettings);
            FillTableSKU(items, cnn);
            cnn.Close();
            wc.Close();
            labRedCode.Text = "I codici con sfondo rosso sono già movimentati.<br />Non è possibile quindi modificare l'associazione.";
        }
    }