private void paintRow(DataGridViewRow ADataGridViewRow)
 {
     if (ADataGridViewRow != null)
     {
         // Получаем строку в первом наборе данных
         EmployeeInSchoolYear eiw = (EmployeeInSchoolYear)ADataGridViewRow.DataBoundItem;
         if (eiw != null)
         {
             DataGridViewCellStyle newStyle = dataGridViewEmployeeInSchoolYear.DefaultCellStyle.Clone();
             if (eiw.IsOverload)
             {
                 newStyle.BackColor = Color.LightCoral;
             }
             else if (eiw.IsUnderload)
             {
                 newStyle.BackColor = Color.LightGray;
             }
             else if (eiw.IsPochFondOverload)
             {
                 newStyle.BackColor = Color.Red;
             }
             else
             {
                 newStyle.BackColor = Color.White;
             }
             ADataGridViewRow.DefaultCellStyle = newStyle;
         }
     }
 }
        private void dataGridViewEmployeeInSchoolYear_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            EmployeeInSchoolYear         eisy   = (EmployeeInSchoolYear)bindingSourceEmployeeInSchoolYear.Current;
            FormEmployeeInSchoolYearEdit feisye = new FormEmployeeInSchoolYearEdit(eisy, myDatabase);

            feisye.ShowDialog();
            updatedataGridViewEmployeeInSchoolYear();
        }
        private void buttonGoToFormalEmployee_Click(object sender, EventArgs e)
        {
            CourseInWork                 ciw    = (CourseInWork)bindingSourceFact.Current;
            EmployeeInSchoolYear         eisy   = new EmployeeInSchoolYear(ciw.Twin.Employee, ciw.SchoolYear);
            FormEmployeeInSchoolYearEdit feisye = new FormEmployeeInSchoolYearEdit(eisy, myDatabase);

            feisye.ShowDialog();
            updateParameters();
            updateDataGridViews();
        }
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            EmployeeInSchoolYear eisy = (EmployeeInSchoolYear)bindingSourceEmployeeInSchoolYear.Current;

            if (eisy != null)
            {
                File.WriteAllText("Employee.txt",
                                  eisy.GetEmployeeInfo(myDatabase.CourseInWork.ToList <CourseInWork>()),
                                  Encoding.Default);
                // MessageBox.Show(eisy.GetEmployeeInfo());
                FormEditor fe = new FormEditor(eisy.GetEmployeeInfo(myDatabase.CourseInWork.ToList <CourseInWork>()));
                fe.ShowDialog();
            }
        }
        private void FormEmployeeInSchoolYear_Load(object sender, EventArgs e)
        {
            DataLoadOptions dlo = new DataLoadOptions();

            dlo.LoadWith <CourseInWork>(ciw => ciw.Employee);
            dlo.LoadWith <CourseInWork>(ciw => ciw.SchoolYear);
            myDatabase.LoadOptions = dlo;

            SchoolYear firstSchoolYear = myDatabase.SchoolYear.FirstOrDefault(sy => sy.ID == iCathedra_Settings.SchoolYearId);

            #region Заполняем список dataGridViewEmployeeInSchoolYear
            foreach (Employee em in myDatabase.Employee)
            {
                if (!em.NonActive)
                {
                    EmployeeInSchoolYear eiw = new EmployeeInSchoolYear(em, firstSchoolYear);
                    entitySetEmployeeInSchoolYear.Add(eiw);
                }
            }
            bindingSourceEmployeeInSchoolYear.DataSource = entitySetEmployeeInSchoolYear;
            #endregion

            bindingSourceEmployee.DataSource = myDatabase.Employee;

            #region Вид нагрузки
            Dictionary <System.Nullable <short>, string> workload = new Dictionary <System.Nullable <short>, string>();
            foreach (WorkloadType wt in Enum.GetValues(typeof(WorkloadType)))
            {
                workload.Add((System.Nullable <short>)wt, wt.ToString().Replace('_', ' '));
            }

            BindingSource workloadBindingSource = new BindingSource();
            workloadBindingSource.DataSource = workload;
            #endregion


            updatedataGridViewEmployeeInSchoolYear();

            this.WindowState = FormWindowState.Maximized;
        }
        private void updateParameters()
        {
            //labelTotalFormalWorkloadValue.Text = (eisy.Post.RateInHoursInSchoolYear(eisy.SchoolYear)*
            //    eisy.RateForm).ToString();
            labelTotalFormalWorkloadValue.Text = eisy.RateInHours.ToString();

            labelFactPochFondText.Text = " - в т.ч. почасовой фонд (лимит " + eisy.PochFondLimit.ToString() + "):";

            Employee             pf     = myDatabase.Employee.FirstOrDefault(p => p.Id == iCathedra_Settings.PochFondKod);
            EmployeeInSchoolYear eisypf = new EmployeeInSchoolYear(pf, eisy.SchoolYear);

            labelPochNagruzValue.Text = String.Format("{0}/{1}/{2}",
                                                      eisypf.Post.RateInHoursInSchoolYear(eisypf.SchoolYear),
                                                      eisypf.WorkloadForm,
                                                      eisypf.Post.RateInHoursInSchoolYear(eisypf.SchoolYear) - eisypf.WorkloadForm);

            labelFormalWorkloadValue.Text = eisy.WorkloadForm.ToString();
            if (eisy.IsOverload || eisy.IsUnderload)
            {
                labelFormalWorkloadValue.BackColor = Color.LightCoral;
            }
            else
            {
                labelFormalWorkloadValue.BackColor = Color.LightGreen;
            }

            labelUnderloadValue.Text = eisy.Underload.ToString();
            if (eisy.IsUnderload)
            {
                labelUnderloadValue.BackColor = Color.LightCoral;
            }
            else if (eisy.Underload == 0)
            {
                labelUnderloadValue.BackColor = this.BackColor;
            }
            else
            {
                labelUnderloadValue.BackColor = Color.LightGreen;
            }

            labelOverloadValue.Text = eisy.Overload.ToString();
            if (eisy.IsOverload)
            {
                labelOverloadValue.BackColor = Color.LightCoral;
            }
            else if (eisy.Overload == 0)
            {
                labelOverloadValue.BackColor = this.BackColor;
            }
            else
            {
                labelOverloadValue.BackColor = Color.LightGreen;
            }

            labelFactValue.Text = eisy.WorkloadFact.ToString();

            labelFactOtherTutorValue.Text = eisy.WorkloadFactTutor.ToString();

            labelFactPochFondValue.Text = eisy.WorkloadFactPochFond.ToString();
            if (eisy.IsPochFondOverload)
            {
                labelFactPochFondValue.BackColor = Color.LightCoral;
            }
        }
 public FormEmployeeInSchoolYearEdit(EmployeeInSchoolYear Aeisy, Database AmyDatabase)
 {
     InitializeComponent();
     eisy       = Aeisy;
     myDatabase = AmyDatabase;
 }
Пример #8
0
        private void данныеДляРасчетаВыплатМеждуПреподавателямиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Database             myDatabase = new Database("Database.sdf");
            FormSelectSchoolYear fssy       = new FormSelectSchoolYear();

            fssy.ShowDialog();
            if (fssy.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                List <string> ls = new List <string>();
                ls.Add("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
                ls.Add("<html>");
                ls.Add(" <head>");
                ls.Add("  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">");
                ls.Add("  <title>Данные для выплат компенсаций</title>");
                ls.Add(" </head>");
                ls.Add(" <body>");
                ls.Add("<h1 align=\"center\">Данные для выплат компенсаций</h1>");
                string s = String.Format("учебной нагрузки для заочников на {0} учебного года", fssy.SelectedSchoolYear.Years);
                ls.Add("<p align=\"center\">" + s + "</p>");
                ls.Add("<table border=\"1\">");
                ls.Add("<thead>");
                ls.Add("<tr>");
                ls.Add("<td><b>Преподаватель</b></td>");
                ls.Add("<td><b>Объем формальной нагрузки</b></td>");
                ls.Add("<td><b>Нагрузка всего</b></td>");
                ls.Add("<td><b>Доля формальной нагрузки (%)</b></td>");
                ls.Add("<td><b>Ежемесячные выплаты чистыми</b></td>");
                ls.Add("<td><b>Сумма ежемесячной компенсации</b></td>");
                ls.Add("</tr>");
                ls.Add("<tr>");
                ls.Add("<td align=\"center\">1</td>");
                ls.Add("<td align=\"center\">2</td>");
                ls.Add("<td align=\"center\">3</td>");
                ls.Add("<td align=\"center\">4</td>");
                ls.Add("<td align=\"center\">5</td>");
                ls.Add("<td align=\"center\">6</td>");
                ls.Add("</tr>");
                ls.Add("</thead>");
                ls.Add("<tbody>");
                foreach (Employee ee in myDatabase.Employee)
                {
                    EmployeeInSchoolYear           eisy = new EmployeeInSchoolYear(ee, fssy.SelectedSchoolYear);
                    Dictionary <Employee, decimal> d    = eisy.SplitByFormalEmployee(myDatabase.CourseInWork.ToList <CourseInWork>());
                    if (d.Count > 0)
                    {
                        ls.Add("<tr><td colspan=\"6\"><h3>" + ee.ToString() + "</h3></td></tr>");
                        foreach (KeyValuePair <Employee, decimal> kvp in d)
                        {
                            EmployeeInSchoolYear associtedEmployee = new EmployeeInSchoolYear(kvp.Key, fssy.SelectedSchoolYear);
                            decimal totalformworkload = associtedEmployee.WorkloadForm;

                            ls.Add("<tr align=\"center\">");
                            ls.Add(String.Format("<td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td>",
                                                 kvp.Key.ToString(),
                                                 kvp.Value,
                                                 totalformworkload,
                                                 Math.Round(kvp.Value * 100 / totalformworkload, 2),
                                                 associtedEmployee.Salary,
                                                 Math.Round(kvp.Value * associtedEmployee.Salary / totalformworkload, 2)
                                                 ));
                            ls.Add("</tr>");
                        }
                    }
                }
                ls.Add("</tbody>");
                ls.Add("</table>");
                ls.Add("</body>");
                File.WriteAllLines("CrossPay.html", ls.ToArray(), Encoding.GetEncoding(1251));
                Process.Start("CrossPay.html");

                //var q = from ciw in myDatabase.CourseInWork
                //        where ciw.SchoolYearID == fssy.SelectedSchoolYear.ID
                //        orderby ciw.EmployeeID, ciw.CourseID
                //        select ciw;
                //List<CourseInWork> lci = new List<CourseInWork>();
                //foreach (CourseInWork ciw in q)
                //{
                //    if (ciw.Fact == (short)WorkloadType.Фактическая && ciw.Employee.PostID != 5)
                //    {
                //        CourseInWork ciwTwin = ciw.GetTwin(q);
                //        if (ciwTwin == null)
                //            throw new Exception("У курса " + ciw.FullName + " не может отсутствовать двойник.");
                //        if (ciwTwin.Employee.PostID == 5)
                //            twinCourses.Add(ciw);
                //    }
                //}
            }
        }