private void aggiungiComponenteBC(List <ComponenteBC> Componenti, string codiceDistinta, int IdComponentePadre) { ArticoliDS ds = new ArticoliDS(); using (ArticoliBusiness bArticoli = new ArticoliBusiness()) { bArticoli.GetDistinteBCTestata(ds, codiceDistinta); List <ArticoliDS.DistinteBCTestataRow> testata = ds.DistinteBCTestata.Where(x => x.No_ == codiceDistinta).ToList(); if (testata == null) { return; } bArticoli.GetDistinteBCDettaglio(ds, codiceDistinta); List <ArticoliDS.DistinteBCDettaglioRow> dettagli = ds.DistinteBCDettaglio.Where(x => x.Production_BOM_No_ == codiceDistinta).ToList(); if (dettagli.Count > 0) { foreach (ArticoliDS.DistinteBCDettaglioRow dettaglio in dettagli) { idComponente++; ComponenteBC componente = ComponenteBC.CreaComponente(dettaglio, idComponente, IdComponentePadre); Componenti.Add(componente); aggiungiComponenteBC(Componenti, componente.Anagrafica, idComponente); } } } }
private List <FaseDistinta> estraiListaFasi(string codiceTestata, int idFaseDistinta, int idPadre) { ArticoliDS ds = new ArticoliDS(); List <FaseDistinta> fasi = new List <FaseDistinta>(); using (ArticoliBusiness bArticoli = new ArticoliBusiness()) { bArticoli.GetDistinteBCTestata(ds, codiceTestata); bArticoli.GetDistinteBCDettaglio(ds, codiceTestata); bArticoli.GetCicliBCTestata(ds, codiceTestata); bArticoli.GetCicliBCDettaglio(ds, codiceTestata); ArticoliDS.DistinteBCTestataRow testata = ds.DistinteBCTestata.Where(x => x.No_ == codiceTestata).FirstOrDefault(); List <ArticoliDS.CicliBCDettaglioRow> cicli = ds.CicliBCDettaglio.Where(x => x.Routing_No_ == codiceTestata).ToList(); for (int i = 0; i < cicli.Count; i++) { if (i == 0) { FaseDistinta fase = FaseDistinta.CreaFaseDistinta(testata, cicli[i], idFaseDistinta, idPadre); fasi.Add(fase); idPadre = idFaseDistinta; } else { FaseDistinta fase = FaseDistinta.CreaFaseDistinta(cicli[i], idFaseDistinta, idPadre); fasi.Add(fase); idPadre = idFaseDistinta; } idFaseDistinta++; } List <ArticoliDS.DistinteBCDettaglioRow> componenti = ds.DistinteBCDettaglio.Where(x => x.Production_BOM_No_ == codiceTestata).ToList(); foreach (ArticoliDS.DistinteBCDettaglioRow componente in componenti) { fasi.AddRange(estraiListaFasi(componente.No_, idFaseDistinta, idPadre)); } } return(fasi); }