private static void ReportDeductiblesCalculationInfo(EmployeeSalaryCalculationResult result)
 {
     Console.WriteLine($"Koszty uzysku: {result.TotalDeductibles.ToString("0.00")}");
     //todo:Console.WriteLine($"Koszty uzysku za dojazd: {result.DriveExpenses.ToString("0.00")}");
     Console.WriteLine($"Prawa autorskie: {result.CopyrightLawsValue.ToString("0.00")}");
     Console.WriteLine($"Koszty z praw autorskich: {result.CopyrightLawsDeductibles.ToString("0.00")}");
     Console.WriteLine();
 }
        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 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 ReportSalaryNett(EmployeeSalaryCalculationResult result)
 {
     Console.WriteLine($"Pensja netto: {result.SalaryNett.ToString("0.00")}");
 }
 private static void ReportTaxBase(EmployeeSalaryCalculationResult result)
 {
     Console.WriteLine($"Podstawa opodatkowania (PIT): {result.TaxBase.ToString("0.00")}");
     Console.WriteLine();
 }
 private static void ReportTaxBase(EmployeeSalaryCalculationResult result, EmployeeSalaryCalculationContext context)
 {
     ReportSocialInsuranceContributionCalculationInfo(result, context);
     ReportDeductiblesCalculationInfo(result);
     ReportTaxBase(result);
 }
 public EmployeeSalaryCalculationResultBuilder CreateResult()
 {
     Result             = new EmployeeSalaryCalculationResult();
     Result.SalaryGross = SalaryGross;
     return(this);
 }