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());
                }
            }
        }
Beispiel #2
0
        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;
            }

            if (comboBox_tipo_man.SelectedValue == null)
            {
                err += Properties.MessageLocalization.activity_man_type_not_selected + 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;
            }

            DataSet.dsActivities.OverlappingActivitiesDataTable d_overlap = new DataSet.dsActivities.OverlappingActivitiesDataTable();
            //new DataSet.dsActivitiesTableAdapters.OverlappingActivitiesTableAdapter().Fill(
            //    d_overlap,
            //    (int)comboBox_utente_.SelectedValue, activity_key_,
            //    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, activity_key_,
                ctrlDateTimePicker_start.ReadTs(),
                ctrlDateTimePicker_end.ReadTs());

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

            if (!string.IsNullOrEmpty(err))
            {
                MessageBox.Show(err);
                return;
            }
            else
            {
                try
                {
                    if (type_ == Type.INSERT)
                    {
                        int?id_ev = null;

                        new DataSet.dsActivitiesTableAdapters.ActivitiesTableAdapter().InsertActivity(
                            Program.DateToInt(ctrlDateTimePicker_start.ReadTs()),
                            Program.DateToInt(ctrlDateTimePicker_end.ReadTs()),
                            Program.HmsToInt(ctrlDateTimePicker_start.ReadTs()),
                            Program.HmsToInt(ctrlDateTimePicker_end.ReadTs()),
                            (int)(ctrlDateTimePicker_end.ReadTs() - ctrlDateTimePicker_start.ReadTs()).TotalSeconds,
                            textBox_remark.Text,
                            (int)comboBox_utente_.SelectedValue,
                            (int)comboBox_tipo_man.SelectedValue,
                            (int)comboBox_tipo_reparto_.SelectedValue,
                            id_ev,
                            ctrlPlantSelector.SelectedImpianto(),
                            ctrlPlantSelector.SelectedMacchina(),
                            ctrlPlantSelector.SelectedComponente(),
                            ctrlPlantSelector.SelectedSCM_1(),
                            ctrlPlantSelector.SelectedSCM_2(),
                            ctrlPlantSelector.SelectedSCM_3(),
                            Program.CurrentUser.Login,
                            ctrlDateTimePicker_start.ReadTs(),
                            ctrlDateTimePicker_end.ReadTs(),
                            (int)comboBox_tip_ore.SelectedValue,
                            comboBox_Capex.SelectedValue.ToString().Trim().Equals(string.Empty) ? null : comboBox_Capex.SelectedValue.ToString()
                            );

                        Program.RefreshActNoReport();
                    }
                    else if (type_ == Type.MODIFY)
                    {
                        new DataSet.dsActivitiesTableAdapters.ActivitiesTableAdapter().UpdateQuery(
                            Program.DateToInt(ctrlDateTimePicker_start.ReadTs()),
                            Program.DateToInt(ctrlDateTimePicker_end.ReadTs()),
                            Program.HmsToInt(ctrlDateTimePicker_start.ReadTs()),
                            Program.HmsToInt(ctrlDateTimePicker_end.ReadTs()),
                            (int)(ctrlDateTimePicker_end.ReadTs() - ctrlDateTimePicker_start.ReadTs()).TotalSeconds,
                            textBox_remark.Text,
                            (int)comboBox_utente_.SelectedValue,
                            (int)comboBox_tipo_man.SelectedValue,
                            (int)comboBox_tipo_reparto_.SelectedValue,
                            ctrlPlantSelector.SelectedImpianto(),
                            ctrlPlantSelector.SelectedMacchina(),
                            ctrlPlantSelector.SelectedComponente(),
                            ctrlPlantSelector.SelectedSCM_1(),
                            ctrlPlantSelector.SelectedSCM_2(),
                            ctrlPlantSelector.SelectedSCM_3(),
                            Program.CurrentUser.Login,
                            ctrlDateTimePicker_start.ReadTs(),
                            ctrlDateTimePicker_end.ReadTs(), (int)comboBox_tip_ore.SelectedValue,
                            comboBox_Capex.SelectedValue.ToString().Trim().Equals(string.Empty) ? null : comboBox_Capex.SelectedValue.ToString(),
                            activity_key_);
                    }
                    ActivitySubmitEventArgs ev = new ActivitySubmitEventArgs(ctrlDateTimePicker_start.ReadTs(), ctrlDateTimePicker_end.ReadTs());
                    InitializeMask();
                    SubmitEvent(this, ev);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }