Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- decimal amount = 0;
- DateTime previousPayrollPeriodStart = employee.paymentDate != DateTime.MinValue ? employee.paymentDate.AddMonths(-1) : DateTime.MinValue;
- DateTime previousPayrollPeriodEnd = employee.paymentDate != DateTime.MinValue ? employee.paymentDate.AddDays(-1) : DateTime.MinValue;
- int previousPayrollPeriodDays = DateTime.DaysInMonth(previousPayrollPeriodStart.Year, previousPayrollPeriodStart.Month);
- DateTime previousPayrollMidPeriod = GetPreviousPayrollMidPeriod(employee.paymentDate);
- if (scenario == AmountCases.AllEmployee)
- {
- amount = employee.monthlyCostEmployee;
- }
- else if (scenario == AmountCases.AllEmployer)
- {
- amount = employee.monthlyCostEmployer;
- }
- else if (scenario == AmountCases.CompanyLeaver)
- {
- amount = employee.constantValueZero;
- }
- else if (scenario == AmountCases.FitnessSubsidyEr)
- {
- if(employee.periodEndDate.Month == 1)
- amount = employee.annualCostEmployer - employee.h_annualCostEmployer;
- }
- else if (scenario == AmountCases.HealthCareFullEr)
- {
- return employee.monthlyCostEmployerNoFee;
- }
- else if (scenario == AmountCases.HealthCareChangeEe && previousPayrollPeriodEnd != DateTime.MinValue && employee.elementBeginDate != DateTime.MinValue && previousPayrollPeriodStart != DateTime.MinValue)
- {
- amount = employee.monthlyCostEmployee + ((employee.monthlyCostEmployee / previousPayrollPeriodDays) * (previousPayrollPeriodEnd - employee.elementBeginDate).Days)
- + ((employee.h_monthlyCostEmployee / previousPayrollPeriodDays) * (employee.elementBeginDate - previousPayrollPeriodStart.AddDays(-1)).Days)
- - employee.h_monthlyCostEmployee;
- }
- else if (scenario == AmountCases.HealthCareChangeEr && previousPayrollPeriodEnd != DateTime.MinValue && employee.elementBeginDate != DateTime.MinValue && previousPayrollPeriodStart != DateTime.MinValue)
- {
- amount = employee.monthlyCostEmployer + ((employee.monthlyCostEmployer / previousPayrollPeriodDays) * (previousPayrollPeriodEnd - employee.elementBeginDate).Days)
- + ((employee.h_monthlyCostEmployer / previousPayrollPeriodDays) * (employee.elementBeginDate - previousPayrollPeriodStart.AddDays(-1)).Days)
- - employee.h_monthlyCostEmployer;
- }
- else if (scenario == AmountCases.HealthCareLeaverEe && employee.leavingDate != DateTime.MinValue && previousPayrollPeriodStart != DateTime.MinValue)
- {
- amount = ((employee.h_monthlyCostEmployee / previousPayrollPeriodDays) * (employee.leavingDate - previousPayrollPeriodStart.AddDays(-1)).Days) - employee.h_monthlyCostEmployee;
- }
- else if (scenario == AmountCases.HealthCareLeaverEr && employee.leavingDate != DateTime.MinValue && previousPayrollPeriodStart != DateTime.MinValue)
- {
- amount = ((employee.h_monthlyCostEmployer / previousPayrollPeriodDays) * (employee.leavingDate - previousPayrollPeriodStart.AddDays(-1)).Days) - employee.h_monthlyCostEmployer;
- }
- else if (scenario == AmountCases.HealthCareJoinerEe && previousPayrollPeriodEnd != DateTime.MinValue)
- {
- amount = employee.monthlyCostEmployee + ((employee.monthlyCostEmployee / previousPayrollPeriodDays) * (previousPayrollPeriodEnd - employee.elementBeginDate).Days);
- }
- else if (scenario == AmountCases.HealthCareJoinerEr && previousPayrollPeriodEnd != DateTime.MinValue)
- {
- amount = employee.monthlyCostEmployer + ((employee.monthlyCostEmployer / previousPayrollPeriodDays) * (previousPayrollPeriodEnd - employee.elementBeginDate).Days);
- }
- else if (scenario == AmountCases.LaLtdFullEr)
- {
- amount = employeeInputList.Where(x => AreEqual(x.benefit, lifeAssurance) || AreEqual(x.benefit, longTermDisability)).Sum(y => y.monthlyCostEmployer);
- }
- else if (scenario == AmountCases.LaLtdPreJoinerEr && previousPayrollPeriodEnd != DateTime.MinValue)
- {
- amount = employeeInputList.Where(x => AreEqual(x.benefit, lifeAssurance) || AreEqual(x.benefit, longTermDisability))
- .Sum(y => (y.monthlyCostEmployer + ((y.monthlyCostEmployer / previousPayrollPeriodDays) * (previousPayrollPeriodEnd - previousPayrollMidPeriod).Days)));
- }
- else if (scenario == AmountCases.LaLtdPostLeaverEr && previousPayrollMidPeriod != DateTime.MinValue && previousPayrollPeriodStart != DateTime.MinValue)
- {
- amount = employeeInputList.Where(x => AreEqual(x.benefit, lifeAssurance) || AreEqual(x.benefit, longTermDisability))
- .Sum(y => (((y.h_monthlyCostEmployer / previousPayrollPeriodDays) * (previousPayrollMidPeriod - previousPayrollPeriodStart.AddDays(-1)).Days) - y.h_monthlyCostEmployer));
- }
- return amount;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement