public async Task <List <TotalsForChartModel> > TotalHoursForCharts(int year) { var totalHoursList = new List <TotalsForChartModel>(); for (int i = 1; i < 13; i++) { var totalsModel = new TotalsForChartModel { Month = MonthConverter.ConvertIntToMonth(i) }; totalHoursList.Add(totalsModel); } foreach (var model in totalHoursList) { var month = MonthConverter.ConvertIntToMaand(MonthConverter.ConvertMonthToInt(model.Month)); var entities = await context.DeclarationForms.Where(d => d.Month == month && d.Year == year).ToListAsync(); foreach (var entity in entities) { model.TotalHoliday += entity.TotalHoliday; model.TotalOther += entity.TotalOther; model.TotalOvertime += entity.TotalOvertime; model.TotalSickness += entity.TotalSickness; model.TotalTraining += entity.TotalTraining; model.TotalVacation += entity.TotalVacation; model.TotalWorkedHours += entity.TotalWorkedHours; } ; } return(totalHoursList); }
public async Task CreateForm(string employeeId) { var entities = context.DeclarationForms.Where(p => p.EmployeeId == employeeId).ToList(); var formModels = EntitiesToDeclarationFormModels(entities); var ascendingModels = formModels.OrderBy(p => p.monthyear).ToList(); if (formModels.Count() > 0) { var LastMonth = GetFormFromGap(ascendingModels); var monthInt = 0; var entity = new DeclarationFormModel(); if (LastMonth != null) { entity = LastMonth; monthInt = MonthConverter.ConvertMonthToInt(LastMonth.Month) + 1; } else { entity = ascendingModels[ascendingModels.Count() - 1]; monthInt = MonthConverter.ConvertMonthToInt(entity.Month) + 1; } if (monthInt == 13) { monthInt = 1; } var monthString = MonthConverter.ConvertIntToMaand(monthInt); var year = entity.Year; if (monthString == "Januari") { year += 1; } if (monthInt == 1) { monthInt = 13; } if (monthInt == 2 && DateTime.Now.Month != 1) { monthInt = 14; } if (monthInt <= DateTime.Now.Month + 1) { var form = new DeclarationForm { EmployeeId = employeeId, Month = monthString, Year = year, uniqueId = GenerateUniqueId(), Approved = "Pending", Submitted = false, TotalWorkedHours = 0, TotalOvertime = 0, TotalSickness = 0, TotalVacation = 0, TotalHoliday = 0, TotalTraining = 0, TotalOther = 0, DateCreated = DateTime.Now }; await context.DeclarationForms.AddAsync(form); } else { return; } } else { var form = new DeclarationForm { EmployeeId = employeeId, Month = MonthConverter.ConvertIntToMaand(DateTime.Now.Month), Year = DateTime.Now.Year, uniqueId = GenerateUniqueId(), Approved = "Pending", Submitted = false, TotalWorkedHours = 0, TotalOvertime = 0, TotalSickness = 0, TotalVacation = 0, TotalHoliday = 0, TotalTraining = 0, TotalOther = 0, DateCreated = DateTime.Now }; await context.DeclarationForms.AddAsync(form); } await context.SaveChangesAsync(); }