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", priority = 1, from_date = "2015-01-01")
		tax_rule1.save()

		self.assertEquals(get_tax_template("2015-01-01", {"customer_group" : "Commercial", "use_for_shopping_cart":0}),
			"_Test Sales Taxes and Charges Template")
Exemple #2
0
def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_type=None,
	billing_address=None, shipping_address=None, use_for_shopping_cart=None):
	from erpnext.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
	args = {
		party_type.lower(): party,
		"customer_group":	customer_group,
		"supplier_type":	supplier_type,
		"company":			company
	}

	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=="Customer":
		args.update({"tax_type": "Sales"})
	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)
	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", save=1)

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

		self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City 1"}),
			"_Test Sales Taxes and Charges Template 1")
Exemple #4
0
	def test_select_tax_rule_based_cross_matching_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(customer= "_Test Customer 1", 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"}),
			None)
	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", save=1)

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

		self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "shipping_state": "Test State"}),
			"_Test Sales Taxes and Charges Template")
	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", priority=1, save=1)

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

		self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer", "billing_city": "Test City"}),
			"_Test Sales Taxes and Charges Template 1")
Exemple #7
0
	def test_select_tax_rule_based_on_better_match(self):
		make_tax_rule(customer= "_Test Customer", billing_city = "Test City", billing_state = "Test State",
			sales_tax_template = "_Test Sales Taxes and Charges Template - _TC", save=1)

		make_tax_rule(customer= "_Test Customer",  billing_city = "Test City1", billing_state = "Test State",
			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", "billing_state": "Test State"}),
			"_Test Sales Taxes and Charges Template - _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", save=1)

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

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

		self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer 2"}),
			"_Test Sales Taxes and Charges Template 2")
	def test_select_tax_rule_based_on_customer(self):
		make_tax_rule(customer= "_Test Customer",
			sales_tax_template = "_Test Sales Taxes and Charges Template", save=1)

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

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

		self.assertEquals(get_tax_template("2015-01-01", {"customer":"_Test Customer 2"}),
			"_Test Sales Taxes and Charges Template 2")
Exemple #10
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")
Exemple #11
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")
Exemple #12
0
def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_group=None, tax_category=None,
		transaction_type=None, cost_center=None, tax_id=None, tax_cnic=None, tax_strn=None, has_stin=None,
		billing_address=None, shipping_address=None, use_for_shopping_cart=None):
	from erpnext.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
	args = {
		scrub(party_type): 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 transaction_type:
		args['transaction_type'] = transaction_type

	if cost_center:
		args['cost_center'] = cost_center

	args['tax_id'] = "Set" if tax_id else "Not Set"
	args['tax_cnic'] = "Set" if tax_cnic else "Not Set"
	args['tax_strn'] = "Set" if tax_strn else "Not Set"

	if has_stin is not None:
		args['has_stin'] = "Yes" if cint(has_stin) else "No"

	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)
Exemple #13
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 erpnext.accounts.doctype.tax_rule.tax_rule import get_party_details, get_tax_template

    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)
Exemple #14
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")
Exemple #15
0
    def test_select_tax_rule_based_cross_matching_keys(self):
        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City",
            sales_tax_template="_Test Sales Taxes and Charges Template",
            save=1)

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

        self.assertEquals(
            get_tax_template("2015-01-01", {
                "customer": "_Test Customer",
                "billing_city": "Test City 1"
            }), None)
Exemple #16
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")
Exemple #17
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")
Exemple #18
0
    def test_select_tax_rule_based_on_better_match(self):
        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City",
            billing_state="Test State",
            sales_tax_template="_Test Sales Taxes and Charges Template",
            save=1)

        make_tax_rule(
            customer="_Test Customer",
            billing_city="Test City1",
            billing_state="Test State",
            sales_tax_template="_Test Sales Taxes and Charges Template 1",
            save=1)

        self.assertEquals(
            get_tax_template(
                "2015-01-01", {
                    "customer": "_Test Customer",
                    "billing_city": "Test City",
                    "billing_state": "Test State"
                }), "_Test Sales Taxes and Charges Template")
Exemple #19
0
def set_taxes(party,
              party_type,
              posting_date,
              company,
              customer_group=None,
              supplier_type=None,
              billing_address=None,
              shipping_address=None,
              use_for_shopping_cart=None):
    from erpnext.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
    args = {
        party_type.lower(): party,
        "customer_group": customer_group,
        "supplier_type": supplier_type,
        "company": company
    }

    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)