private static void ReportTax(EmployeeSalaryCalculationResult result, EmployeeSalaryCalculationContext context) { var taxRelief = result.TaxMonthlyExemption; Console.WriteLine($"Ulga podatkowa: {taxRelief.ToString("0.00")}"); Console.WriteLine($"Podatek dochodowy (PIT)"); Console.WriteLine($"({TaxThreshold._18}% * podstawa opodatkowania - ulga - NFZ z podatku): {result.Tax.ToString("0.00")}"); Console.WriteLine(); }
public void Report(EmployeeSalaryCalculationResult result, EmployeeSalaryCalculationContext context) { //todo: zaokraglenia a nie format ReportSalaryGross(result.SalaryGross); ReportTaxBase(result, context); ReportHealthInsuranceContribution(result); ReportTax(result, context); ReportSalaryNett(result); }
private EmployeeSalaryCalculationResult CalculateEmployeePart(decimal salaryGross, float copyrightLawsPercent) { var employeeSalaryCalculationContext = new EmployeeSalaryCalculationContext { Parameters = new EmployeeParameters { SocialInsuranceSetting = EmployeeExampleValues.SocialInsuranceSetting, EmploymentRelationshipTaxSetting = EmployeeExampleValues.EmploymentRelationshipTaxSetting, HealthInsuranceSetting = EmployeeExampleValues.HealthInsuranceSetting } }; return(_employeeSalaryCalculator.Calculate(salaryGross, copyrightLawsPercent, employeeSalaryCalculationContext)); }
public void PermanentContract__SalaryGross_eq_and_CopyrightLawsPercent_eq__Tax_eq( decimal salaryGross, float copyrightLawsPercent, decimal expectedValue) { // arrange var builder = new EmployeeSalaryCalculationResultBuilder(); var calculator = new EmployeeSalaryCalculator(builder); var context = new EmployeeSalaryCalculationContext(); context.Parameters.SocialInsuranceSetting = EmployeeExampleValues.SocialInsuranceSetting; context.Parameters.HealthInsuranceSetting = EmployeeExampleValues.HealthInsuranceSetting; context.Parameters.EmploymentRelationshipTaxSetting = EmployeeExampleValues.EmploymentRelationshipTaxSetting; // act var calculationResult = calculator.Calculate(salaryGross, copyrightLawsPercent, context); // assert calculationResult.Tax.Should().Be(expectedValue); }
static void Main(string[] args) { var builder = new EmployeeSalaryCalculationResultBuilder(); var calculator = new EmployeeSalaryCalculator(builder); var consoleReporter = new PermanentContractSalaryCalculationConsoleReporter(); var context = new EmployeeSalaryCalculationContext { Parameters = new EmployeeParameters { SocialInsuranceSetting = EmployeeExampleValues.SocialInsuranceSetting, EmploymentRelationshipTaxSetting = EmployeeExampleValues.EmploymentRelationshipTaxSetting, HealthInsuranceSetting = EmployeeExampleValues.HealthInsuranceSetting } }; var calculationResult = calculator.Calculate(13000m, 80f, context); consoleReporter.Report(calculationResult, context); Console.WriteLine("Wcisnij <ENTER> aby zakonczyc"); Console.ReadLine(); }
private static void ReportSocialInsuranceContributionCalculationInfo(EmployeeSalaryCalculationResult result, EmployeeSalaryCalculationContext context) { var socialContributionParameters = context.Parameters.SocialInsuranceSetting; Console.WriteLine($"ZUS emer. ({socialContributionParameters.RetirementInsurancePercent.ToString("0.00")}%): {result.RetirementInsurance.ToString("0.00")}"); Console.WriteLine($"ZUS rent. ({socialContributionParameters.DisabilityPensionInsurancePercent.ToString("0.00")}%): {result.DisabilityPensionInsurance.ToString("0.00")}"); Console.WriteLine($"ZUS chor. ({socialContributionParameters.SicknessInsurancePercent.ToString("0.00")}%): {result.SicknessInsurance.ToString("0.00")}"); Console.WriteLine($"ZUS ({socialContributionParameters.TotalPercent.ToString("0.00")}%): {result.TotalSocialInsurance.ToString("0.00")}"); Console.WriteLine(); }
private static void ReportTaxBase(EmployeeSalaryCalculationResult result, EmployeeSalaryCalculationContext context) { ReportSocialInsuranceContributionCalculationInfo(result, context); ReportDeductiblesCalculationInfo(result); ReportTaxBase(result); }