Пример #1
0
 def test_for_parent_customer_group(self):
     tax_rule1 = make_tax_rule(
         customer_group="All Customer Groups",
         sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
         priority=1,
         from_date="2015-01-01")
     tax_rule1.save()
     self.assertEqual(
         get_tax_template("2015-01-01", {
             "customer_group": "Commercial",
             "use_for_shopping_cart": 0
         }), "_Test Sales Taxes and Charges Template - _TC")
Пример #2
0
    def test_select_tax_rule_based_on_tax_category(self):
        make_tax_rule(
            customer="_Test Customer",
            tax_category="_Test Tax Category 1",
            sales_tax_template="_Test Sales Taxes and Charges Template 1 - _TC",
            save=1)

        make_tax_rule(
            customer="_Test Customer",
            tax_category="_Test Tax Category 2",
            sales_tax_template="_Test Sales Taxes and Charges Template 2 - _TC",
            save=1)

        self.assertFalse(
            get_tax_template("2015-01-01", {"customer": "_Test Customer"}))

        self.assertEqual(
            get_tax_template(
                "2015-01-01", {
                    "customer": "_Test Customer",
                    "tax_category": "_Test Tax Category 1"
                }), "_Test Sales Taxes and Charges Template 1 - _TC")
        self.assertEqual(
            get_tax_template(
                "2015-01-01", {
                    "customer": "_Test Customer",
                    "tax_category": "_Test Tax Category 2"
                }), "_Test Sales Taxes and Charges Template 2 - _TC")

        make_tax_rule(
            customer="_Test Customer",
            tax_category="",
            sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
            save=1)

        self.assertEqual(
            get_tax_template("2015-01-01", {"customer": "_Test Customer"}),
            "_Test Sales Taxes and Charges Template - _TC")
Пример #3
0
    def test_select_tax_rule_based_cross_partially_keys(self):
        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City",
            sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
            save=1)

        make_tax_rule(
            billing_city="Test City 1",
            sales_tax_template="_Test Sales Taxes and Charges Template 1 - _TC",
            save=1)

        self.assertEqual(
            get_tax_template("2015-01-01", {
                "customer": "_Test Customer",
                "billing_city": "Test City 1"
            }), "_Test Sales Taxes and Charges Template 1 - _TC")
Пример #4
0
    def test_select_tax_rule_based_on_customer(self):
        make_tax_rule(
            customer="_Test Customer",
            sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
            save=1)

        make_tax_rule(
            customer="_Test Customer 1",
            sales_tax_template="_Test Sales Taxes and Charges Template 1 - _TC",
            save=1)

        make_tax_rule(
            customer="_Test Customer 2",
            sales_tax_template="_Test Sales Taxes and Charges Template 2 - _TC",
            save=1)

        self.assertEqual(
            get_tax_template("2015-01-01", {"customer": "_Test Customer 2"}),
            "_Test Sales Taxes and Charges Template 2 - _TC")
Пример #5
0
    def test_select_tax_rule_based_on_state_match(self):
        make_tax_rule(
            customer="_Test Customer",
            shipping_state="Test State",
            sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
            save=1)

        make_tax_rule(
            customer="_Test Customer",
            shipping_state="Test State12",
            sales_tax_template="_Test Sales Taxes and Charges Template 1 - _TC",
            priority=2,
            save=1)

        self.assertEqual(
            get_tax_template("2015-01-01", {
                "customer": "_Test Customer",
                "shipping_state": "Test State"
            }), "_Test Sales Taxes and Charges Template - _TC")
Пример #6
0
    def test_select_tax_rule_based_on_better_priority(self):
        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City",
            sales_tax_template="_Test Sales Taxes and Charges Template - _TC",
            priority=1,
            save=1)

        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City",
            sales_tax_template="_Test Sales Taxes and Charges Template 1 - _TC",
            priority=2,
            save=1)

        self.assertEqual(
            get_tax_template("2015-01-01", {
                "customer": "_Test Customer",
                "billing_city": "Test City"
            }), "_Test Sales Taxes and Charges Template 1 - _TC")
Пример #7
0
def set_taxes(party,
              party_type,
              posting_date,
              company,
              customer_group=None,
              supplier_group=None,
              tax_category=None,
              billing_address=None,
              shipping_address=None,
              use_for_shopping_cart=None):
    from erpbee.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
    args = {party_type.lower(): party, "company": company}

    if tax_category:
        args['tax_category'] = tax_category

    if customer_group:
        args['customer_group'] = customer_group

    if supplier_group:
        args['supplier_group'] = supplier_group

    if billing_address or shipping_address:
        args.update(get_party_details(party, party_type, {"billing_address": billing_address, \
         "shipping_address": shipping_address }))
    else:
        args.update(get_party_details(party, party_type))

    if party_type in ("Customer", "Lead"):
        args.update({"tax_type": "Sales"})

        if party_type == 'Lead':
            args['customer'] = None
            del args['lead']
    else:
        args.update({"tax_type": "Purchase"})

    if use_for_shopping_cart:
        args.update({"use_for_shopping_cart": use_for_shopping_cart})

    return get_tax_template(posting_date, args)