Пример #1
0
        public void Init()
        {
            _allTeachers   = new ObservableCollection <Teacher>(_dbContext.Teachers.Include(t => t.Payslips));
            _teachers      = _allTeachers;
            _selectedMonth = DateTime.Now.Month;
            _selectedYear  = 0;

            _monthsList = new List <string>(new string[] { "Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
                                                           "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" });
            _yearsList = new List <string>();
            for (var i = 2019; i < DateTime.Now.Year + 4; i++)
            {
                _yearsList.Add(i + "/" + (i + 1));
            }



            _payroll = _dbContext.MonthlyPayrolls.FirstOrDefault(p => p.Month == _selectedMonth && p.AcademicYear == _yearsList[_selectedYear]);

            _paymentTypesList = new List <string>(new string[] { "Espèces", "Chèque", "Virement bancaire" });

            _gradesList        = Enum.GetNames(typeof(TeacherGrade)).ToList();
            _statusList        = Enum.GetNames(typeof(TeacherStatus)).ToList();
            _contractTypesList = Enum.GetNames(typeof(ContractType)).ToList();
        }
Пример #2
0
        public void CreatePayroll(int month, string year)
        {
            MonthlyPayroll payroll;

            var payrollRecords = context.PayrollRecords
                                 .Where(p => p.Payroll.Month == month && p.Payroll.AcademicYear == year && p.Teacher.Status == TeacherStatus.Vacataire)
                                 .Include(p => p.Payroll)
                                 .ToList();

            if (payrollRecords != null && payrollRecords.Count > 0)
            {
                payroll = payrollRecords[0].Payroll;
            }
            else
            {
                payroll = context.MonthlyPayrolls
                          .Where(p => p.Month == month && p.AcademicYear == year)
                          .FirstOrDefault();
                if (payroll == null)
                {
                    payroll = new MonthlyPayroll
                    {
                        Month        = month,
                        AcademicYear = year
                    };

                    payroll.Records = new List <PayrollRecord>();
                    context.MonthlyPayrolls.Add(payroll);
                }
            }

            //var payroll = context.MonthlyPayrolls
            //    .Where(p => p.Month == month && p.AcademicYear == year)
            //    .Include(p => p.Records)
            //    .ThenInclude(r => (r as PayrollRecord).Teacher)
            //    .FirstOrDefault();


            foreach (var teacher in context.Teachers.Where(t => t.Status == TeacherStatus.Vacataire).ToList())
            {
                var record = context.PayrollRecords.FirstOrDefault(pr => pr.TeacherId == teacher.Id && pr.PayrollId == payroll.Id);
                if (record == null)
                {
                    record = new PayrollRecord {
                        Teacher = teacher, HoursCount = 0, Rate = teacher.Rate, Payroll = _payroll, Retenu = 0.15
                    };
                    context.PayrollRecords.Add(record);
                }
                payroll.Records.Add(record);
            }

            _payroll = payroll;
        }
Пример #3
0
        public List <PayrollRecord> CreateMissingPayrollRecords(MonthlyPayroll payroll)
        {
            var records = new List <PayrollRecord>();

            foreach (var teacher in context.Teachers.Where(t => t.Status == TeacherStatus.Vacataire).ToList())
            {
                var record = new PayrollRecord {
                    Teacher = teacher, HoursCount = 0, Rate = teacher.Rate, Payroll = _payroll, Retenu = 0.15
                };
                if (!payroll.Records.Select(prVM => prVM.Teacher.Id).Contains(teacher.Id))
                {
                    records.Add(record);
                    context.PayrollRecords.Add(record);
                }
            }
            return(records);
        }