public string CopiaProcesso(decimal idProcessoStandard, decimal idArticolo, decimal idImpianto, string utente) { string descrizione = "€#@#[]"; using (ArticoloBusiness bArticolo = new ArticoloBusiness()) { bArticolo.FillProcessi(_ds, -1, true); bArticolo.FillFasiProcesso(_ds, -1, true); ArticoloDS.PROCESSIRow processoStandard = _ds.PROCESSI.Where(x => x.IDPROCESSO == idProcessoStandard).FirstOrDefault(); decimal idcolore = ElementiVuoti.ColoreVuoto; if (!processoStandard.IsIDCOLORENull()) { idcolore = processoStandard.IDCOLORE; } if (processoStandard == null) { return("Errore durante la copia. Processo standard non trovato."); } string nuovaDescrizione = processoStandard.DESCRIZIONE; CreaNuovoProcesso(idArticolo, idImpianto, idcolore, descrizione, utente); _ds.PROCESSI.Clear(); bArticolo.FillProcessi(_ds, idArticolo, true); bArticolo.FillFasiProcesso(_ds, idArticolo, true); ArticoloDS.PROCESSIRow processo = _ds.PROCESSI.Where(x => x.DESCRIZIONE == descrizione).FirstOrDefault(); if (processo != null) { processo.DESCRIZIONE = nuovaDescrizione; List <ArticoloDS.FASIPROCESSORow> fasiStandard = _ds.FASIPROCESSO.Where(x => x.IDPROCESSO == idProcessoStandard).ToList(); foreach (ArticoloDS.FASIPROCESSORow faseStandard in fasiStandard) { ArticoloDS.FASIPROCESSORow fase = _ds.FASIPROCESSO.NewFASIPROCESSORow(); fase.CANCELLATO = SiNo.No; fase.CORRENTE = faseStandard.CORRENTE; fase.DURATA = faseStandard.DURATA; fase.DATAMODIFICA = DateTime.Now; fase.IDPROCESSO = processo.IDPROCESSO; fase.IDVASCA = faseStandard.IDVASCA; fase.SEQUENZA = faseStandard.SEQUENZA; fase.SPESSOREMASSIMO = faseStandard.SPESSOREMASSIMO; fase.SPESSORENOMINALE = faseStandard.SPESSORENOMINALE; fase.SPESSOREMINIMO = faseStandard.SPESSOREMINIMO; fase.UTENTEMODIFICA = utente; _ds.FASIPROCESSO.AddFASIPROCESSORow(fase); } bArticolo.UpdateTable(_ds.FASIPROCESSO.TableName, _ds); bArticolo.UpdateTable(_ds.PROCESSI.TableName, _ds); return("Salvataggio riuscito"); } return("Errore durante la copia. Impossibile creare un nuovo processo."); } }
public ProcessoModel CreaProcessoModel(decimal idProcesso, List <TelaioModel> telai) { ArticoloDS.PROCESSIRow processo = _ds.PROCESSI.Where(x => x.IDPROCESSO == idProcesso).FirstOrDefault(); if (processo == null) { using (ArticoloBusiness bArticolo = new ArticoloBusiness()) { bArticolo.GetProcesso(_ds, idProcesso, false); bArticolo.GetFasiProcesso(_ds, idProcesso, false); } processo = _ds.PROCESSI.Where(x => x.IDPROCESSO == idProcesso).FirstOrDefault(); if (processo == null) { return(null); } } ProcessoModel processoModel = new ProcessoModel(); processoModel.Descrizione = processo.DESCRIZIONE; processoModel.IdArticolo = processo.IDARTICOLO; processoModel.IdProcesso = processo.IDPROCESSO; TelaioModel telaio = telai.Where(x => x.IdTelaio == ElementiVuoti.TelaioVuoto).FirstOrDefault(); if (!processo.IsIDTELAIONull()) { telaio = telai.Where(x => x.IdTelaio == processo.IDTELAIO).FirstOrDefault(); } processoModel.Telaio = telaio; processoModel.Standard = processo.IsSTANDARDNull() ? false : processo.STANDARD == SiNo.Si; if (!processo.IsIDCOLORENull()) { Anagrafica a = new Anagrafica(); processoModel.Colore = a.EstraiColoreModel(processo.IDCOLORE); } else { processoModel.Colore = new ColoreModel(); } List <ImpiantoModel> impianti = _galvanica.CreaListaImpiantoModel(); processoModel.Impianto = impianti.Where(x => x.IdImpianto == processo.IDIMPIANTO).FirstOrDefault(); List <VascaModel> vasche = _galvanica.CreaListaVascaModel(); processoModel.Fasi = new List <FaseProcessoModel>(); foreach (ArticoloDS.FASIPROCESSORow fase in _ds.FASIPROCESSO.Where(x => x.IDPROCESSO == idProcesso)) { FaseProcessoModel faseProcessoModel = new FaseProcessoModel() { Corrente = fase.CORRENTE, Durata = fase.DURATA, IdFaseProcesso = fase.IDFASEPROCESSO, IdProcesso = fase.IDPROCESSO, Sequenza = fase.SEQUENZA, Vasca = vasche.Where(x => x.IdVasca == fase.IDVASCA).FirstOrDefault(), SpessoreMassimo = fase.IsSPESSOREMASSIMONull() ? 0 : fase.SPESSOREMASSIMO, SpessoreMinimo = fase.IsSPESSOREMINIMONull() ? 0 : fase.SPESSOREMINIMO, SpessoreNominale = fase.IsSPESSORENOMINALENull() ? 0 : fase.SPESSORENOMINALE }; processoModel.Fasi.Add(faseProcessoModel); } return(processoModel); }