private void copiaEventoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dbDataGridView_teste.SelectedRows.Count != 1)
            {
                MessageBox.Show(Properties.MessageLocalization.event_copy_too_many_rows);
                return;
            }

            try
            {
                using (System.Transactions.TransactionScope scp = new TransactionScope())
                {
                    DataSet.dsEvents.EventiTestaRow row = (dbDataGridView_teste.SelectedRows[0].DataBoundItem as DataRowView).Row as DataSet.dsEvents.EventiTestaRow;
                    int new_event_key = (int)eventiTestaTableAdapter.CloneEvent(row.EventKey);
                    eventiRigheTableAdapter.CloneEventRows(new_event_key, row.EventKey);

                    scp.Complete();
                }

                PerformSearch();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        private void button_aggiungi_righe_Click(object sender, EventArgs e)
        {
            if (dbDataGridView_teste.SelectedRows.Count > 0)
            {
                DataRowView drv = dbDataGridView_teste.SelectedRows[0].DataBoundItem as DataRowView;
                if (drv != null)
                {
                    try
                    {
                        DataSet.dsEvents.EventiTestaRow row = drv.Row as DataSet.dsEvents.EventiTestaRow;
                        if (int.Parse(textBox_remaining.Text) < int.Parse(textBox_driver.Text))
                        {
                            MessageBox.Show(Properties.MessageLocalization.events_driver_perc_exceeds);
                            return;
                        }
                        eventiRigheTableAdapter.InsertQuery(
                            row.EventKey,
                            (int)ctrlPlantSelector.SelectedImpianto(),
                            (int)ctrlPlantSelector.SelectedMacchina(),
                            ctrlPlantSelector.SelectedComponente(),
                            ctrlPlantSelector.SelectedSCM_1(),
                            ctrlPlantSelector.SelectedSCM_2(),
                            ctrlPlantSelector.SelectedSCM_3(),
                            int.Parse(textBox_driver.Text)
                            );

                        RefreshDatagridRighe(row.EventKey);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
            }
        }
 private void SelectEvent(int event_key)
 {
     for (int i = 0; i < dbDataGridView_teste.Rows.Count; i++)
     {
         DataSet.dsEvents.EventiTestaRow row = (dbDataGridView_teste.Rows[i].DataBoundItem as DataRowView).Row as DataSet.dsEvents.EventiTestaRow;
         if (row.EventKey == event_key)
         {
             dbDataGridView_teste.Rows[i].Selected = true;
         }
         else
         {
             dbDataGridView_teste.Rows[i].Selected = false;
         }
     }
 }
        private void dbDataGridView_teste_SelectionChanged(object sender, EventArgs e)
        {
            if (dbDataGridView_teste.SelectedRows.Count > 0)
            {
                DataRowView drv = dbDataGridView_teste.SelectedRows[0].DataBoundItem as DataRowView;
                if (drv != null)
                {
                    DataSet.dsEvents.EventiTestaRow row = drv.Row as DataSet.dsEvents.EventiTestaRow;
                    RefreshDatagridRighe(row.EventKey);

                    comboBox_man.SelectedValue       = row.TipoManKey;
                    comboBox_rep.SelectedValue       = row.TipoRepKey;
                    textBox_contratto.Text           = row.EventContractNumber;
                    comboBox_ute.SelectedValue       = row.UTEKey;
                    comboBox_stato_rec.SelectedValue = row.StatoRecKey;
                    textBox_descr.Text = row.EventDescription;
                    textBox_note.Text  = row.EventRemark;

                    DateTime start = new DateTime(
                        row.dt_start_date.Year,
                        row.dt_start_date.Month,
                        row.dt_start_date.Day,
                        row.start_hour,
                        row.start_minute,
                        0);

                    DateTime end = new DateTime(
                        row.dt_end_date.Year,
                        row.dt_end_date.Month,
                        row.dt_end_date.Day,
                        row.end_hour,
                        row.end_minute,
                        0);

                    ctrlDateTimePicker_start.WriteTs(start);
                    ctrlDateTimePicker_end.WriteTs(end);

                    ChangeMode(Mode.UPDATE);
                }
            }
        }
        private void cancellaRecordSelezionatiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                using (TransactionScope scp = new TransactionScope())
                {
                    foreach (DataGridViewRow r in dbDataGridView_teste.SelectedRows)
                    {
                        DataSet.dsEvents.EventiTestaRow row = (r.DataBoundItem as DataRowView).Row as DataSet.dsEvents.EventiTestaRow;
                        new DataSet.dsActivitiesTableAdapters.Man_Act_EveTableAdapter().DeleteByEvent(row.EventKey);
                        eventiRigheTableAdapter.DeleteByEventKey(row.EventKey);
                        eventiTestaTableAdapter.DeleteQuery(row.EventKey);
                    }
                    scp.Complete();
                }

                PerformSearch();
            }
            catch (Exception ex)
            {
                MessageBox.Show(Properties.MessageLocalization.event_cannot_cancel);//ex.ToString());
            }
        }
        private void button_save_Click(object sender, EventArgs e)
        {
            string err = "";

            if (ctrlDateTimePicker_start.ReadTs() >= ctrlDateTimePicker_end.ReadTs())
            {
                err += Properties.MessageLocalization.activity_ts_mismatch + System.Environment.NewLine;
            }

            DataSet.dsActivities.OverlappingActivitiesDataTable d_overlap = new DataSet.dsActivities.OverlappingActivitiesDataTable();
            //new DataSet.dsActivitiesTableAdapters.OverlappingActivitiesTableAdapter().Fill(
            //    d_overlap,
            //    (int)comboBox_utente_.SelectedValue, -1,
            //    Program.DateToInt(ctrlDateTimePicker_start.ReadTs()),
            //    Program.HmsToInt(ctrlDateTimePicker_start.ReadTs()),
            //    Program.DateToInt(ctrlDateTimePicker_end.ReadTs()),
            //    Program.HmsToInt(ctrlDateTimePicker_end.ReadTs()));

            new DataSet.dsActivitiesTableAdapters.OverlappingActivitiesTableAdapter().Fill(
                d_overlap,
                (int)comboBox_utente_.SelectedValue, -1,
                ctrlDateTimePicker_start.ReadTs(),
                ctrlDateTimePicker_end.ReadTs());

            if (d_overlap.Count > 0)
            {
                err += Properties.MessageLocalization.activity_overlap + System.Environment.NewLine;
            }

            if (ctrlDateTimePicker_start.ReadTs().Minute % 15 != 0 || ctrlDateTimePicker_end.ReadTs().Minute % 15 != 0)
            {
                err += Properties.MessageLocalization.activity_wrong_min_range + System.Environment.NewLine;
            }

            if (!string.IsNullOrEmpty(err))
            {
                MessageBox.Show(err);
                return;
            }
            else
            {
                try
                {
                    if (dbDataGridView_events.SelectedRows.Count > 0)
                    {
                        DataSet.dsEvents.EventiTestaRow       ev_testa_row = (dbDataGridView_events.SelectedRows[0].DataBoundItem as DataRowView).Row as DataSet.dsEvents.EventiTestaRow;
                        DataSet.dsEvents.EventiRigheDataTable eventi_righe = new DataSet.dsEvents.EventiRigheDataTable();
                        new DataSet.dsEventsTableAdapters.EventiRigheTableAdapter().Fill(eventi_righe, ev_testa_row.EventKey, Program.language_);
                        DataSet.dsActivitiesTableAdapters.ActivitiesTableAdapter  act_adapter     = new DataSet.dsActivitiesTableAdapters.ActivitiesTableAdapter();
                        DataSet.dsActivitiesTableAdapters.Man_Act_EveTableAdapter act_evt_adapter = new DataSet.dsActivitiesTableAdapters.Man_Act_EveTableAdapter();

                        long     tot_sec = (long)(ctrlDateTimePicker_end.ReadTs() - ctrlDateTimePicker_start.ReadTs()).TotalSeconds;
                        DateTime dt_prg  = ctrlDateTimePicker_start.ReadTs();

                        DataSet.dsActivities.MaxActEveGroupDataTable d_max = new DataSet.dsActivities.MaxActEveGroupDataTable();
                        new DataSet.dsActivitiesTableAdapters.MaxActEveGroupTableAdapter().Fill(d_max);

                        int act_event_group_id = (d_max[0].IsMaxActEveGroupIdNull() ? 0 : d_max[0].MaxActEveGroupId) + 1;
                        using (TransactionScope scp = new TransactionScope())
                        {
                            foreach (DataSet.dsEvents.EventiRigheRow ev_righe_row in eventi_righe.Rows)
                            {
                                int?COMKey    = null;
                                int?SCM_1_Key = null;
                                int?SCM_2_Key = null;
                                int?SCM_3_Key = null;

                                if (!ev_righe_row.IsCOMKeyNull())
                                {
                                    COMKey = ev_righe_row.COMKey;
                                }
                                if (!ev_righe_row.IsSCM_1KeyNull())
                                {
                                    SCM_1_Key = ev_righe_row.SCM_1Key;
                                }
                                if (!ev_righe_row.IsSCM_2KeyNull())
                                {
                                    SCM_2_Key = ev_righe_row.SCM_2Key;
                                }
                                if (!ev_righe_row.IsSCM_3KeyNull())
                                {
                                    SCM_3_Key = ev_righe_row.SCM_3Key;
                                }

                                DateTime dt_next     = dt_prg.AddSeconds(tot_sec * ev_righe_row.DriverPerc / 100);
                                int      ActivityKey = (int)act_adapter.InsertActivity(
                                    Program.DateToInt(dt_prg),
                                    Program.DateToInt(dt_next),
                                    Program.HmsToInt(dt_prg),
                                    Program.HmsToInt(dt_next),
                                    (int)(dt_next - dt_prg).TotalSeconds,
                                    string.Empty,
                                    (int)comboBox_utente_.SelectedValue,
                                    ev_testa_row.TipoManKey,
                                    (int)comboBox_tipo_reparto_.SelectedValue,
                                    null,
                                    ev_righe_row.IMPKey,
                                    ev_righe_row.MACKey,
                                    COMKey,
                                    SCM_1_Key,
                                    SCM_2_Key,
                                    SCM_3_Key,
                                    Program.CurrentUser.Login,
                                    dt_prg,
                                    dt_next,
                                    (int)comboBox_tipo_ore.SelectedValue,
                                    null);
                                dt_prg = dt_next;
                                int ActEveKey = (int)act_evt_adapter.InsertQuery(ActivityKey, ev_testa_row.EventKey, act_event_group_id);

                                act_adapter.UpdateActEveKey(ActEveKey, ActivityKey);
                            }
                            scp.Complete();
                        }
                    }

                    ActivitySubmitEventArgs ev = new ActivitySubmitEventArgs(ctrlDateTimePicker_start.ReadTs(), ctrlDateTimePicker_end.ReadTs());
                    InitializeMask();
                    Program.RefreshActNoReport();
                    SubmitEvent(this, ev);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
        private void button_save_Click(object sender, EventArgs e)
        {
            int event_key = -1;

            try
            {
                if (mode == Mode.INSERT)
                {
                    event_key = (int)eventiTestaTableAdapter.InsertQuery(
                        textBox_descr.Text,
                        (int)comboBox_rep.SelectedValue,
                        (int)comboBox_man.SelectedValue,
                        Program.DateToInt(ctrlDateTimePicker_start.ReadTs()),
                        Program.HmsToInt(ctrlDateTimePicker_start.ReadTs()),
                        Program.DateToInt(ctrlDateTimePicker_end.ReadTs()),
                        Program.HmsToInt(ctrlDateTimePicker_end.ReadTs()),
                        textBox_contratto.Text,
                        textBox_note.Text,
                        (int)comboBox_ute.SelectedValue,
                        (int)comboBox_stato_rec.SelectedValue,
                        ctrlDateTimePicker_start.ReadTs(),
                        ctrlDateTimePicker_end.ReadTs());
                    ChangeMode(Mode.UPDATE);
                }
                else if (mode == Mode.UPDATE)
                {
                    int eventkey = -1;

                    if (dbDataGridView_teste.SelectedRows.Count > 0)
                    {
                        DataRowView drv = dbDataGridView_teste.SelectedRows[0].DataBoundItem as DataRowView;
                        if (drv != null)
                        {
                            DataSet.dsEvents.EventiTestaRow row = drv.Row as DataSet.dsEvents.EventiTestaRow;
                            eventkey = row.EventKey;
                        }
                    }

                    eventiTestaTableAdapter.UpdateQuery(
                        textBox_descr.Text,
                        (int)comboBox_rep.SelectedValue,
                        (int)comboBox_man.SelectedValue,
                        Program.DateToInt(ctrlDateTimePicker_start.ReadTs()),
                        Program.HmsToInt(ctrlDateTimePicker_start.ReadTs()),
                        Program.DateToInt(ctrlDateTimePicker_end.ReadTs()),
                        Program.HmsToInt(ctrlDateTimePicker_end.ReadTs()),
                        textBox_contratto.Text,
                        textBox_note.Text,
                        (int)comboBox_ute.SelectedValue,
                        (int)comboBox_stato_rec.SelectedValue,
                        ctrlDateTimePicker_start.ReadTs(),
                        ctrlDateTimePicker_end.ReadTs(),
                        eventkey);
                }
                if (ctrlDateTimePicker_start.ReadTs() < dateTimePicker_start.Value)
                {
                    dateTimePicker_start.Value = ctrlDateTimePicker_start.ReadTs();
                }
                if (ctrlDateTimePicker_end.ReadTs() > dateTimePicker_end.Value)
                {
                    dateTimePicker_end.Value = ctrlDateTimePicker_end.ReadTs();
                }

                PerformSearch();
                if (event_key != -1)
                {
                    SelectEvent(event_key);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }