Fixes in Tax Rule
This commit is contained in:
parent
1a2d121073
commit
09f9c96c53
@ -85,13 +85,22 @@ class TaxRule(Document):
|
||||
frappe.throw(_("Tax Rule Conflicts with {0}".format(tax_rule[0].name)), ConflictingTaxRule)
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_party_details(party, party_type):
|
||||
def get_party_details(party, party_type, args=None):
|
||||
out = {}
|
||||
billing_address = frappe.get_list("Address", fields=["city", "country"], filters={party_type: party, "is_primary_address": 1})
|
||||
shipping_address = frappe.get_list("Address", fields=["city", "country"], filters={party_type:party, "is_shipping_address": 1})
|
||||
if args:
|
||||
billing_filters= {"name": args.get("billing_address")}
|
||||
shipping_filters= {"name": args.get("shipping_address")}
|
||||
else:
|
||||
billing_filters= {party_type: party, "is_primary_address": 1}
|
||||
shipping_filters= {party_type:party, "is_shipping_address": 1}
|
||||
|
||||
billing_address= frappe.get_all("Address", fields=["city", "country"], filters= billing_filters)
|
||||
shipping_address= frappe.get_all("Address", fields=["city", "country"], filters= shipping_filters)
|
||||
|
||||
if billing_address:
|
||||
out["billing_city"]= billing_address[0].city
|
||||
out["billing_country"]= billing_address[0].country
|
||||
|
||||
if shipping_address:
|
||||
out["shipping_city"]= shipping_address[0].city
|
||||
out["shipping_country"]= shipping_address[0].country
|
||||
|
@ -43,7 +43,7 @@ def _get_party_details(party=None, account=None, party_type="Customer", company=
|
||||
set_contact_details(out, party, party_type)
|
||||
set_other_values(out, party, party_type)
|
||||
set_price_list(out, party, party_type, price_list)
|
||||
out["taxes_and_charges"] = set_taxes(party.name, party_type, posting_date, company, out)
|
||||
out["taxes_and_charges"] = set_taxes(party.name, party_type, posting_date, company, out.customer_group, out.supplier_type)
|
||||
|
||||
if not out.get("currency"):
|
||||
out["currency"] = currency
|
||||
@ -277,19 +277,23 @@ def validate_due_date(posting_date, due_date, party_type, party, company):
|
||||
else:
|
||||
frappe.throw(_("Due / Reference Date cannot be after {0}").format(formatdate(default_due_date)))
|
||||
|
||||
def set_taxes(party, party_type, posting_date, company, out):
|
||||
print "posting_date", posting_date
|
||||
@frappe.whitelist()
|
||||
def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_type=None, billing_address=None, shipping_address=None):
|
||||
from erpnext.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
|
||||
args = {
|
||||
party_type: party,
|
||||
"customer_group": out.customer_group,
|
||||
"supplier_type": out.supplier_type,
|
||||
"customer_group": customer_group,
|
||||
"supplier_type": supplier_type,
|
||||
"company": company
|
||||
}
|
||||
args.update(get_party_details(party, party_type))
|
||||
|
||||
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"})
|
||||
|
||||
return get_tax_template(posting_date, args)
|
@ -43,6 +43,7 @@ erpnext.utils.get_party_details = function(frm, method, args, callback) {
|
||||
|
||||
erpnext.utils.get_address_display = function(frm, address_field, display_field) {
|
||||
if(frm.updating_party_details) return;
|
||||
|
||||
if(!address_field) {
|
||||
if(frm.doc.customer) {
|
||||
address_field = "customer_address";
|
||||
@ -50,14 +51,32 @@ erpnext.utils.get_address_display = function(frm, address_field, display_field)
|
||||
address_field = "supplier_address";
|
||||
} else return;
|
||||
}
|
||||
|
||||
if(!display_field) display_field = "address_display";
|
||||
if(frm.doc[address_field]) {
|
||||
frappe.call({
|
||||
method: "erpnext.utilities.doctype.address.address.get_address_display",
|
||||
args: {"address_dict": frm.doc[address_field] },
|
||||
callback: function(r) {
|
||||
if(r.message)
|
||||
if(r.message){
|
||||
frm.set_value(display_field, r.message)
|
||||
}
|
||||
frappe.call({
|
||||
method: "erpnext.accounts.party.set_taxes",
|
||||
args: {
|
||||
"party": frm.doc.customer || frm.doc.supplier,
|
||||
"party_type": (frm.doc.customer ? "Customer" : "Supplier"),
|
||||
"posting_date": frm.doc.posting_date || frm.doc.transaction_date,
|
||||
"company": frm.doc.company,
|
||||
"billing_address": ((frm.doc.customer) ? (frm.doc.customer_address) : (frm.doc.supplier_address)),
|
||||
"shipping_address": frm.doc.shipping_address_name
|
||||
},
|
||||
callback: function(r) {
|
||||
if(r.message){
|
||||
frm.set_value("taxes_and_charges", r.message)
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user