예제 #1
0
        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);
        }
예제 #2
0
        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();
        }