Example #1
0
        public Prodotto(OleDbConnection cnn, string codice_maietta, int parentID, UtilityMaietta.genSettings s)
        {
            this.codicemaietta = codice_maietta;
            if (codice_maietta != "")
            {
                ip = new UtilityMaietta.infoProdotto(codice_maietta, cnn, s);

                string           str = " select * from mapprodotti where codicemaietta = '" + codicemaietta + "' and parentid = " + parentID;
                OleDbDataAdapter adt = new OleDbDataAdapter(str, cnn);
                DataTable        dt  = new DataTable();
                adt.Fill(dt);

                if (dt.Rows.Count > 0)
                {
                    this.note     = dt.Rows[0]["note"].ToString();
                    this.quantita = (dt.Rows[0]["quantita"].ToString() != "") ? int.Parse(dt.Rows[0]["quantita"].ToString()) : 0;
                    this.ripiano  = (dt.Rows[0]["ripiano"].ToString() != "") ? int.Parse(dt.Rows[0]["ripiano"].ToString()) : 0;
                    this.parent   = new ClassStruttura.Struttura(int.Parse(dt.Rows[0]["parentID"].ToString()), cnn, s);
                }
                else
                {
                    this.note    = "";
                    this.ripiano = this.quantita = 0;
                    this.parent  = null;
                }
            }
        }
Example #2
0
 public Prodotto(Prodotto p, ClassStruttura.Struttura _parent, int _qt, int _ripiano, string _note)
 {
     this.codicemaietta = p.codicemaietta;
     this.ip            = p.ip;
     this.note          = _note;
     this.quantita      = _qt;
     this.parent        = _parent;
     //p.parent;
     this.ripiano = _ripiano;
 }
Example #3
0
        public Prodotto(OleDbConnection cnn, string codice_maietta, UtilityMaietta.genSettings s)
        {
            this.codicemaietta = codice_maietta;
            if (codice_maietta != "")
            {
                ip = new UtilityMaietta.infoProdotto(codice_maietta, cnn, s);
            }

            this.note    = "";
            this.ripiano = this.quantita = 0;
            this.parent  = null;
        }
Example #4
0
        internal Prodotto(DataRow dr, OleDbConnection cnn, ClassStruttura.Struttura _parent, UtilityMaietta.genSettings s)
        {
            this.codicemaietta = dr["codicemaietta"].ToString();
            if (this.codicemaietta != "")
            {
                ip = new UtilityMaietta.infoProdotto(codicemaietta, cnn, s);
            }

            this.note     = dr["note"].ToString();
            this.ripiano  = (dr["ripiano"].ToString() == "") ? 0 : int.Parse(dr["ripiano"].ToString());
            this.quantita = (dr["quantita"].ToString() == "") ? 0 : int.Parse(dr["quantita"].ToString());
            this.parent   = _parent;
        }
Example #5
0
        public Prodotto(OleDbConnection cnn, string codice_maietta, UtilityMaietta.genSettings s, string _note, int _qt, int _ripiano, ClassStruttura.Struttura padre)
        {
            this.codicemaietta = codice_maietta;
            if (codice_maietta != "")
            {
                ip = new UtilityMaietta.infoProdotto(codice_maietta, cnn, s);
            }

            this.note     = _note;
            this.quantita = _qt;
            this.parent   = padre;
            this.ripiano  = _ripiano;

            //this.parentName = (parent != null) ? parent.nome : "";
        }
Example #6
0
    private Table ProductInfo(UtilityMaietta.infoProdotto ip)
    {
        Table tb = new Table();

        tb.CssClass    = "tabProd";
        tb.BorderWidth = 2;
        tb.BorderColor = System.Drawing.Color.LightGray;
        TableRow tr = new TableRow();

        TableCell tc = new TableCell();

        System.Web.UI.WebControls.Image i = new System.Web.UI.WebControls.Image();
        i.ImageUrl = (ip.image != "") ? "http://www.maiettasrl.it/rivenditori/ecommerce/" + ip.image.Replace("../", "") : "pics/nophoto.jpg";
        i.Width    = i.Height = 75;
        tc.Controls.Add(i);
        tr.Cells.Add(tc);
        tc           = new TableCell();
        tc.Font.Size = 14;
        tc.Text      = "<b>" + ip.codmaietta.ToUpper() + "</b><br />" + ip.desc;
        tr.Cells.Add(tc);
        tb.Rows.Add(tr);
        return(tb);
    }
    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());
        }
    }
    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());
        }
    }