private void buSalvaDimensioniSpessori_Click(object sender, EventArgs e)
        {
            string tableName1 = "ARTICOLI_DIMENSIONI";
            string tableName2 = "ARTICOLI_SPESSORI";

            //if (_dsServizio.Tables[tableName1].Rows.Count == 0 && _dsServizio.Tables[tableName2].Rows.Count == 0)
            //    return;



            try
            {
                //DIMENSIONI
                foreach (DataRow riga in _dsServizio.Tables[tableName1].Rows)
                {
                    if (riga["IDDIMENSIONE"] != DBNull.Value)
                    {
                        decimal IDDIMENSIONE = (decimal)riga["IDDIMENSIONE"];

                        // && x.RIFERIMENTO.Trim() == RIFERIMENTO
                        CDCDS.CDC_ARTICOLI_DIMENSIONIRow articolo_dimensioni = _DS.CDC_ARTICOLI_DIMENSIONI.Where(x => x.IDDIMENSIONE == IDDIMENSIONE).FirstOrDefault();
                        if (articolo_dimensioni == null)
                        {
                            articolo_dimensioni = _DS.CDC_ARTICOLI_DIMENSIONI.NewCDC_ARTICOLI_DIMENSIONIRow();

                            articolo_dimensioni.IDARTICOLO = ((decimal)riga["IDARTICOLO"]);

                            articolo_dimensioni.RIFERIMENTO = ((string)riga["RIFERIMENTO"]).ToUpper().Trim();
                            articolo_dimensioni.GRANDEZZA   = ((string)riga["GRANDEZZA"]).ToUpper().Trim();
                            articolo_dimensioni.RICHIESTO   = (double)riga["RICHIESTO"];
                            articolo_dimensioni.TOLLERANZA  = (double)riga["TOLLERANZA"];
                            articolo_dimensioni.MINIMO      = (double)riga["MINIMO"];
                            articolo_dimensioni.MASSIMO     = (double)riga["MASSIMO"];
                            articolo_dimensioni.TAMPONE     = ConvertiInStringa(riga["TAMPONE"]).ToUpper().Trim();
                            articolo_dimensioni.CONTAMPONE  = ConvertiBoolInStringa(riga["CONTAMPONE"]); // ((string)riga["CONTAMPONE"]).ToUpper().Trim();

                            articolo_dimensioni.DATAINSERIMENTO = DateTime.Now;
                            articolo_dimensioni.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                            _DS.CDC_ARTICOLI_DIMENSIONI.AddCDC_ARTICOLI_DIMENSIONIRow(articolo_dimensioni);
                        }
                        else
                        {
                            articolo_dimensioni.IDARTICOLO = ((decimal)riga["IDARTICOLO"]);

                            articolo_dimensioni.RIFERIMENTO     = ((string)riga["RIFERIMENTO"]).ToUpper().Trim();
                            articolo_dimensioni.GRANDEZZA       = ((string)riga["GRANDEZZA"]).ToUpper().Trim();
                            articolo_dimensioni.RICHIESTO       = (double)riga["RICHIESTO"];
                            articolo_dimensioni.TOLLERANZA      = (double)riga["TOLLERANZA"];
                            articolo_dimensioni.MINIMO          = (double)riga["MINIMO"];
                            articolo_dimensioni.MASSIMO         = (double)riga["MASSIMO"];
                            articolo_dimensioni.TAMPONE         = ConvertiInStringa(riga["TAMPONE"]).ToUpper().Trim();
                            articolo_dimensioni.CONTAMPONE      = ConvertiBoolInStringa(riga["CONTAMPONE"]); //((string)riga["CONTAMPONE"]).ToUpper().Trim();
                            articolo_dimensioni.DATAINSERIMENTO = DateTime.Now;
                            articolo_dimensioni.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        }
                    }
                    else
                    {
                        CDCDS.CDC_ARTICOLI_DIMENSIONIRow articolo_dimensioni = _DS.CDC_ARTICOLI_DIMENSIONI.NewCDC_ARTICOLI_DIMENSIONIRow();

                        articolo_dimensioni.IDARTICOLO = selIDARTICOLO;

                        articolo_dimensioni.RIFERIMENTO     = ((string)riga["RIFERIMENTO"]).ToUpper().Trim();
                        articolo_dimensioni.GRANDEZZA       = ((string)riga["GRANDEZZA"]).ToUpper().Trim();
                        articolo_dimensioni.RICHIESTO       = (double)riga["RICHIESTO"];
                        articolo_dimensioni.TOLLERANZA      = (double)riga["TOLLERANZA"];
                        articolo_dimensioni.MINIMO          = (double)riga["MINIMO"];
                        articolo_dimensioni.MASSIMO         = (double)riga["MASSIMO"];
                        articolo_dimensioni.TAMPONE         = ConvertiInStringa(riga["TAMPONE"]).ToUpper().Trim();
                        articolo_dimensioni.CONTAMPONE      = ConvertiBoolInStringa(riga["CONTAMPONE"]); //((string)riga["CONTAMPONE"]).ToUpper().Trim();
                        articolo_dimensioni.DATAINSERIMENTO = DateTime.Now;
                        articolo_dimensioni.UTENTE          = Contesto.Utente.FULLNAMEUSER;

                        _DS.CDC_ARTICOLI_DIMENSIONI.AddCDC_ARTICOLI_DIMENSIONIRow(articolo_dimensioni);
                    }
                }

                //SPESSORI
                foreach (DataRow riga in _dsServizio.Tables[tableName2].Rows)
                {
                    if (riga["IDSPESSORE"] != DBNull.Value)
                    {
                        decimal IDSPESSORE = (decimal)riga["IDSPESSORE"];

                        // && x.RIFERIMENTO.Trim() == RIFERIMENTO
                        CDCDS.CDC_ARTICOLI_SPESSORIRow articolo_spessori = _DS.CDC_ARTICOLI_SPESSORI.Where(x => x.IDSPESSORE == IDSPESSORE).FirstOrDefault();
                        if (articolo_spessori == null)
                        {
                            articolo_spessori = _DS.CDC_ARTICOLI_SPESSORI.NewCDC_ARTICOLI_SPESSORIRow();

                            articolo_spessori.IDARTICOLO = ((decimal)riga["IDARTICOLO"]);

                            articolo_spessori.ETICHETTA = ((string)riga["ETICHETTA"]).ToUpper().Trim();
                            articolo_spessori.MINIMO    = (double)riga["MINIMO"];
                            articolo_spessori.MASSIMO   = (double)riga["MASSIMO"];
                            articolo_spessori.NOMINALE  = (double)riga["NOMINALE"];

                            articolo_spessori.DATAINSERIMENTO = DateTime.Now;
                            articolo_spessori.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                            _DS.CDC_ARTICOLI_SPESSORI.AddCDC_ARTICOLI_SPESSORIRow(articolo_spessori);
                        }
                        else
                        {
                            articolo_spessori.IDARTICOLO = ((decimal)riga["IDARTICOLO"]);

                            articolo_spessori.ETICHETTA       = ((string)riga["ETICHETTA"]).ToUpper().Trim();
                            articolo_spessori.MINIMO          = (double)riga["MINIMO"];
                            articolo_spessori.MASSIMO         = (double)riga["MASSIMO"];
                            articolo_spessori.NOMINALE        = (double)riga["NOMINALE"];
                            articolo_spessori.DATAINSERIMENTO = DateTime.Now;
                            articolo_spessori.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        }
                    }
                    else
                    {
                        CDCDS.CDC_ARTICOLI_SPESSORIRow articolo_spessori = _DS.CDC_ARTICOLI_SPESSORI.NewCDC_ARTICOLI_SPESSORIRow();

                        articolo_spessori.IDARTICOLO = selIDARTICOLO;

                        articolo_spessori.ETICHETTA       = ((string)riga["ETICHETTA"]).ToUpper().Trim();
                        articolo_spessori.MINIMO          = (double)riga["MINIMO"];
                        articolo_spessori.MASSIMO         = (double)riga["MASSIMO"];
                        articolo_spessori.NOMINALE        = (double)riga["NOMINALE"];
                        articolo_spessori.DATAINSERIMENTO = DateTime.Now;
                        articolo_spessori.UTENTE          = Contesto.Utente.FULLNAMEUSER;

                        _DS.CDC_ARTICOLI_SPESSORI.AddCDC_ARTICOLI_SPESSORIRow(articolo_spessori);
                    }
                }


                //cerco i cancellati e li marco
                List <CDCDS.CDC_ARTICOLI_DIMENSIONIRow> art_dims = _DS.CDC_ARTICOLI_DIMENSIONI.Where(x => x.RowState != DataRowState.Added && x.IDARTICOLO == selIDARTICOLO).ToList();
                foreach (CDCDS.CDC_ARTICOLI_DIMENSIONIRow art_dim in art_dims)
                {
                    DataRow[] art = _dsServizio.Tables["ARTICOLI_DIMENSIONI"].Select("IDDIMENSIONE = " + art_dim.IDDIMENSIONE.ToString());

                    if (art.GetLength(0) == 0)
                    {
                        art_dim.DATAINSERIMENTO = DateTime.Now;
                        art_dim.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        art_dim.DELETED         = "S";
                    }
                }

                List <CDCDS.CDC_ARTICOLI_SPESSORIRow> art_spess = _DS.CDC_ARTICOLI_SPESSORI.Where(x => x.RowState != DataRowState.Added && x.IDARTICOLO == selIDARTICOLO).ToList();
                foreach (CDCDS.CDC_ARTICOLI_SPESSORIRow art_spes in art_spess)
                {
                    DataRow[] art = _dsServizio.Tables["ARTICOLI_SPESSORI"].Select("IDSPESSORE = " + art_spes.IDSPESSORE.ToString());

                    if (art.GetLength(0) == 0)
                    {
                        art_spes.DATAINSERIMENTO = DateTime.Now;
                        art_spes.UTENTE          = Contesto.Utente.FULLNAMEUSER;
                        art_spes.DELETED         = "S";
                    }
                }



                CDCBLL bll = new CDCBLL();
                bll.SalvaDatiArticoli_Dimensioni(_DS);
                bll.SalvaDatiArticoli_Spessori(_DS);

                _DS.CDC_ARTICOLI_DIMENSIONI.AcceptChanges();
                _DS.CDC_ARTICOLI_SPESSORI.AcceptChanges();

                _DS.CDC_ARTICOLI_DIMENSIONI.Clear();
                _DS.CDC_ARTICOLI_SPESSORI.Clear();

                bll.CaricaArticoliDimensioni(_DS);
                bll.CaricaArticoliSpessori(_DS);

                CaricaDimensioniSpessori(selIDARTICOLO);
            }
            catch (Exception ex)
            {
                MostraEccezione(ex, "Errore in Salva Dimensioni Spessori");
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }


            foreach (DataGridViewRow riga in dgvDettaglio.Rows)
            {
                string parte  = (string)riga.Cells["PARTE"].Value;
                string colore = (string)riga.Cells["COLORE"].Value;

                CDCDS.CDC_ARTICOLIRow arow = _DS.CDC_ARTICOLI.Where(x => x.PARTE == parte && x.COLORE == colore).FirstOrDefault();
                if (arow == null)
                {
                    riga.Cells[1].Style.BackColor = Color.Yellow;
                    riga.Cells[2].Style.BackColor = Color.Yellow;
                }
                else
                {
                    List <CDCDS.CDC_ARTICOLI_DIMENSIONIRow> artdimensioni = _DS.CDC_ARTICOLI_DIMENSIONI.Where(x => x.IDARTICOLO == arow.IDARTICOLO).OrderBy(x => x.IDDIMENSIONE).ToList();
                    List <CDCDS.CDC_ARTICOLI_SPESSORIRow>   artspessori   = _DS.CDC_ARTICOLI_SPESSORI.Where(x => x.IDARTICOLO == arow.IDARTICOLO).OrderBy(x => x.IDSPESSORE).ToList();
                    if (artspessori.Count == 0 || artdimensioni.Count == 0)
                    {
                        riga.Cells[1].Style.BackColor = Color.Orange;
                        riga.Cells[2].Style.BackColor = Color.Orange;
                    }
                    else
                    {
                        riga.Cells[1].Style.BackColor = Color.White;
                        riga.Cells[2].Style.BackColor = Color.White;
                    }
                }
            }
        }