Example #1
0
        public static string SalvaMaster(int idMaster, string codice, string descrizione, string areaProduzione, string task, ElementoMaster[] elementiLista, string account)
        {
            SchedeProcessoDS ds = new SchedeProcessoDS();

            using (SchedeProcessoBusiness bScheda = new SchedeProcessoBusiness())
            {
                bScheda.GetSPMaster(ds, idMaster);
                bScheda.FillElementi(ds, idMaster, true);

                SchedeProcessoDS.SPMASTERSRow riga = ds.SPMASTERS.Where(x => x.IDSPMASTER == idMaster).FirstOrDefault();

                if (string.IsNullOrEmpty(codice))
                {
                    int maxIDSPMasyer = bScheda.GetMaxIDSPMaster() + 1;
                    codice = "MA" + maxIDSPMasyer.ToString().PadLeft(ds.SPMASTERS.CODICEColumn.MaxLength - 2, '0');
                }

                if (riga != null)
                {
                    riga.CODICE         = codice.ToUpper();
                    riga.DESCRIZIONE    = descrizione.ToUpper();
                    riga.AREAPRODUZIONE = areaProduzione.ToUpper();
                    riga.TASK           = task.ToUpper();
                    riga.DATAMODIFICA   = DateTime.Now;
                    riga.UTENTEMODIFICA = account;
                }
                else
                {
                    riga                = ds.SPMASTERS.NewSPMASTERSRow();
                    riga.CODICE         = codice.ToUpper();
                    riga.DESCRIZIONE    = descrizione.ToUpper();
                    riga.AREAPRODUZIONE = areaProduzione.ToUpper();
                    riga.TASK           = task.ToUpper();
                    riga.CANCELLATO     = false;
                    riga.DATAMODIFICA   = DateTime.Now;
                    riga.UTENTEMODIFICA = account.ToUpper();
                    ds.SPMASTERS.AddSPMASTERSRow(riga);
                }


                if (idMaster > 0)
                {
                    List <int> listaIdElementi = elementiLista.Where(x => x.IDElemento > 0).Select(x => x.IDElemento).Distinct().ToList();
                    foreach (SchedeProcessoDS.SPELEMENTIRow elemento in ds.SPELEMENTI)
                    {
                        if (!listaIdElementi.Contains(elemento.IDSPELEMENTO))
                        {
                            elemento.CANCELLATO     = true;
                            elemento.DATAMODIFICA   = DateTime.Now;
                            elemento.UTENTEMODIFICA = account;
                        }
                    }
                }

                List <int> idControlliObbligatori = SPElemento.EstraiListaSPElementiObbligatori(1, true).Select(x => x.IdSPControllo).Distinct().ToList();
                int        sequenza = 0;
                foreach (ElementoMaster elemento in elementiLista)
                {
                    if (!idControlliObbligatori.Contains(elemento.IDControllo))
                    {
                        sequenza++;
                        SPElemento.SalvaElemento(elemento.IDElemento, elemento.IDControllo, riga.IDSPMASTER, elemento.Testo, elemento.Tipo, elemento.Obbligatorio, sequenza, account, ds);
                    }
                }
                bScheda.UpdateTableSPMaster(ds);
                bScheda.UpdateTable(ds.SPELEMENTI.TableName, ds);
            }
            return("Master creato correttamente");
        }