Пример #1
0
        private void TransferFactStaffBtn_Click(object sender, EventArgs e)
        {
            if (dgvFactStaff.SelectedRows.Count < 1)
               {
               MessageBox.Show("Выберите сотрудников для перевода!");
               return;
               }

               //проверяем, чтобы переводимые еще не были уволены
               foreach (DataGridViewRow selectedRow in dgvFactStaff.SelectedRows)
               {
               //в текущей записи выставляем приказ о переводе и дату перевода
               FactStaff currentFactStaff = (selectedRow.DataBoundItem as FactStaff);
               if (currentFactStaff.Prikaz1 != null)
               {
                   MessageBox.Show("Cотрудник " + currentFactStaff.Employee.ToString() + " уже уволен!");
                   return;
               }
               }

               using (FactStaffTransfer dlg = new FactStaffTransfer())
               {
               dlg.Department = Department;
               dlg.CurentPlanStaff = planStaffBindingSource.Current as Kadr.Data.PlanStaff;
               dlg.ShowDialog();
               //переводим
               try
               {
                   if (dlg.DialogResult == DialogResult.OK)
                   {
                       foreach (DataGridViewRow selectedRow in dgvFactStaff.SelectedRows)
                       {
                           //в текущей записи выставляем приказ о переводе и дату перевода
                           FactStaff currentFactStaff = (selectedRow.DataBoundItem as FactStaff);
                           currentFactStaff.Prikaz1 = dlg.TransferPrikaz;
                           currentFactStaff.DateEnd = dlg.TransferData;

                           //создаем новую запись - с даты перевода и приказом о преводе
                           FactStaff newFactStaff = new FactStaff();
                           newFactStaff.Employee = currentFactStaff.Employee;
                           newFactStaff.WorkType = currentFactStaff.WorkType;
                           newFactStaff.StaffCount = currentFactStaff.StaffCount;
                           newFactStaff.DateBegin = dlg.TransferData;
                           newFactStaff.Prikaz = dlg.TransferPrikaz;
                           newFactStaff.PlanStaff = dlg.NewPlanStaff;

                           //закрепляем, сохраняем новую запись
                           KadrController.Instance.Model.FactStaffs.InsertOnSubmit(newFactStaff);
                           KadrController.Instance.SubmitChanges();

                       }
                   }
               }
               catch (Exception exp)
               {

                   MessageBox.Show(exp.Message, "АИС \"Штатное расписание\"");
                   //KadrController.Instance.DeleteModel();
                   return;
               }
               }
        }
Пример #2
0
        private void TransferFactStaffBtn_Click(object sender, EventArgs e)
        {
            if (dgvFactStaff.SelectedRows.Count < 1)
               {
               MessageBox.Show("Выберите сотрудников для перевода!");
               return;
               }

               //проверяем, чтобы переводимые еще не были уволены
               foreach (DataGridViewRow selectedRow in dgvFactStaff.SelectedRows)
               {
               //в текущей записи выставляем приказ о переводе и дату перевода
               FactStaff currentFactStaff = (selectedRow.DataBoundItem as FactStaff);
               if (currentFactStaff.Prikaz != null)
               {
                   MessageBox.Show("Cотрудник " + currentFactStaff.Employee.ToString() + " уже уволен!");
                   return;
               }
               }

               using (FactStaffTransfer dlg = new FactStaffTransfer())
               {
               dlg.CurentPlanStaff = planStaffBindingSource.Current as Kadr.Data.PlanStaff;
               //dlg.Department = Department;
               dlg.LoadDepartments();
               dlg.Department = Department.FullDepartment;
               dlg.ShowDialog();
               //переводим
                if (dlg.DialogResult == DialogResult.OK)
                {
                    try
                    {
                        try
                        {
                            //переводим по одному с помощью хранимой процедуры
                            foreach (DataGridViewRow selectedRow in dgvFactStaff.SelectedRows)
                            {
                                FactStaff currentFactStaff = (selectedRow.DataBoundItem as FactStaff);
                                KadrController.Instance.Model.TransferFactStaff(currentFactStaff.id, dlg.NewPlanStaff.id,
                                    dlg.TransferPrikaz.id, dlg.TransferData, dlg.TransferWithBonus);
                            }
                        }
                        catch (Exception exp)
                        {
                            MessageBox.Show(exp.Message, "АИС \"Штатное расписание\"");
                        }
                    }
                    finally
                    {
                        KadrController.Instance.DeleteModel();
                        LoadFactStaff();
                    }
                }
               }
        }