public static EmployeeSalaryCalculationResultBuilder CalculateSocialInsurance( this EmployeeSalaryCalculationResultBuilder builder, EmployeeSocialInsuranceSetting setting) { return(builder .Calculate(() => builder.Result.RetirementInsurance = builder.SalaryGross.GetPercent(setting.RetirementInsurancePercent)) .Calculate(() => builder.Result.DisabilityPensionInsurance = builder.SalaryGross.GetPercent(setting.DisabilityPensionInsurancePercent)) .Calculate(() => builder.Result.SicknessInsurance = builder.SalaryGross.GetPercent(setting.SicknessInsurancePercent)) .Calculate(() => builder.Result.TotalSocialInsurance = builder.SalaryGross.GetPercent(setting.TotalPercent))); }
public static EmployeeSalaryCalculationResultBuilder CalculateTax( this EmployeeSalaryCalculationResultBuilder builder, decimal taxBase, decimal taxMonthlyExemption, decimal healthInsuranceDeductibles) { return(builder .Calculate(() => builder.Result.Tax = Math.Round(Math.Max(0, CalculateTax(taxBase)) - taxMonthlyExemption - healthInsuranceDeductibles))); }
public static EmployeeSalaryCalculationResultBuilder CalculateSalaryNett( this EmployeeSalaryCalculationResultBuilder builder, decimal tax, decimal totalSocialInsurance, decimal healthInsurance) { return(builder .Calculate(() => builder.Result.SalaryNett = Math.Round(builder.SalaryGross - tax - totalSocialInsurance - healthInsurance))); }
public static EmployeeSalaryCalculationResultBuilder CalculateHealthInsurance( this EmployeeSalaryCalculationResultBuilder builder, decimal totalSocialInsurance, EmployeeHealthInsuranceSetting setting) { var salaryMinusSocial = builder.SalaryGross - totalSocialInsurance; return(builder .Calculate(() => builder.Result.HealthInsurance = salaryMinusSocial.GetPercent(setting.HealthInsurancePercent)) .Calculate(() => builder.Result.HealthInsuranceDeductibles = Math.Round(salaryMinusSocial.GetPercent(setting.DeductibleHealthInsurancePercent))) .Calculate(() => builder.Result.HealthInsurancePaidFromNett = builder.Result.HealthInsurance - builder.Result.HealthInsuranceDeductibles)); }