diff --git a/india_compliance/gst_india/client_scripts/address.js b/india_compliance/gst_india/client_scripts/address.js index 15bdf124f..15e158601 100644 --- a/india_compliance/gst_india/client_scripts/address.js +++ b/india_compliance/gst_india/client_scripts/address.js @@ -24,6 +24,8 @@ frappe.ui.form.on(DOCTYPE, { async refresh(frm) { india_compliance.set_state_options(frm); + frm.add_custom_button(__("Update Address"), () => update_address_fields(frm)); + // set default values for GST fields if (!frm.is_new() || !frm.doc.links || !frm.doc.links.length || frm.doc.gstin) return; @@ -52,3 +54,24 @@ frappe.ui.form.on(DOCTYPE, { frm.set_value("gst_category", doc.gst_category || ""); }, }); + +function update_address_fields(frm) { + const original_quick_entry_form = frappe.ui.form.AddressQuickEntryForm; + + frappe.ui.form.AddressQuickEntryForm = class extends frappe.ui.form.AddressQuickEntryForm { + title = "Update Address" + + get_dynamic_link_fields() { return []; } + + update_doc(){ + const doc = super.update_doc(); + frm.refresh(); + return doc; + } + } + + const doc = frappe.get_doc(DOCTYPE, frm.doc.name); + frappe.ui.form.make_quick_entry(DOCTYPE, null, (dialog) => dialog.set_value("_gstin", frm.doc.gstin), doc); + + frappe.ui.form.AddressQuickEntryForm = original_quick_entry_form; +} \ No newline at end of file