public static EmployerUnemploymentInsurance CalculateEmployerUnemploymentInsurance( SalaryConfig salaryConfig, EmployeeMonthlyRecord employeeMonthlyRecord, InsuranceSalary insuranceSalary) { return(new EmployerUnemploymentInsurance(Calculate( employeeMonthlyRecord: employeeMonthlyRecord, minimumWage: salaryConfig.RegionalMinimumWage, coefficientSocialCare: salaryConfig.CoefficientSocialCare, rateOfDeductionOfCompulsoryInsurance: employeeMonthlyRecord.IsForeigner ? salaryConfig.ForeignEmployerUnemploymentInsuranceRate : salaryConfig.EmployerUnemploymentInsuranceRate, amount: insuranceSalary.Amount))); }
public static EmployerUnionFee CalculateEmployerUnionFee( SalaryConfig salaryConfig, EmployeeMonthlyRecord employeeMonthlyRecord, InsuranceSalary insuranceSalary) { var unionEmployerRate = employeeMonthlyRecord.InUnion ? salaryConfig.EmployerUnionFeeRate - salaryConfig.EmployeeUnionFeeRate : salaryConfig.EmployerUnionFeeRate; return(new EmployerUnionFee(Calculate( employeeMonthlyRecord: employeeMonthlyRecord, minimumWage: salaryConfig.CommonMinimumWage, coefficientSocialCare: salaryConfig.CoefficientSocialCare, rateOfDeductionOfCompulsoryInsurance: unionEmployerRate, amount: insuranceSalary.Amount))); }
public static EmployeeUnionFee CalculateEmployeeUnionFee( SalaryConfig salaryConfig, EmployeeMonthlyRecord employeeMonthlyRecord, InsuranceSalary insuranceSalary) { if (employeeMonthlyRecord.InUnion is false) { return(new EmployeeUnionFee(Money.ZeroVND)); } return(new EmployeeUnionFee(Calculate( employeeMonthlyRecord: employeeMonthlyRecord, minimumWage: salaryConfig.CommonMinimumWage, coefficientSocialCare: salaryConfig.MaximumUnionFeeRate, rateOfDeductionOfCompulsoryInsurance: 1m, amount: Calculate( employeeMonthlyRecord, salaryConfig.CommonMinimumWage, salaryConfig.CoefficientSocialCare, salaryConfig.EmployeeUnionFeeRate, insuranceSalary.Amount)))); }