Exemplo n.º 1
0
    def test_scale1_income_7500_right_boundary_one_child(self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 8627.64
        tax_variables.marital_status = 'single'
        tax_variables.handicapped = False
        tax_variables.partner_income = 0
        tax_variables.partner_income_pension_or_interest = False
        tax_variables.children_handicapped = 0
        tax_variables.children = 1
        tax_variables.family_members = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.family_members_old = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.type_worker = 'bediende'

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = bruto_netto_simulator.calculate_netto(
        )

        self.assertEqual(round(rsz, 2), 1127.63)
        self.assertEqual(round(werk_bonus, 2), 0)
        self.assertEqual(round(taxable_wages, 2), 7500.01)
        self.assertEqual(round(tax, 2), 3287.26)
        self.assertEqual(round(tax_decreases, 2), 92)
        self.assertEqual(round(rsz_extra, 2), 60.94)
        self.assertEqual(round(netto, 2), 4243.81)
Exemplo n.º 2
0
    def test_calculate_bruto_netto_single_arbeider_2000bruto_1child_handicapped_no_family(
            self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 2000.0
        tax_variables.marital_status = 'single'
        tax_variables.handicapped = False
        tax_variables.partner_income = 0
        tax_variables.partner_income_pension_or_interest = False
        tax_variables.family_members_old = 0
        tax_variables.family_members = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.children = 0
        tax_variables.children_handicapped = 1
        tax_variables.type_worker = 'arbeider'

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = bruto_netto_simulator.calculate_netto(
        )

        self.assertEqual(round(rsz, 2), 173.02)
        self.assertEqual(round(werk_bonus, 2), 109.29)
        self.assertEqual(round(taxable_wages, 2), 1826.98)
        self.assertEqual(round(tax, 2), 352.78)
        self.assertEqual(round(tax_decreases, 2), 188.09)
        self.assertEqual(round(rsz_extra, 2), 16.31)
        self.assertEqual(round(netto, 2), 1645.98)
    def test_calculate_bruto_netto_single_bediende_2000bruto_not_handicapped_1child_handicapped(
            self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 2000.0
        tax_variables.marital_status = 'single'
        tax_variables.handicapped = False
        tax_variables.partner_income = 0
        tax_variables.partner_income_pension_or_interest = False
        tax_variables.family_members_old = 0
        tax_variables.family_members = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.children = 0
        tax_variables.children_handicapped = 1
        tax_variables.type_worker = 'bediende'

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = bruto_netto_simulator.calculate_netto(
        )

        self.assertEqual(round(rsz, 2), 160.22)
        self.assertEqual(round(werk_bonus, 2), 101.18)
        self.assertEqual(round(taxable_wages, 2), 1839.78)
        self.assertEqual(round(tax, 2), 359.78)
        self.assertEqual(round(tax_decreases, 2), 185.82)
        self.assertEqual(round(rsz_extra, 2), 4.15)
        self.assertEqual(round(netto, 2), 1661.67)
Exemplo n.º 4
0
    def test_scale1_income_7500_no_boundary(self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 8950
        tax_variables.marital_status = 'single'
        tax_variables.handicapped = False
        tax_variables.partner_income = 0
        tax_variables.partner_income_pension_or_interest = False
        tax_variables.children_handicapped = 0
        tax_variables.children = 0
        tax_variables.family_members = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.family_members_old = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.type_worker = 'bediende'

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = bruto_netto_simulator.calculate_netto(
        )

        self.assertEqual(round(rsz, 2), 1169.77)
        self.assertEqual(round(werk_bonus, 2), 0)
        self.assertEqual(round(taxable_wages, 2), 7780.23)
        self.assertEqual(round(tax, 2), 3431.71)
        self.assertEqual(round(tax_decreases, 2), 24)
        self.assertEqual(round(rsz_extra, 2), 60.94)
        self.assertEqual(round(netto, 2), 4311.58)
Exemplo n.º 5
0
    def test_scale2_income_7500_should_not_be_high_income(self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 8627.63
        tax_variables.marital_status = 'married'
        tax_variables.handicapped = False
        tax_variables.partner_income = 0
        tax_variables.partner_income_pension_or_interest = False
        tax_variables.children_handicapped = 0
        tax_variables.children = 0
        tax_variables.family_members = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.family_members_old = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.type_worker = 'bediende'

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = bruto_netto_simulator.calculate_netto(
        )

        self.assertEqual(round(rsz, 2), 1127.63)
        self.assertEqual(round(werk_bonus, 2), 0)
        self.assertEqual(round(taxable_wages, 2), 7500)
        self.assertEqual(round(tax, 2), 2922.79)
        self.assertEqual(round(tax_decreases, 2), 0)
        self.assertEqual(round(rsz_extra, 2), 60.94)
        self.assertEqual(round(netto, 2), 4516.27)
Exemplo n.º 6
0
    def test_6_children_tax_decrease(self):
        tax_variables = TaxVariables()
        tax_variables.children = 6
        tax_variables.children_handicapped = 0
        tax_variables.family_members = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.family_members_old = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.partner_income = 0

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        decrease = bruto_netto_simulator.decrease_childeren_under_care()

        self.assertEqual(decrease, 887)
    def test_bijzondere_bijdrage_socialezekerheid_cat1_cat3_border_value_left_single_arbeider(
            self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 2027.94
        tax_variables.type_worker = 'arbeider'
        tax_variables.partner_income = 0
        tax_variables.family_members_old = 0
        tax_variables.family_members = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.children = 0
        tax_variables.children_handicapped = 0

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        added_rsz = bruto_netto_simulator.bijzondere_bijdrage_sociale_zekerheid(
        )

        self.assertEqual(round(added_rsz, 2), 18.6)
    def test_bijzondere_bijdrage_socialezekerheid_cat2_cat4_border_value_right_married_income_arbeider(
            self):
        tax_variables = TaxVariables()
        tax_variables.bruto = 5591.51
        tax_variables.type_worker = 'arbeider'
        tax_variables.marital_status = 'married'
        tax_variables.partner_income = 1500
        tax_variables.family_members_old = 0
        tax_variables.family_members = 0
        tax_variables.family_members_old_handicapped = 0
        tax_variables.family_members_handicapped = 0
        tax_variables.children = 0
        tax_variables.children_handicapped = 0

        bruto_netto_simulator = BrutoNettoSimulator(tax_variables, 2016)
        added_rsz = bruto_netto_simulator.bijzondere_bijdrage_sociale_zekerheid(
        )

        self.assertEqual(round(added_rsz, 2), 51.64)
Exemplo n.º 9
0
    def post(request):
        year = date.today().year
        data = request.data
        calculated_data = dict()

        if "income_info" in data:
            bruto_serializer = TaxVariablesSerializer(data=data["income_info"])
            bruto_serializer.is_valid()
            tax_variables = bruto_serializer.save()
            additions = 0.0
            decreases_of_budget = 0.0
            mobility_budget = 0.0
            social_budget = 0.0
            temp_budget = 0.0
            allowance = 0.0

            total_budget = BudgetAdvantages(tax_variables.bruto, 0,
                                            year).calculate_budget()

            if "car" in data:
                tax_addition, temp_budget, budget_decrease = FipCalculator.mobility_car_calc(
                    data["car"], year, tax_variables.bruto)
                additions += tax_addition
                decreases_of_budget += budget_decrease
                mobility_budget += budget_decrease

            if "bike" in data:
                tax_addition, budget_decrease = FipCalculator.mobility_bike_calc(
                    data["bike"], year)
                additions += tax_addition
                decreases_of_budget += budget_decrease
                mobility_budget += budget_decrease

            if "tech" in data:
                tax_addition, budget_decrease = FipCalculator.tech_calc(
                    data["tech"], year)
                additions += tax_addition
                decreases_of_budget += budget_decrease
                calculated_data['tech_budget'] = budget_decrease

            if "allowance" in data:
                vergoeding_belast_vrij, vergoeding_belast = FipCalculator.mobility_allowance_calc(
                    data["allowance"], year)

            if "social_benefits" in data:
                budget_decrease = FipCalculator.social_benefits_calc(
                    data["social_benefits"], year)
                decreases_of_budget += budget_decrease
                social_budget = round(budget_decrease, 2)

            if "charity" in data:
                decreases_of_budget += data["charity"]

            simulator = BrutoNettoSimulator(tax_variables, year, additions)
            simulator_no_additions = BrutoNettoSimulator(tax_variables, year)
            rsz, werk_bonus, taxable_wages, tax, tax_decreases, rsz_extra, netto = simulator.calculate_netto(
            )
            rsz2, werk_bonus2, taxable_wages2, tax2, tax_decreases2, rsz_extra2, netto2 = \
                simulator_no_additions.calculate_netto()
            original_netto = netto2
            netto -= additions

            if temp_budget > 0:
                budget = round(temp_budget - decreases_of_budget, 2)
            else:
                budget = round(total_budget - decreases_of_budget, 2)

            end_budget_payment, total_end_budget_payment = FipCalculator(
            ).calculate_budgets(budget, total_budget, year)

            if "allowance" in data:
                # netto += vergoeding_belast + vergoeding_belast_vrij
                simulator_only_allowance = BrutoNettoSimulator(
                    tax_variables, year, vergoeding_belast)
                rsz_allowance, werk_bonus_allowance, taxable_wages_allowance, tax_allowance, tax_decreases_allowance,\
                rsz_extra_allowance, netto_only_allowance = \
                    simulator_only_allowance.calculate_netto()

                allowance = vergoeding_belast_vrij + netto_only_allowance - original_netto

            calculated_data['rsz'] = rsz
            calculated_data['werkbonus'] = werk_bonus
            calculated_data['taxable_wages'] = taxable_wages
            calculated_data['tax'] = tax
            calculated_data['tax_decreases'] = tax_decreases
            calculated_data['rsz_extra'] = rsz_extra
            calculated_data['netto'] = round(netto, 2)
            calculated_data['netto_without_options'] = round(original_netto, 2)
            calculated_data['budget'] = budget
            calculated_data[
                'total_budget'] = temp_budget if temp_budget > 0 else total_budget
            calculated_data['mobility_budget'] = round(mobility_budget, 2)
            calculated_data['end_budget_payment'] = end_budget_payment
            calculated_data[
                'total_end_budget_payment'] = total_end_budget_payment
            calculated_data['social_budget'] = social_budget
            calculated_data['allowance'] = round(allowance, 2)

        return Response(calculated_data)