Merge pull request #21453 from anupamvs/campaign-card
Added Campaign Card in CRM Desk
diff --git a/erpnext/accounts/doctype/sales_invoice/regional/india.js b/erpnext/accounts/doctype/sales_invoice/regional/india.js
index ba6c03b..6336db1 100644
--- a/erpnext/accounts/doctype/sales_invoice/regional/india.js
+++ b/erpnext/accounts/doctype/sales_invoice/regional/india.js
@@ -26,16 +26,24 @@
&& !frm.doc.is_return && !frm.doc.ewaybill) {
frm.add_custom_button('E-Way Bill JSON', () => {
- var w = window.open(
- frappe.urllib.get_full_url(
- "/api/method/erpnext.regional.india.utils.generate_ewb_json?"
- + "dt=" + encodeURIComponent(frm.doc.doctype)
- + "&dn=" + encodeURIComponent(frm.doc.name)
- )
- );
- if (!w) {
- frappe.msgprint(__("Please enable pop-ups")); return;
- }
+ frappe.call({
+ method: 'erpnext.regional.india.utils.generate_ewb_json',
+ args: {
+ 'dt': frm.doc.doctype,
+ 'dn': [frm.doc.name]
+ },
+ callback: function(r) {
+ if (r.message) {
+ const args = {
+ cmd: 'erpnext.regional.india.utils.download_ewb_json',
+ data: r.message,
+ docname: frm.doc.name
+ };
+ open_url_post(frappe.request.url, args);
+ }
+ }
+ });
+
}, __("Create"));
}
}
diff --git a/erpnext/accounts/doctype/sales_invoice/regional/india_list.js b/erpnext/accounts/doctype/sales_invoice/regional/india_list.js
index d175827..3e1c522 100644
--- a/erpnext/accounts/doctype/sales_invoice/regional/india_list.js
+++ b/erpnext/accounts/doctype/sales_invoice/regional/india_list.js
@@ -16,17 +16,23 @@
}
}
- var w = window.open(
- frappe.urllib.get_full_url(
- "/api/method/erpnext.regional.india.utils.generate_ewb_json?"
- + "dt=" + encodeURIComponent(doclist.doctype)
- + "&dn=" + encodeURIComponent(docnames)
- )
- );
- if (!w) {
- frappe.msgprint(__("Please enable pop-ups")); return;
- }
-
+ frappe.call({
+ method: 'erpnext.regional.india.utils.generate_ewb_json',
+ args: {
+ 'dt': doclist.doctype,
+ 'dn': docnames
+ },
+ callback: function(r) {
+ if (r.message) {
+ const args = {
+ cmd: 'erpnext.regional.india.utils.download_ewb_json',
+ data: r.message,
+ docname: docnames
+ };
+ open_url_post(frappe.request.url, args);
+ }
+ }
+ });
};
doclist.page.add_actions_menu_item(__('Generate E-Way Bill JSON'), action, false);
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index a2819af..88b54fe 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -1892,7 +1892,7 @@
si.submit()
- data = get_ewb_data("Sales Invoice", si.name)
+ data = get_ewb_data("Sales Invoice", [si.name])
self.assertEqual(data['version'], '1.0.1118')
self.assertEqual(data['billLists'][0]['fromGstin'], '27AAECE4835E1ZR')
diff --git a/erpnext/regional/india/utils.py b/erpnext/regional/india/utils.py
index 0282382..094f010 100644
--- a/erpnext/regional/india/utils.py
+++ b/erpnext/regional/india/utils.py
@@ -372,7 +372,6 @@
return exemptions
def get_ewb_data(dt, dn):
- dn = dn.split(',')
ewaybills = []
for doc_name in dn:
@@ -453,16 +452,22 @@
@frappe.whitelist()
def generate_ewb_json(dt, dn):
+ dn = json.loads(dn)
+ return get_ewb_data(dt, dn)
- data = get_ewb_data(dt, dn)
+@frappe.whitelist()
+def download_ewb_json():
+ data = frappe._dict(frappe.local.form_dict)
- frappe.local.response.filecontent = json.dumps(data, indent=4, sort_keys=True)
+ frappe.local.response.filecontent = json.dumps(data['data'], indent=4, sort_keys=True)
frappe.local.response.type = 'download'
- if len(data['billLists']) > 1:
+ billList = json.loads(data['data'])['billLists']
+
+ if len(billList) > 1:
doc_name = 'Bulk'
else:
- doc_name = dn
+ doc_name = data['docname']
frappe.local.response.filename = '{0}_e-WayBill_Data_{1}.json'.format(doc_name, frappe.utils.random_string(5))
diff --git a/erpnext/stock/doctype/delivery_note/regional/india.js b/erpnext/stock/doctype/delivery_note/regional/india.js
index 0c1ca5c..5e1ff98 100644
--- a/erpnext/stock/doctype/delivery_note/regional/india.js
+++ b/erpnext/stock/doctype/delivery_note/regional/india.js
@@ -3,21 +3,28 @@
erpnext.setup_auto_gst_taxation('Delivery Note');
frappe.ui.form.on('Delivery Note', {
- refresh: function(frm) {
- if(frm.doc.docstatus == 1 && !frm.is_dirty() && !frm.doc.ewaybill) {
+ refresh: function(frm) {
+ if(frm.doc.docstatus == 1 && !frm.is_dirty() && !frm.doc.ewaybill) {
frm.add_custom_button('E-Way Bill JSON', () => {
- var w = window.open(
- frappe.urllib.get_full_url(
- "/api/method/erpnext.regional.india.utils.generate_ewb_json?"
- + "dt=" + encodeURIComponent(frm.doc.doctype)
- + "&dn=" + encodeURIComponent(frm.doc.name)
- )
- );
- if (!w) {
- frappe.msgprint(__("Please enable pop-ups")); return;
- }
+ frappe.call({
+ method: 'erpnext.regional.india.utils.generate_ewb_json',
+ args: {
+ 'dt': frm.doc.doctype,
+ 'dn': [frm.doc.name]
+ },
+ callback: function(r) {
+ if (r.message) {
+ const args = {
+ cmd: 'erpnext.regional.india.utils.download_ewb_json',
+ data: r.message,
+ docname: frm.doc.name
+ };
+ open_url_post(frappe.request.url, args);
+ }
+ }
+ });
}, __("Create"));
}
- }
+ }
})