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); } } }
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++; // } //} } } } }