private void Form1_Load(object sender, EventArgs e)
        {
            lblMessage.Text = string.Empty;

            dtAl.Value = DateTime.Today.AddDays(+7);

            dtDal.Value = DateTime.Today.AddDays(-1);

            using (PianificazioneBusiness bPianificazione = new PianificazioneBusiness())
            {
                _dsPianificazione = new PianificazioneDS();
                bPianificazione.FillTABFAS(_dsPianificazione);

                List <string> reparti = new List <string>();
                reparti.Add(" ");
                reparti.AddRange(_dsPianificazione.TABFAS.Where(x => !x.IsCODICECLIFOPREDFASENull()).OrderBy(x => x.CODICECLIFOPREDFASE).Select(x => x.CODICECLIFOPREDFASE).Distinct().ToList());

                _fasi = _dsPianificazione.TABFAS.ToList();

                ddlReparto.Items.AddRange(reparti.ToArray());
            }

            ddlTipoODL.Items.Add(" ");
            ddlTipoODL.Items.Add("PIANIFICATO");
            ddlTipoODL.Items.Add("APERTO");
            ddlTipoODL.SelectedIndex = 0;
        }
        private void btnSalva_Click(object sender, EventArgs e)
        {
            try
            {
                int numeroGiorni = GetNumeroGiorni();
                foreach (DataRow riga in _dsGriglia.Tables[_nomeTabella].Rows)
                {
                    string IDMAGAZZLancio = (string)riga[(int)Colonne.IDMAGAZZLancio];
                    string IDMAGAZZFase   = (string)riga[(int)Colonne.IDMAGAZZFASE];
                    string reparto        = (string)riga[(int)Colonne.Reparto];
                    string fase           = (string)riga[(int)Colonne.Fase];

                    for (int i = 0; i < numeroGiorni; i++)
                    {
                        string barra  = (string)riga[(int)Colonne.NumeroPezzi + 1 + 3 * i + 2].ToString();
                        string valore = (string)riga[(int)Colonne.NumeroPezzi + 1 + 3 * i + 1].ToString();
                        valore = valore.Trim();
                        string   data = dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i].Name;
                        DateTime dt   = DateTime.Parse(data);

                        PianificazioneDS.PIANIFICAZIONE_STATICARow rigaDaInserire = _dsPianificazione.PIANIFICAZIONE_STATICA.Where(x =>
                                                                                                                                   x.RowState != DataRowState.Deleted &&
                                                                                                                                   x.IDMAGAZZ == IDMAGAZZLancio &&
                                                                                                                                   x.IDMAGAZZ_FASE == IDMAGAZZFase &&
                                                                                                                                   x.CODICEFASE == fase &&
                                                                                                                                   x.REPARTO == reparto &&
                                                                                                                                   x.DATA == dt).FirstOrDefault();

                        if (!string.IsNullOrEmpty(valore))
                        {
                            if (rigaDaInserire == null)
                            {
                                rigaDaInserire               = _dsPianificazione.PIANIFICAZIONE_STATICA.NewPIANIFICAZIONE_STATICARow();
                                rigaDaInserire.CODICEFASE    = fase;
                                rigaDaInserire.DATA          = dt;
                                rigaDaInserire.IDMAGAZZ      = IDMAGAZZLancio;
                                rigaDaInserire.IDMAGAZZ_FASE = IDMAGAZZFase;
                                rigaDaInserire.QTA           = valore;
                                rigaDaInserire.REPARTO       = reparto;
                                _dsPianificazione.PIANIFICAZIONE_STATICA.AddPIANIFICAZIONE_STATICARow(rigaDaInserire);
                            }
                            else
                            {
                                rigaDaInserire.QTA = valore;
                            }
                        }
                        else
                        {
                            if (rigaDaInserire != null)
                            {
                                rigaDaInserire.Delete();
                            }
                        }
                    }
                }

                using (PianificazioneBusiness bPianificazione = new PianificazioneBusiness())
                {
                    bPianificazione.SalvaPianificazioneStatica(_dsPianificazione);
                    _dsPianificazione.AcceptChanges();
                }

                MessageBox.Show("Salvataggio riuscito", "Informazione", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnTrova_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            try
            {
                _dsPianificazione = new PianificazioneDS();
                string reparto = string.Empty;
                string fase    = string.Empty;

                if (ddlReparto.SelectedIndex != -1)
                {
                    reparto = (string)ddlReparto.SelectedItem;
                }

                if (ddlFase.SelectedIndex != -1)
                {
                    fase = (string)ddlFase.SelectedItem;
                }

                using (PianificazioneBusiness bPianificazione = new PianificazioneBusiness())
                {
                    bPianificazione.FillV_PIAN_AGGR_2(_dsPianificazione, dtDal.Value, dtAl.Value, reparto, fase, (string)ddlTipoODL.SelectedItem);
                    bPianificazione.FillPIANIFICAZIONE_STATICA(_dsPianificazione, dtDal.Value, dtAl.Value);
                }

                CreaDSGriglia();
                dgvGriglia.Columns.Clear();
                //                dgvGriglia.AutoGenerateColumns = true;
                dgvGriglia.DataSource = _dsGriglia;
                dgvGriglia.DataMember = _nomeTabella;

                dgvGriglia.Columns[(int)Colonne.IDMAGAZZFASE].Visible   = false;
                dgvGriglia.Columns[(int)Colonne.IDMAGAZZLancio].Visible = false;
                dgvGriglia.Columns[(int)Colonne.Segnalatore].Frozen     = true;
                dgvGriglia.Columns[(int)Colonne.ModelloLancio].Frozen   = true;
                dgvGriglia.Columns[(int)Colonne.Descrizione].Frozen     = true;
                dgvGriglia.Columns[(int)Colonne.Descrizione].Width      = 120;
                dgvGriglia.Columns[(int)Colonne.Modello].Frozen         = true;
                dgvGriglia.Columns[(int)Colonne.Modello].Width          = 70;
                dgvGriglia.Columns[(int)Colonne.Reparto].Frozen         = true;
                dgvGriglia.Columns[(int)Colonne.Reparto].Width          = 70;
                dgvGriglia.Columns[(int)Colonne.Fase].Frozen            = true;
                dgvGriglia.Columns[(int)Colonne.Fase].Width             = 70;
                dgvGriglia.Columns[(int)Colonne.Materiale].Frozen       = true;
                dgvGriglia.Columns[(int)Colonne.Materiale].Width        = 60;
                dgvGriglia.Columns[(int)Colonne.Finitura].Width         = 60;
                dgvGriglia.Columns[(int)Colonne.Finitura].Frozen        = true;
                dgvGriglia.Columns[(int)Colonne.PezziBarra].Width       = 50;
                dgvGriglia.Columns[(int)Colonne.PezziBarra].Frozen      = true;

                dgvGriglia.Columns[(int)Colonne.Gruppo].Frozen = true;
                dgvGriglia.Columns[(int)Colonne.Gruppo].Width  = 50;

                dgvGriglia.Columns[(int)Colonne.PezziPianificati].Frozen = true;
                dgvGriglia.Columns[(int)Colonne.PezziPianificati].Width  = 50;
                dgvGriglia.Columns[(int)Colonne.PezziPianificati].DefaultCellStyle.BackColor = Color.DarkRed;
                dgvGriglia.Columns[(int)Colonne.PezziPianificati].DefaultCellStyle.ForeColor = Color.White;

                dgvGriglia.Columns[(int)Colonne.NumeroPezzi].Frozen = true;
                dgvGriglia.Columns[(int)Colonne.NumeroPezzi].Width  = 50;
                dgvGriglia.Columns[(int)Colonne.NumeroPezzi].DefaultCellStyle.BackColor = Color.DarkGreen;
                dgvGriglia.Columns[(int)Colonne.NumeroPezzi].DefaultCellStyle.ForeColor = Color.White;

                int numeroGiorni = GetNumeroGiorni();
                for (int i = 0; i < numeroGiorni; i++)
                {
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i].Width     = 70;
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i + 1].Width = 70;
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i + 2].Width = 70;
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i].DefaultCellStyle.ForeColor     = Color.DarkRed;
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i + 1].DefaultCellStyle.ForeColor = Color.DarkGreen;
                    dgvGriglia.Columns[(int)Colonne.NumeroPezzi + 1 + 3 * i + 2].DefaultCellStyle.ForeColor = Color.DarkBlue;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }