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)));
 }
Esempio n. 2
0
 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));
        }