Exemplo n.º 1
0
        public async Task <List <PayrunDetail_Dto> > GetAllDetails()
        {
            List <PayrunDetail> list = (await PayrunDetailsRepo.GetListAsync(false));

            return(ObjectMapper.Map <List <PayrunDetail>, List <PayrunDetail_Dto> >(list));
        }
Exemplo n.º 2
0
        private IActionResult OnGetPayslip(int month, int year, Guid employeeId)
        {
            PayrunDetail payrunDetail = new PayrunDetail();

            if (year != 0 && month != 0 && employeeId != Guid.Empty)
            {
                payrunDetail = PayrunDetailsRepo.WithDetails().SingleOrDefault(x => x.Year == year && x.Month == month && x.EmployeeId == employeeId);
            }

            List <dynamic> dynamicDS = new List <dynamic>();

            dynamic dynamicDSRow = new ExpandoObject();

            dynamic employeeDynamic = new ExpandoObject();

            dynamicDSRow.basicSalary = payrunDetail.BasicSalary;
            //dynamicDSRow.getCompanyName = payrunDetail.Employee.Department.Company.CompanyName;
            //dynamicDSRow.getCompanyAddress = payrunDetail.Employee.Department.Company.CompanyLocations.ToArray()[0].Location.LocationName;
            dynamicDSRow.getEmployeeReferenceId = payrunDetail.Employee.GetReferenceId;
            dynamicDSRow.getEmployeeName        = payrunDetail.Employee.Name;
            //dynamicDSRow.getEmployeeDepartmentName = payrunDetail.Employee.Department.Name;
            //dynamicDSRow.getEmployeePositionTitle = payrunDetail.Employee.Position.Title;

            dynamicDSRow.getPeriod = $"{payrunDetail.Month.ToString().PadLeft(2, '0')}/{payrunDetail.Year.ToString().PadLeft(2, '0')}";

            dynamicDSRow.Earnings = new List <KeyValuePair <string, string> >();
            foreach (PayrunAllowanceSummary allowanceSummary in payrunDetail.PayrunAllowancesSummaries)
            {
                DictionaryValue allowance     = allowanceSummary.AllowanceType;
                string          camelCaseName = allowance.Value;
                camelCaseName = camelCaseName.Replace(" ", "");
                camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1);
                KeyValuePair <string, string> keyValuePair = new KeyValuePair <string, string>(allowance.Value, "" + allowanceSummary.Value.ToString("N2"));
                dynamicDSRow.Earnings.Add(keyValuePair);
                //DynamicHelper.AddProperty(dynamicDSRow, $"{camelCaseName}_Value", allowanceSummary.Value);
            }
            dynamicDSRow.grossEarnings = payrunDetail.GrossEarnings;
            dynamicDSRow.Deductions    = new List <KeyValuePair <string, string> >();

            dynamicDSRow.gosiValue = payrunDetail.GOSIAmount;
            dynamicDSRow.Deductions.Add(new KeyValuePair <string, string>("GOSI", "" + dynamicDSRow.gosiValue.ToString("N2")));
            dynamicDSRow.loansValue = payrunDetail.Loan;
            dynamicDSRow.Deductions.Add(new KeyValuePair <string, string>("Loans", "" + dynamicDSRow.loansValue.ToString("N2")));
            dynamicDSRow.leavesValue = payrunDetail.Leaves;
            dynamicDSRow.Deductions.Add(new KeyValuePair <string, string>("Leaves", "" + dynamicDSRow.leavesValue.ToString("N2")));
            dynamicDSRow.grossDeductions = payrunDetail.GrossDeductions;

            dynamicDSRow.netAmount = payrunDetail.NetAmount;

            dynamicDS.Add(dynamicDSRow);

            dynamicDSRow.Payments = new List <PayslipVM>();
            double bs         = (double)payrunDetail.BasicSalary;
            double rate       = double.Parse((bs / (45 * 5)).ToString("N2"));
            double totalHours = payrunDetail.EmployeeTimesheet.TotalMonthHours;

            dynamicDSRow.Payments.Add(new PayslipVM("Basic Salary", "Salary", rate, totalHours, rate * totalHours));
            dynamicDSRow.TotalPayments = (dynamicDSRow.Payments as List <PayslipVM>).Sum(x => x.Amount);
            dynamicDSRow.TotalHours    = (dynamicDSRow.Payments as List <PayslipVM>).Sum(x => x.Hours);

            if (payrunDetail == null)
            {
                return(StatusCode(500));
            }
            else
            {
                return(PartialView("_Payslip", dynamicDSRow));
            }
        }