public static EmployeeSalaryCalculationResultBuilder CalculateTaxMonthlyExemption(
     this EmployeeSalaryCalculationResultBuilder builder)
 {
     // 1/12 z kwoty wolnej od podatku (bo jest ona roczna)
     // od 2018r wyliczana inaczej w zaleznosci od podstawy opodatkowania
     return(builder
            .Calculate(() => builder.Result.TaxMonthlyExemption = 560m / 12));
 }
Esempio n. 2
0
        public void PermanentContract__SalaryGross_eq__SocialInsuranceCost_eq(
            decimal salaryGross,
            decimal expectedValue)
        {
            // arrange
            var setting = EmployeeExampleValues.SocialInsuranceSetting;
            var builder = new EmployeeSalaryCalculationResultBuilder();

            // act
            var result = builder
                         .SetSalaryGross(salaryGross)
                         .CreateResult()
                         .CalculateSocialInsurance(setting)
                         .Result
                         .TotalSocialInsurance;

            // assert
            result.Should().Be(expectedValue);
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        public void PermanentContract__SalaryGross_eq__HealthInsurance_eq(
            decimal salaryGross,
            decimal expectedHealthInsurance,
            decimal expectedHealthInsuranceDeductibles)
        {
            // arrange
            var socialSetting = EmployeeExampleValues.SocialInsuranceSetting;
            var healthSetting = EmployeeExampleValues.HealthInsuranceSetting;
            var builder       = new EmployeeSalaryCalculationResultBuilder();

            // act
            var result = builder
                         .SetSalaryGross(salaryGross)
                         .CreateResult()
                         .CalculateSocialInsurance(socialSetting)
                         .CalculateHealthInsurance(builder.Result.TotalSocialInsurance, healthSetting)
                         .Result;

            // assert
            result.HealthInsurance.Should().Be(expectedHealthInsurance);
            result.HealthInsuranceDeductibles.Should().Be(expectedHealthInsuranceDeductibles);
        }
Esempio n. 5
0
        public void PermanentContract__SalaryGross_eq_and_CopyrightLawsPercent_eq_and__TaxBase_eq(
            decimal salaryGross,
            float copyrightLawsPercent,
            decimal expectedValue)
        {
            // arrange
            var setting = EmployeeExampleValues.SocialInsuranceSetting;
            var employmentRelationshipTaxDeductibles = EmployeeExampleValues.EmploymentRelationshipTaxSetting.DeductiblesAmount;
            var builder = new EmployeeSalaryCalculationResultBuilder();

            // act
            var result = builder
                         .SetSalaryGross(salaryGross)
                         .CreateResult()
                         .CalculateSocialInsurance(setting)
                         .CalculateTaxBase(copyrightLawsPercent, builder.Result.TotalSocialInsurance, employmentRelationshipTaxDeductibles)
                         .Result
                         .TaxBase;

            // assert
            result.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();
        }