Example #1
0
        public static IEnumerable <SalaryModel> GetSalary(ITermsManager termsManager, IEmployeeRateRspManager employeeRateRspManager,
                                                          IEmployeesManager employeeManager, DateTime fromDate, DateTime toDate)
        {
            var result = new List <SalaryModel>();

            var rates     = employeeRateRspManager.GetEntities(o => o.SalaryTypes == SalaryTypes.Monthly).ToList(); //TODO delete check ?
            var employees = employeeManager.GetEntities().ToList();

            foreach (var employee in employees)
            {
                double amount = 0;
                for (var date = fromDate; date < toDate; date = date.AddMonths(1))
                {
                    var rate = rates.Where(o => o.EmployeeId == employee.Id && o.FromDate <= date && date <= o.ToDate).FirstOrDefault();

                    if (rate != null)
                    {
                        amount += rate.Salary;
                    }
                }

                result.Add(new SalaryModel()
                {
                    Id           = employee.Id,
                    employeeName = employee.Name,
                    amountString = amount.ToString("N2") + " EUR",
                    amount       = amount,
                });
            }

            var workHours = WorkHoursHelper.GetWorkHours(termsManager, employeeRateRspManager, employeeManager, fromDate, toDate, null);

            foreach (var group in workHours.GroupBy(o => o.employeeId))
            {
                var model  = result.FirstOrDefault(o => o.Id == group.Key);
                var amount = group.Sum(o => o.amount);
                if (model == null)
                {
                    model = new SalaryModel()
                    {
                        Id           = group.Key,
                        employeeName = employees.FirstOrDefault(o => o.Id == group.Key).Name,
                        amountString = amount.ToString("N2") + " EUR",
                        amount       = amount,
                    };

                    result.Add(model);
                }
                else
                {
                    model.amount      += amount;
                    model.amountString = model.amount.ToString("N2") + " EUR";
                }
            }

            return(result);
        }
Example #2
0
        protected IEnumerable <WorkHoursModel> GetEntities(Filtering filtering)
        {
            var fromDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            var toDate   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));

            int?employeeId = null;

            GetFilters(filtering, ref fromDate, ref toDate, ref employeeId);
            var result = WorkHoursHelper.GetWorkHours(termsManager, employeeRateRspManager, employeeManager, fromDate, toDate, employeeId);

            return(result.OrderByDescending(o => o.date));
        }