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(); }
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; }
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); }