Skip to content

Commit

Permalink
fix(transaction): only fetch party gst details if party name is avail…
Browse files Browse the repository at this point in the history
…able (#494)

* fix(party-gst-detail): return empty dict if no customer

* chore: linter issues

* fix: misc changes during review

---------

Co-authored-by: Sagar Vora <sagar@resilient.tech>
(cherry picked from commit e414595)
  • Loading branch information
rtdany10 authored and sagarvora committed Mar 10, 2023
1 parent 3f98e87 commit da5e1bd
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
11 changes: 8 additions & 3 deletions india_compliance/gst_india/overrides/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -506,9 +506,11 @@ def get_gst_details(party_details, doctype, company):
)
if not party_details.get(party_address_field):
party_gst_details = get_party_gst_details(party_details, is_sales_transaction)

# updating party details to get correct place of supply
party_details.update(party_gst_details)
gst_details.update(party_gst_details)
if party_gst_details:
party_details.update(party_gst_details)
gst_details.update(party_gst_details)

gst_details.place_of_supply = get_place_of_supply(party_details, doctype)

Expand Down Expand Up @@ -589,9 +591,12 @@ def get_party_gst_details(party_details, is_sales_transaction):
"billing_address_gstin" if is_sales_transaction else "supplier_gstin"
)

if not (party := party_details.get(party_type.lower())):
return

return frappe.db.get_value(
party_type,
party_details[party_type.lower()],
party,
("gst_category", f"gstin as {gstin_fieldname}"),
as_dict=True,
)
Expand Down
11 changes: 8 additions & 3 deletions india_compliance/public/js/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ function fetch_gst_details(doctype) {
async function update_gst_details(frm) {
if (frm.__gst_update_triggered || frm.updating_party_details || !frm.doc.company) return;

const party = frm.doc[ic.get_party_fieldname(frm.doc.doctype)];
const party_type = ic.get_party_type(frm.doc.doctype).toLowerCase();
const party_fieldname = frm.doc.doctype === "Quotation" ? "party_name" : party_type;
const party = frm.doc[party_fieldname];
if (!party) return;

frm.__gst_update_triggered = true;
Expand All @@ -50,8 +52,11 @@ async function update_gst_details(frm) {

const party_details = {};

// fieldname may be "party_name" for Quotation, but "customer" is expected by get_gst_details
party_details[ic.get_party_type(frm.doc.doctype).toLowerCase()] = party;
// set "customer" or "supplier" (not applicable for Quotations with Lead)
if (frm.doc.doctype !== "Quotation" || frm.doc.party_type === "Customer") {
party_details[party_type] = party;
}


const fieldnames_to_set = ["tax_category", "gst_category", "company_gstin"];

Expand Down
5 changes: 0 additions & 5 deletions india_compliance/public/js/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,6 @@ Object.assign(ic, {
return in_list(frappe.boot.sales_doctypes, doctype) ? "Customer" : "Supplier";
},

get_party_fieldname(doctype) {
if (doctype == "Quotation") return "party_name";
return ic.get_party_type(doctype).toLowerCase();
},

set_state_options(frm) {
const state_field = frm.get_field("state");
const country = frm.get_field("country").value;
Expand Down

0 comments on commit da5e1bd

Please sign in to comment.