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")
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")
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")
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")
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")
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")
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)