Ejemplo n.º 1
0
        private void btnCercaDiBa_Click(object sender, EventArgs e)
        {
            txtArticolo.Text = txtArticolo.Text.Trim().ToUpper();
            using (EstraiProdottiFinitiBusiness bEstrai = new EstraiProdottiFinitiBusiness())
            {
                if (string.IsNullOrEmpty(txtArticolo.Text))
                {
                    MessageBox.Show("Inserisci il modello da cercare", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
                _ds.USR_PRD_TDIBA.Clear();

                txtNoteStd.Text      = string.Empty;
                txtVersioneDiBa.Text = string.Empty;
                this.Text            = "Distinta RVL";
                string IDTDIBA = string.Empty;
                string modello = string.Empty;
                bEstrai.GetUSR_PRD_TDIBAByModello(_ds, txtArticolo.Text);
                if (_ds.USR_PRD_TDIBA.Rows.Count > 0)
                {
                    SelezionaDIbaFrm frm = new SelezionaDIbaFrm();
                    frm.estraiProdottiFinitiDS1 = _ds;
                    frm.ShowDialog();

                    IDTDIBA = frm.IDTDIBA;
                    if (string.IsNullOrEmpty(IDTDIBA))
                    {
                        return;
                    }
                    txtNoteStd.Text      = frm.NotaStd;
                    txtVersioneDiBa.Text = frm.Versione;
                    modello = frm.Modello;
                }
                else
                {
                    EstraiProdottiFinitiDS.USR_PRD_TDIBARow riga = _ds.USR_PRD_TDIBA.FirstOrDefault();
                    if (riga == null)
                    {
                        MessageBox.Show("Articolo non trovato", "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                    IDTDIBA = riga.IDTDIBA;

                    txtNoteStd.Text      = riga.IsNOTESTDNull() ? string.Empty : riga.NOTESTD;
                    txtVersioneDiBa.Text = riga.IsNOTETECHNull() ? string.Empty : riga.NOTETECH;
                    modello = riga.MODELLO;
                }
                this.Text = string.Format("{0} {1}", this.Text, modello);

                Nodi = new List <Nodo>();
                _ds.USR_PRD_TDIBA.Clear();
                _ds.USR_PRD_RDIBA.Clear();
                _ds.MAGAZZ.Clear();
                _ds.BC_ANAGRAFICA.Clear();
                _ds.TABFAS.Clear();
                _ds.BC_NODO.Clear();

                bEstrai.FillBC_ANAGRAFICA(_ds, chkTest.Checked);
                bEstrai.FillTABFAS(_ds);
                bEstrai.FillBC_TASK(_ds);
                bEstrai.FillBC_NODO(_ds, chkTest.Checked);
                bEstrai.fILLBC_NODO_Q(_ds, chkTest.Checked);
                try
                {
                    Cursor.Current = Cursors.WaitCursor;
                    int idNodo     = 1;
                    int profondita = 1;
                    EstraiDistintaBase(bEstrai, IDTDIBA, profondita, ref idNodo, -1, 1, 0, string.Empty, string.Empty, "N", string.Empty);

                    pulisciNodi();
                    riempiNodi();
                    caricaMagazzinoRVL();

                    CreaAlbero();
                    PopolaGrigliaNodi();
                }
                catch (Exception ex)
                {
                    Cursor.Current = Cursors.Default;
                    MostraEccezione("Errore nel caricamento della distinta", ex);
                }
            }
        }
Ejemplo n.º 2
0
        private void EstraiDistintaBase(EstraiProdottiFinitiBusiness bEstrai, string IDTDIBA, int profondita, ref int idNodo, int idPadre, decimal quantitaConsumo,
                                        decimal quantitaOccorrenza, string noteTecniche, string noteStandard, string fornitoDaCommittente, string unitaMisura)
        {
            bEstrai.GetUSR_PRD_TDIBA(_ds, IDTDIBA);
            EstraiProdottiFinitiDS.USR_PRD_TDIBARow testata = _ds.USR_PRD_TDIBA.Where(x => x.IDTDIBA == IDTDIBA).FirstOrDefault();

            if (testata != null)
            {
                bool modelloCOntieneCTRL = false;
                if (!testata.IsCODICECLIFOPRDNull() && testata.CODICECLIFOPRD.Trim() == "02350" && chkInserisciTopFinish.Checked)
                {
                    int IDNodoPartenza = idNodo;
                    int idPadreNuovo   = 0;
                    bEstrai.GetUSR_PRD_TDIBATopFinishByIDMAGAZZ(_ds, testata.IDMAGAZZ);

                    EstraiProdottiFinitiDS.USR_PRD_TDIBATOPFINISHRow rigaTopFinish = _ds.USR_PRD_TDIBATOPFINISH.Where(x => x.IDMAGAZZ == testata.IDMAGAZZ && x.DEBADEFAULT == "S").FirstOrDefault();
                    if (rigaTopFinish != null)
                    {
                        EstraiDistintaTopFinish(bEstrai, rigaTopFinish.IDTDIBA, profondita, ref idNodo, idPadre, quantitaConsumo, quantitaOccorrenza, string.Empty, string.Empty, "N", unitaMisura);
                    }
                    int profonditaRamo = TrovaProfonditaRamo(IDNodoPartenza, out idPadreNuovo);
                    profondita = profonditaRamo;
                    idPadre    = idPadreNuovo;
                }
                else
                {
                    bEstrai.GetMAGAZZ(_ds, testata.IDMAGAZZ);
                    string reparto = testata.IsCODICECLIFOPRDNull() ? string.Empty : testata.CODICECLIFOPRD;

                    noteTecniche = testata.IsNOTETECHNull() ? string.Empty : testata.NOTETECH;
                    noteStandard = testata.IsNOTESTDNull() ? string.Empty : testata.NOTESTD;

                    Nodo n = CreaNodo(idNodo, testata.IDMAGAZZ, profondita, idPadre, quantitaConsumo, quantitaOccorrenza, testata.IDTABFAS, noteTecniche, noteStandard, fornitoDaCommittente,
                                      testata.METODO, testata.VERSION.ToString(), testata.ACTIVESN, testata.CHECKSN, unitaMisura, reparto);

                    Nodi.Add(n);
                    idPadre = n.ID;
                    idNodo++;

                    //EstraiProdottiFinitiDS.BC_TASKRow task = _ds.BC_TASK.Where(x => x.IDTABFAS == testata.IDTABFAS).FirstOrDefault();
                    //if (task != null)
                    //{
                    //    if (task.TASK.Trim() == "***ESCLUDERE")
                    //        n.Reparto = "CTRL";
                    //}

                    //if (!chkControlliQualita.Checked || !n.Reparto.Contains("CTRL"))

                    //{

                    //    if (!n.Modello.Contains("CTRL"))
                    //    {
                    //        Nodi.Add(n);
                    //        idPadre = n.ID;
                    //        idNodo++;
                    //    }
                    //    else modelloCOntieneCTRL = true;
                    //}
                    //else
                    //{
                    //    if (n.Fase == "SKIC")
                    //    {
                    //        Nodi.Add(n);
                    //        idPadre = n.ID;
                    //        idNodo++;
                    //    }
                    //}
                }
                bEstrai.GetUSR_PRD_RDIBA(_ds, IDTDIBA);
                List <EstraiProdottiFinitiDS.USR_PRD_RDIBARow> componenti = _ds.USR_PRD_RDIBA.Where(x => x.IDTDIBA == IDTDIBA).ToList();
                if (componenti.Count > 0 && !modelloCOntieneCTRL)
                {
                    profondita++;
                }

                foreach (EstraiProdottiFinitiDS.USR_PRD_RDIBARow componente in componenti)
                {
                    string nTech = componente.IsNOTETECHNull() ? string.Empty : componente.NOTETECH;
                    string nStad = componente.IsNOTESTDNull() ? string.Empty : componente.NOTESTD;
                    if (!componente.IsIDTDIBAIFFASENull() && componente.STOCKSN == "N")
                    {
                        EstraiDistintaBase(bEstrai, componente.IDTDIBAIFFASE, profondita, ref idNodo, idPadre, componente.QTACONSUMO, componente.QTAOCCORRENZA, nTech, nStad, componente.CVENSN, componente.CODICEUNIMI);
                    }
                    else
                    {
                        string repartoDiba = testata.IsCODICECLIFOPRDNull() ? string.Empty : testata.CODICECLIFOPRD;
                        bEstrai.GetMAGAZZ(_ds, componente.IDMAGAZZ);
                        Nodo nodoFiglio = CreaNodo(idNodo, componente.IDMAGAZZ, profondita, idPadre, componente.QTACONSUMO, componente.QTAOCCORRENZA, testata.IDTABFAS, noteTecniche, noteStandard, componente.CVENSN,
                                                   testata.METODO, testata.VERSION.ToString(), testata.ACTIVESN, testata.CHECKSN, componente.CODICEUNIMI, repartoDiba);

                        Nodi.Add(nodoFiglio);
                        idNodo++;
                        //EstraiProdottiFinitiDS.BC_TASKRow task = _ds.BC_TASK.Where(x => x.IDTABFAS == testata.IDTABFAS).FirstOrDefault();
                        //if (task != null)
                        //{
                        //    if (task.TASK.Trim() == "***ESCLUDERE")
                        //        nodoFiglio.Reparto = "CTRL";
                        //}


                        //if (!chkControlliQualita.Checked || !nodoFiglio.Reparto.Contains("CTRL"))
                        //{
                        //    if (!nodoFiglio.Modello.Contains("CTRL"))
                        //    {
                        //        Nodi.Add(nodoFiglio);
                        //        idNodo++;
                        //    }
                        //}
                        //else
                        //{
                        //    if (nodoFiglio.Fase == "SKIC")
                        //    {
                        //        Nodi.Add(nodoFiglio);
                        //        idPadre = nodoFiglio.ID;
                        //        idNodo++;
                        //    }

                        //}
                    }
                }
            }
        }