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);
 }
示例#3
0
        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));
        }
示例#4
0
        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);
 }