Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    private void fillPrinters(UtilityMaietta.genSettings settings)
    {
        DataTable info    = new DataTable();
        DataSet   ds      = new DataSet();
        XmlReader xmlFile = XmlReader.Create(settings.lavMacchinaFile, new XmlReaderSettings());

        ds.ReadXml(xmlFile);
        xmlFile.Close();
        info = ds.Tables[0];

        TableRow  tr = new TableRow();
        TableCell tc = new TableCell();

        LavClass.TipoStampa ts;
        LavClass.Macchina   mc;
        foreach (DataRow dr in info.Rows)
        {
            tr      = new TableRow();
            tc      = new TableCell();
            ts      = new LavClass.TipoStampa(int.Parse(dr["stampa_def_id"].ToString()), settings.lavTipoStampaFile);
            mc      = new LavClass.Macchina(int.Parse(dr["id"].ToString()), settings.lavMacchinaFile, settings);
            tc.Text = mc.ToString();
            bool?online = mc.IsOnline();
            if (!online.HasValue)
            {
                continue;
            }
            else if (online.Value)
            {
                tr.BackColor = System.Drawing.Color.LightGreen;
            }
            else
            {
                tr.BackColor = System.Drawing.Color.Red;
            }
            tr.Cells.Add(tc);
            tabPrinters.Rows.Add(tr);
        }
    }
    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);
    }