private static Componente CreaComponente(ArticoliDS.COMPONENTIRow riga, ArticoliDS ds)
        {
            if (riga == null)
            {
                return(null);
            }
            Componente componente = new Componente();

            componente.IdDiba           = riga.IDDIBA;
            componente.IdComponente     = riga.IDCOMPONENTE;
            componente.IdPadre          = riga.IsIDPADRENull() ? 0 : riga.IDPADRE;
            componente.Anagrafica       = riga.IsANAGRAFICANull() ? string.Empty : riga.ANAGRAFICA;
            componente.Descrizione      = riga.DESCRIZIONE;
            componente.CollegamentoDiBa = riga.IsCOLLEGAMENTODIBANull() ? string.Empty : riga.COLLEGAMENTODIBA;
            componente.UMQuantita       = riga.IsUMQUANTITANull() ? string.Empty : riga.UMQUANTITA;
            componente.Quantita         = riga.IsUMQUANTITANull() ? 0 : riga.QUANTITA;

            componente.Errore    = string.Empty;
            componente.FasiCiclo = new List <FaseCiclo>();

            componente.Cancellato     = riga.CANCELLATO;
            componente.DataModifica   = riga.DATAMODIFICA;
            componente.UtenteModifica = riga.UTENTEMODIFICA;

            componente.FasiCiclo = FaseCiclo.EstraiListaFaseCiclo(componente, ds);

            return(componente);
        }
        public static Componente CreaComponente(ComponenteBC componenteBC, int idDiba, int idComponente, int idPadre, string utente)
        {
            if (componenteBC == null)
            {
                return(null);
            }
            Componente componente = new Componente();

            componente.IdDiba           = idDiba;
            componente.IdComponente     = idComponente;
            componente.IdPadre          = idPadre;
            componente.Anagrafica       = componenteBC.Anagrafica;
            componente.Descrizione      = componenteBC.Descrizione;
            componente.CollegamentoDiBa = componenteBC.CollegamentoDiBa;
            componente.UMQuantita       = componenteBC.UMQuantita;
            componente.Quantita         = (double)componenteBC.Quantita;

            componente.Errore    = string.Empty;
            componente.FasiCiclo = new List <FaseCiclo>();

            componente.Cancellato     = false;
            componente.DataModifica   = DateTime.Now;
            componente.UtenteModifica = utente;

            componente.FasiCiclo = FaseCiclo.EstraiListaFaseCiclo(componenteBC, componente);

            return(componente);
        }
        private static FaseCiclo CreaFaseCiclo(FaseCicloBC faseCicloBC, Componente componente, int idFaseCiclo)
        {
            if (faseCicloBC == null)
            {
                return(null);
            }
            FaseCiclo faseCiclo = new FaseCiclo();

            faseCiclo.IdDiba            = componente.IdDiba;
            faseCiclo.IdFaseCiclo       = idFaseCiclo;
            faseCiclo.IdComponente      = componente.IdComponente;
            faseCiclo.Descrizione       = faseCicloBC.Descrizione;
            faseCiclo.Operazione        = Int32.Parse(faseCicloBC.Operazione);
            faseCiclo.Anagrafica        = string.Empty;
            faseCiclo.CollegamentoDiBa  = string.Empty;
            faseCiclo.Quantita          = 0;
            faseCiclo.UMQuantita        = string.Empty;
            faseCiclo.AreaProduzione    = faseCicloBC.AreaProduzione;
            faseCiclo.Task              = faseCicloBC.Task;
            faseCiclo.SchedaProcesso    = faseCicloBC.SchedaProcesso;
            faseCiclo.CollegamentoCiclo = faseCicloBC.CollegamentoCiclo;
            faseCiclo.PezziPeriodo      = (double)faseCicloBC.PezziPeriodo;
            faseCiclo.Periodo           = (double)faseCicloBC.Periodo;
            faseCiclo.Setup             = (double)faseCicloBC.Setup;
            faseCiclo.Attesa            = (double)faseCicloBC.Attesa;
            faseCiclo.Movimentazione    = (double)faseCicloBC.Movimentazione;
            faseCiclo.Errore            = string.Empty;
            faseCiclo.Cancellato        = false;
            faseCiclo.DataModifica      = DateTime.Now;
            faseCiclo.UtenteModifica    = componente.UtenteModifica;
            faseCiclo.Nota              = faseCicloBC.Nota;
            return(faseCiclo);
        }
        private static FaseCiclo CreaFaseCiclo(ArticoliDS.FASICICLORow riga)
        {
            if (riga == null)
            {
                return(null);
            }
            FaseCiclo faseCiclo = new FaseCiclo();

            faseCiclo.IdDiba            = riga.IDDIBA;
            faseCiclo.IdFaseCiclo       = riga.IDFASECICLO;
            faseCiclo.IdComponente      = riga.IDCOMPONENTE;
            faseCiclo.Descrizione       = riga.IsDESCRIZIONENull() ? string.Empty : riga.DESCRIZIONE;
            faseCiclo.Operazione        = riga.OPERAZIONE;
            faseCiclo.Anagrafica        = riga.IsANAGRAFICANull() ? string.Empty : riga.ANAGRAFICA;
            faseCiclo.CollegamentoDiBa  = riga.IsCOLLEGAMENTODIBANull() ? string.Empty : riga.COLLEGAMENTODIBA;
            faseCiclo.Quantita          = riga.IsQUANTITANull() ? 0 : riga.QUANTITA;
            faseCiclo.UMQuantita        = riga.IsUMQUANTITANull() ? string.Empty : riga.UMQUANTITA;
            faseCiclo.AreaProduzione    = riga.IsAREAPRODUZIONENull() ? string.Empty : riga.AREAPRODUZIONE;
            faseCiclo.Task              = riga.IsTASKNull() ? string.Empty : riga.TASK;
            faseCiclo.SchedaProcesso    = riga.IsSCHEDAPROCESSONull() ? string.Empty : riga.SCHEDAPROCESSO;
            faseCiclo.CollegamentoCiclo = riga.IsCOLLEGAMENTOCICLONull() ? string.Empty : riga.COLLEGAMENTOCICLO;
            faseCiclo.PezziPeriodo      = riga.IsPEZZIPERIODONull() ? 0 : riga.PEZZIPERIODO;
            faseCiclo.Periodo           = riga.IsPERIODONull() ? 0 : riga.PERIODO;
            faseCiclo.Setup             = riga.IsSETUPNull() ? 0 : riga.SETUP;
            faseCiclo.Attesa            = riga.IsATTESANull() ? 0 : riga.ATTESA;
            faseCiclo.Movimentazione    = riga.IsMOVIMENTAZIONENull() ? 0 : riga.MOVIMENTAZIONE;
            faseCiclo.Errore            = string.Empty;
            faseCiclo.Cancellato        = riga.CANCELLATO;
            faseCiclo.DataModifica      = riga.DATAMODIFICA;
            faseCiclo.UtenteModifica    = riga.UTENTEMODIFICA;
            faseCiclo.Nota              = riga.IsNOTANull() ? string.Empty : riga.NOTA;
            return(faseCiclo);
        }
        public FaseCiclo Copia(int nuovaIdFaseCiclo, int nuovoIdComponente, int idDiba)
        {
            FaseCiclo faseCiclo = new FaseCiclo();

            faseCiclo.IdDiba            = idDiba;
            faseCiclo.IdFaseCiclo       = nuovaIdFaseCiclo;
            faseCiclo.IdComponente      = nuovoIdComponente;
            faseCiclo.Descrizione       = Descrizione;
            faseCiclo.Anagrafica        = Anagrafica;
            faseCiclo.CollegamentoDiBa  = CollegamentoDiBa;
            faseCiclo.Quantita          = Quantita;
            faseCiclo.UMQuantita        = UMQuantita;
            faseCiclo.Operazione        = Operazione;
            faseCiclo.AreaProduzione    = AreaProduzione;
            faseCiclo.Task              = Task;
            faseCiclo.SchedaProcesso    = SchedaProcesso;
            faseCiclo.CollegamentoCiclo = CollegamentoCiclo;
            faseCiclo.PezziPeriodo      = PezziPeriodo;
            faseCiclo.Periodo           = Periodo;
            faseCiclo.Setup             = Setup;
            faseCiclo.Attesa            = Attesa;
            faseCiclo.Movimentazione    = Movimentazione;
            faseCiclo.Errore            = string.Empty;
            faseCiclo.Cancellato        = Cancellato;
            faseCiclo.DataModifica      = DataModifica;
            faseCiclo.UtenteModifica    = UtenteModifica;
            faseCiclo.Nota              = Nota;
            return(faseCiclo);
        }
        public static List <FaseCiclo> EstraiListaFaseCiclo(Componente componente, ArticoliDS ds)
        {
            List <FaseCiclo> fasiCiclo = new List <FaseCiclo>();

            foreach (ArticoliDS.FASICICLORow riga in ds.FASICICLO.Where(x => x.IDCOMPONENTE == componente.IdComponente).OrderByDescending(x => x.OPERAZIONE))
            {
                FaseCiclo faseCiclo = CreaFaseCiclo(riga);
                fasiCiclo.Add(faseCiclo);
            }
            return(fasiCiclo);
        }
        public static List <FaseCiclo> EstraiListaFaseCiclo(int idDiba)
        {
            ArticoliDS ds = new ArticoliDS();

            using (ArticoliBusiness bArticolo = new ArticoliBusiness())
            {
                bArticolo.GetFASICICLO(ds, idDiba, true);
            }
            List <FaseCiclo> fasiCiclo = new List <FaseCiclo>();

            foreach (ArticoliDS.FASICICLORow riga in ds.FASICICLO)
            {
                FaseCiclo faseCiclo = CreaFaseCiclo(riga);
                fasiCiclo.Add(faseCiclo);
            }
            return(fasiCiclo);
        }
        public static List <FaseCiclo> EstraiListaFaseCiclo(ComponenteBC componenteBC, Componente componente)
        {
            List <FaseCiclo> fasiCiclo = new List <FaseCiclo>();
            int idFaseCiclo            = componente.IdComponente * 1000;

            if (idFaseCiclo > 0)
            {
                idFaseCiclo = idFaseCiclo * -1;
            }

            foreach (FaseCicloBC faseBC in componenteBC.FasiCiclo)
            {
                idFaseCiclo--;
                FaseCiclo faseCiclo = CreaFaseCiclo(faseBC, componente, idFaseCiclo);
                fasiCiclo.Add(faseCiclo);
            }
            return(fasiCiclo);
        }
        public static void SalvaListaComponenti(List <Componente> componenti, string utente)
        {
            if (componenti.Count() == 0)
            {
                return;
            }

            int        idDiba = componenti[0].IdDiba;
            ArticoliDS ds     = new ArticoliDS();

            using (ArticoliBusiness bArticolo = new ArticoliBusiness())
            {
                bArticolo.GetCOMPONENTI(ds, idDiba, true);
                bArticolo.GetFASICICLO(ds, idDiba, true);

                List <int> idComponentiAttivi       = componenti.Select(x => x.IdComponente).ToList();
                List <int> idComponentiDaCancellare = ds.COMPONENTI.Where(x => !idComponentiAttivi.Contains(x.IDCOMPONENTE)).Select(x => x.IDCOMPONENTE).ToList();
                foreach (int idComponenteDaCancellare in idComponentiDaCancellare)
                {
                    ArticoliDS.COMPONENTIRow componenteDaCancellare = ds.COMPONENTI.Where(x => x.RowState != System.Data.DataRowState.Deleted && x.IDCOMPONENTE == idComponenteDaCancellare).FirstOrDefault();
                    componenteDaCancellare.CANCELLATO     = true;
                    componenteDaCancellare.UTENTEMODIFICA = utente;
                    componenteDaCancellare.DATAMODIFICA   = DateTime.Now;
                }

                //Componente radice = componenti.Where(x => x.IdPadre == 0).FirstOrDefault();
                //if (radice == null) return;

                //salvaComponentiRicorsivo(radice, ds, componenti, utente);

                foreach (Componente componente in componenti.OrderByDescending(x => x.IdPadre))
                {
                    //    preparaSalvataggio(componente, ds, utente);

                    ArticoliDS.COMPONENTIRow rigaComponente = ds.COMPONENTI.Where(x => x.RowState != System.Data.DataRowState.Deleted && x.IDCOMPONENTE == componente.IdComponente).FirstOrDefault();

                    if (rigaComponente == null || componente.IdComponente < 0)
                    {
                        rigaComponente = ds.COMPONENTI.NewCOMPONENTIRow();
                        rigaComponente.IDCOMPONENTE = componente.IdComponente;
                        if (componente.IdPadre != 0)
                        {
                            rigaComponente.IDPADRE = componente.IdPadre;
                        }
                        rigaComponente.IDDIBA           = componente.IdDiba;
                        rigaComponente.DESCRIZIONE      = componente.Descrizione.ToUpper();
                        rigaComponente.ANAGRAFICA       = (string.IsNullOrEmpty(componente.Anagrafica)) ? string.Empty : componente.Anagrafica.ToUpper();
                        rigaComponente.COLLEGAMENTODIBA = (string.IsNullOrEmpty(componente.CollegamentoDiBa)) ? string.Empty : componente.CollegamentoDiBa.ToUpper();
                        rigaComponente.QUANTITA         = componente.Quantita;
                        rigaComponente.UMQUANTITA       = (string.IsNullOrEmpty(componente.UMQuantita)) ? string.Empty : componente.UMQuantita.ToUpper();
                        rigaComponente.CANCELLATO       = false;
                        rigaComponente.DATAMODIFICA     = DateTime.Now;
                        rigaComponente.UTENTEMODIFICA   = utente;

                        ds.COMPONENTI.AddCOMPONENTIRow(rigaComponente);
                    }
                    else
                    {
                        if (componente.IdPadre != 0)
                        {
                            rigaComponente.IDPADRE = componente.IdPadre;
                        }
                        rigaComponente.DESCRIZIONE      = componente.Descrizione.ToUpper();
                        rigaComponente.ANAGRAFICA       = (string.IsNullOrEmpty(componente.Anagrafica)) ? string.Empty : componente.Anagrafica.ToUpper();
                        rigaComponente.COLLEGAMENTODIBA = (string.IsNullOrEmpty(componente.CollegamentoDiBa)) ? string.Empty : componente.CollegamentoDiBa.ToUpper();
                        rigaComponente.QUANTITA         = componente.Quantita;
                        rigaComponente.UMQUANTITA       = (string.IsNullOrEmpty(componente.UMQuantita)) ? string.Empty : componente.UMQuantita.ToUpper();
                        rigaComponente.CANCELLATO       = false;
                        rigaComponente.DATAMODIFICA     = DateTime.Now;
                        rigaComponente.UTENTEMODIFICA   = utente;
                    }
                    FaseCiclo.SalvaListaFaseCiclo(componente.FasiCiclo, utente, componente.IdDiba, componente.IdComponente, ds);
                }
                DataRow[] root = ds.COMPONENTI.Where(x => x.IsIDPADRENull()).ToArray();
                //             DataRow[] altriNodi = ds.COMPONENTI.Where(x => !x.IsIDPADRENull()).OrderByDescending(x => x.IDPADRE).ToArray();

                salvaComponentiRicorsivo(root, ds, bArticolo);
                //bArticolo.UpdateComponentiTable(ds.COMPONENTI.TableName, root);
                //bArticolo.UpdateComponentiTable(ds.COMPONENTI.TableName, altriNodi);

                bArticolo.UpdateTable(ds.FASICICLO.TableName, ds);
            }
        }
        //public bool AggiungiFase(FaseDistinta faseDistinta, int operazione, out string errori)
        //{
        //    faseDistinta.Errore = string.Empty;
        //    errori = string.Empty;
        //    bool esito = true;
        //    StringBuilder sb = new StringBuilder();
        //    if (faseDistinta != null && string.IsNullOrEmpty(faseDistinta.Anagrafica))
        //    {
        //        ExpFaseCicloBusinessCentral f = new ExpFaseCicloBusinessCentral(Codice);
        //        f.Operazione = operazione;
        //        f.AreaProduzione = faseDistinta.AreaProduzione;
        //        if (string.IsNullOrEmpty(f.AreaProduzione))
        //        {
        //            sb.AppendLine(string.Format("Anagrafica {1} - Fase {0} Area di produzione nulla", faseDistinta.IdFaseDiba, faseDistinta.Anagrafica));
        //            faseDistinta.Errore = "Area produzione non valorizzata ";
        //            esito = false;
        //        }
        //        f.TempoLavorazione = faseDistinta.Periodo;
        //        if (f.TempoLavorazione <= 0)
        //        {
        //            sb.AppendLine(string.Format("Anagrafica {1} - Fase {0} tempo lavorazione nullo", faseDistinta.IdFaseDiba, faseDistinta.Anagrafica));
        //            faseDistinta.Errore += " periodo non valorizzato ";
        //            esito = false;
        //        }

        //        f.Collegamento = faseDistinta.CollegamentoCiclo;
        //        f.DimensioneLotto = faseDistinta.PezziOrari;
        //        f.Task = faseDistinta.Task;
        //        if (string.IsNullOrEmpty(f.Task))
        //        {
        //            sb.AppendLine(string.Format("Anagrafica {1} - Fase {0} task non valorizzato", faseDistinta.IdFaseDiba, faseDistinta.Anagrafica));
        //            faseDistinta.Errore += " task non valorizzato ";
        //            esito = false;
        //        }
        //        f.Commenti = new List<string>();
        //        if (esito)
        //            Fasi.Add(f);
        //        errori = sb.ToString();
        //    }
        //    else
        //        return false;
        //    return esito;
        //}
        //public bool AggiungiFase(FaseCiclo faseCiclo, int operazione, out string errori)
        //{
        //    faseCiclo.Errore = string.Empty;
        //    errori = string.Empty;
        //    bool esito = true;
        //    StringBuilder sb = new StringBuilder();
        //    if (faseCiclo != null)//&& string.IsNullOrEmpty(faseCiclo.Anagrafica))
        //    {
        //        ExpFaseCicloBusinessCentral f = new ExpFaseCicloBusinessCentral(Codice);
        //        f.Operazione = operazione;
        //        operazione += 10;
        //        f.AreaProduzione = faseCiclo.AreaProduzione;
        //        if (string.IsNullOrEmpty(f.AreaProduzione))
        //        {
        //            sb.AppendLine(string.Format("ID Componente {1} - Fase {0} Area di produzione nulla", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
        //            faseCiclo.Errore = "Area produzione non valorizzata ";
        //            esito = false;
        //        }
        //        f.TempoLavorazione = faseCiclo.Periodo;
        //        if (f.TempoLavorazione <= 0)
        //        {
        //            sb.AppendLine(string.Format("ID Componente {1} - Fase {0} tempo lavorazione nullo", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
        //            faseCiclo.Errore += " periodo non valorizzato ";
        //            esito = false;
        //        }

        //        f.Collegamento = faseCiclo.CollegamentoCiclo;
        //        f.DimensioneLotto = faseCiclo.PezziPeriodo;
        //        f.Task = faseCiclo.Task;
        //        if (string.IsNullOrEmpty(f.Task))
        //        {
        //            sb.AppendLine(string.Format("ID Componente {1} - Fase {0} task non valorizzato", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
        //            faseCiclo.Errore += " task non valorizzato ";
        //            esito = false;
        //        }
        //        f.Commenti = new List<string>();
        //        if (esito)
        //            Fasi.Add(f);
        //        errori = sb.ToString();
        //    }
        //    else
        //        return false;
        //    return esito;
        //}
        public bool AggiungiFase(FaseCiclo faseCiclo, out string errori)
        {
            faseCiclo.Errore = string.Empty;
            errori           = string.Empty;
            bool          esito = true;
            StringBuilder sb    = new StringBuilder();

            if (faseCiclo != null)//&& string.IsNullOrEmpty(faseCiclo.Anagrafica))
            {
                ExpFaseCicloBusinessCentral f = new ExpFaseCicloBusinessCentral(Codice);
                f.Operazione     = faseCiclo.Operazione;
                f.Descrizione    = faseCiclo.Descrizione;
                f.AreaProduzione = faseCiclo.AreaProduzione;
                f.SchedaProcesso = faseCiclo.SchedaProcesso;
                if (string.IsNullOrEmpty(faseCiclo.Anagrafica))
                {
                    if (string.IsNullOrEmpty(faseCiclo.AreaProduzione))
                    {
                        sb.AppendLine(string.Format("ID Componente {1} - Fase {0} Area di produzione nulla", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
                        faseCiclo.Errore = "Area produzione non valorizzata ";
                        esito            = false;
                    }
                    if (string.IsNullOrEmpty(faseCiclo.Task))
                    {
                        sb.AppendLine(string.Format("ID Componente {1} - Fase {0} task non valorizzato", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
                        faseCiclo.Errore += " task non valorizzato ";
                        esito             = false;
                    }
                }

                //                f.TempoLavorazione = (faseCiclo.Periodo == 0) ? 0 : faseCiclo.PezziPeriodo / faseCiclo.Periodo;
                f.TempoLavorazione = faseCiclo.Periodo;
                if (f.TempoLavorazione <= 0 && !string.IsNullOrEmpty(faseCiclo.AreaProduzione) && !string.IsNullOrEmpty(faseCiclo.Task))
                {
                    sb.AppendLine(string.Format("ID Componente {1} - Fase {0} tempo lavorazione nullo", faseCiclo.IdFaseCiclo, faseCiclo.IdComponente));
                    faseCiclo.Errore += " periodo non valorizzato ";
                    esito             = false;
                }

                f.Collegamento    = faseCiclo.CollegamentoCiclo;
                f.DimensioneLotto = faseCiclo.PezziPeriodo;
                f.Task            = faseCiclo.Task;
                f.Commenti        = new List <string>();
                string commento = string.Empty;
                if (!string.IsNullOrEmpty(faseCiclo.SchedaProcesso))
                {
                    commento = string.Format("{0} {1} ", FaseCiclo.EtichettaSchedaProcesso, faseCiclo.SchedaProcesso);
                }
                commento = commento + " " + faseCiclo.Nota;

                if (!string.IsNullOrEmpty(commento))
                {
                    f.Commenti = SeparaStringa(commento.Trim(), 80);
                }
                if (esito)
                {
                    Fasi.Add(f);
                }
                errori = sb.ToString();
            }
            else
            {
                return(false);
            }
            return(esito);
        }
        private static void SalvaFaseCiclo(FaseCiclo faseCiclo, string utente, ArticoliDS ds)
        {
            ArticoliDS.FASICICLORow rigaFaseCiclo = ds.FASICICLO.Where(x => x.RowState != System.Data.DataRowState.Deleted && x.IDFASECICLO == faseCiclo.IdFaseCiclo).FirstOrDefault();
            if (faseCiclo.IdFaseCiclo < 0 && rigaFaseCiclo != null)
            {
                while (rigaFaseCiclo != null)
                {
                    faseCiclo.IdFaseCiclo--;
                    rigaFaseCiclo = ds.FASICICLO.Where(x => x.IDFASECICLO == faseCiclo.IdFaseCiclo).FirstOrDefault();
                }
            }
            if (rigaFaseCiclo == null)
            {
                if (faseCiclo.IdComponente == 0 && faseCiclo.IdFaseCiclo == 0)
                {
                    return;
                }
                rigaFaseCiclo              = ds.FASICICLO.NewFASICICLORow();
                rigaFaseCiclo.IDFASECICLO  = faseCiclo.IdFaseCiclo;
                rigaFaseCiclo.IDCOMPONENTE = faseCiclo.IdComponente;
                rigaFaseCiclo.IDDIBA       = faseCiclo.IdDiba;
                if (!string.IsNullOrEmpty(faseCiclo.Anagrafica))
                {
                    rigaFaseCiclo.ANAGRAFICA = string.IsNullOrEmpty(faseCiclo.Anagrafica) ? string.Empty : faseCiclo.Anagrafica.ToUpper();
                }
                rigaFaseCiclo.COLLEGAMENTODIBA  = string.IsNullOrEmpty(faseCiclo.CollegamentoDiBa) ? string.Empty : faseCiclo.CollegamentoDiBa.ToUpper();
                rigaFaseCiclo.QUANTITA          = faseCiclo.Quantita;
                rigaFaseCiclo.UMQUANTITA        = string.IsNullOrEmpty(faseCiclo.UMQuantita) ? string.Empty : faseCiclo.UMQuantita.ToUpper();
                rigaFaseCiclo.OPERAZIONE        = faseCiclo.Operazione;
                rigaFaseCiclo.DESCRIZIONE       = string.IsNullOrEmpty(faseCiclo.Descrizione) ? string.Empty : faseCiclo.Descrizione.ToUpper();
                rigaFaseCiclo.AREAPRODUZIONE    = string.IsNullOrEmpty(faseCiclo.AreaProduzione) ? string.Empty : faseCiclo.AreaProduzione.ToUpper();
                rigaFaseCiclo.TASK              = string.IsNullOrEmpty(faseCiclo.Task) ? string.Empty : faseCiclo.Task.ToUpper();
                rigaFaseCiclo.SCHEDAPROCESSO    = string.IsNullOrEmpty(faseCiclo.SchedaProcesso) ? string.Empty : faseCiclo.SchedaProcesso.ToUpper();
                rigaFaseCiclo.COLLEGAMENTOCICLO = string.IsNullOrEmpty(faseCiclo.CollegamentoCiclo) ? string.Empty : faseCiclo.CollegamentoCiclo.ToUpper();
                rigaFaseCiclo.PEZZIPERIODO      = faseCiclo.PezziPeriodo;
                rigaFaseCiclo.PERIODO           = faseCiclo.Periodo;
                rigaFaseCiclo.SETUP             = faseCiclo.Setup;
                rigaFaseCiclo.ATTESA            = faseCiclo.Attesa;
                rigaFaseCiclo.MOVIMENTAZIONE    = faseCiclo.Movimentazione;
                rigaFaseCiclo.CANCELLATO        = false;
                rigaFaseCiclo.DATAMODIFICA      = DateTime.Now;
                rigaFaseCiclo.UTENTEMODIFICA    = utente;
                rigaFaseCiclo.NOTA              = string.IsNullOrEmpty(faseCiclo.Nota) ? string.Empty : faseCiclo.Nota.ToUpper();

                ds.FASICICLO.AddFASICICLORow(rigaFaseCiclo);
            }
            else
            {
                rigaFaseCiclo.ANAGRAFICA        = string.IsNullOrEmpty(faseCiclo.Anagrafica) ? string.Empty : faseCiclo.Anagrafica.ToUpper();
                rigaFaseCiclo.COLLEGAMENTODIBA  = string.IsNullOrEmpty(faseCiclo.CollegamentoDiBa) ? string.Empty : faseCiclo.CollegamentoDiBa.ToUpper();
                rigaFaseCiclo.QUANTITA          = faseCiclo.Quantita;
                rigaFaseCiclo.UMQUANTITA        = string.IsNullOrEmpty(faseCiclo.UMQuantita) ? string.Empty : faseCiclo.UMQuantita.ToUpper();
                rigaFaseCiclo.OPERAZIONE        = faseCiclo.Operazione;
                rigaFaseCiclo.DESCRIZIONE       = string.IsNullOrEmpty(faseCiclo.Descrizione) ? string.Empty : faseCiclo.Descrizione.ToUpper();
                rigaFaseCiclo.AREAPRODUZIONE    = string.IsNullOrEmpty(faseCiclo.AreaProduzione) ? string.Empty : faseCiclo.AreaProduzione.ToUpper();
                rigaFaseCiclo.TASK              = string.IsNullOrEmpty(faseCiclo.Task) ? string.Empty : faseCiclo.Task.ToUpper();
                rigaFaseCiclo.SCHEDAPROCESSO    = string.IsNullOrEmpty(faseCiclo.SchedaProcesso) ? string.Empty : faseCiclo.SchedaProcesso.ToUpper();
                rigaFaseCiclo.COLLEGAMENTOCICLO = string.IsNullOrEmpty(faseCiclo.CollegamentoCiclo) ? string.Empty : faseCiclo.CollegamentoCiclo.ToUpper();
                rigaFaseCiclo.PEZZIPERIODO      = faseCiclo.PezziPeriodo;
                rigaFaseCiclo.PERIODO           = faseCiclo.Periodo;
                rigaFaseCiclo.SETUP             = faseCiclo.Setup;
                rigaFaseCiclo.ATTESA            = faseCiclo.Attesa;
                rigaFaseCiclo.MOVIMENTAZIONE    = faseCiclo.Movimentazione;
                rigaFaseCiclo.CANCELLATO        = false;
                rigaFaseCiclo.DATAMODIFICA      = DateTime.Now;
                rigaFaseCiclo.UTENTEMODIFICA    = utente;
                rigaFaseCiclo.NOTA              = string.IsNullOrEmpty(faseCiclo.Nota) ? string.Empty : faseCiclo.Nota.ToUpper();
            }
        }