mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-30 18:34:48 +00:00
Merge pull request #21438 from deepeshgarg007/ewb_bill_error_message_v12
fix: E-Way bill error message
This commit is contained in:
@@ -25,18 +25,26 @@ frappe.ui.form.on("Sales Invoice", {
|
|||||||
if(frm.doc.docstatus == 1 && !frm.is_dirty()
|
if(frm.doc.docstatus == 1 && !frm.is_dirty()
|
||||||
&& !frm.doc.is_return && !frm.doc.ewaybill) {
|
&& !frm.doc.is_return && !frm.doc.ewaybill) {
|
||||||
|
|
||||||
frm.add_custom_button('e-Way Bill JSON', () => {
|
frm.add_custom_button('E-Way Bill JSON', () => {
|
||||||
var w = window.open(
|
frappe.call({
|
||||||
frappe.urllib.get_full_url(
|
method: 'erpnext.regional.india.utils.generate_ewb_json',
|
||||||
"/api/method/erpnext.regional.india.utils.generate_ewb_json?"
|
args: {
|
||||||
+ "dt=" + encodeURIComponent(frm.doc.doctype)
|
'dt': frm.doc.doctype,
|
||||||
+ "&dn=" + encodeURIComponent(frm.doc.name)
|
'dn': [frm.doc.name]
|
||||||
)
|
},
|
||||||
);
|
callback: function(r) {
|
||||||
if (!w) {
|
if (r.message) {
|
||||||
frappe.msgprint(__("Please enable pop-ups")); return;
|
const args = {
|
||||||
}
|
cmd: 'erpnext.regional.india.utils.download_ewb_json',
|
||||||
}, __("Make"));
|
data: r.message,
|
||||||
|
docname: frm.doc.name
|
||||||
|
};
|
||||||
|
open_url_post(frappe.request.url, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}, __("Create"));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -16,17 +16,23 @@ frappe.listview_settings['Sales Invoice'].onload = function (doclist) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var w = window.open(
|
frappe.call({
|
||||||
frappe.urllib.get_full_url(
|
method: 'erpnext.regional.india.utils.generate_ewb_json',
|
||||||
"/api/method/erpnext.regional.india.utils.generate_ewb_json?"
|
args: {
|
||||||
+ "dt=" + encodeURIComponent(doclist.doctype)
|
'dt': doclist.doctype,
|
||||||
+ "&dn=" + encodeURIComponent(docnames)
|
'dn': docnames
|
||||||
)
|
},
|
||||||
);
|
callback: function(r) {
|
||||||
if (!w) {
|
if (r.message) {
|
||||||
frappe.msgprint(__("Please enable pop-ups")); return;
|
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);
|
doclist.page.add_actions_menu_item(__('Generate e-Way Bill JSON'), action, false);
|
||||||
|
|||||||
@@ -1834,7 +1834,7 @@ class TestSalesInvoice(unittest.TestCase):
|
|||||||
|
|
||||||
si.submit()
|
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['version'], '1.0.1118')
|
||||||
self.assertEqual(data['billLists'][0]['fromGstin'], '27AAECE4835E1ZR')
|
self.assertEqual(data['billLists'][0]['fromGstin'], '27AAECE4835E1ZR')
|
||||||
|
|||||||
@@ -360,8 +360,6 @@ def get_ewb_data(dt, dn):
|
|||||||
if dt != 'Sales Invoice':
|
if dt != 'Sales Invoice':
|
||||||
frappe.throw(_('e-Way Bill JSON can only be generated from Sales Invoice'))
|
frappe.throw(_('e-Way Bill JSON can only be generated from Sales Invoice'))
|
||||||
|
|
||||||
dn = dn.split(',')
|
|
||||||
|
|
||||||
ewaybills = []
|
ewaybills = []
|
||||||
for doc_name in dn:
|
for doc_name in dn:
|
||||||
doc = frappe.get_doc(dt, doc_name)
|
doc = frappe.get_doc(dt, doc_name)
|
||||||
@@ -439,16 +437,22 @@ def get_ewb_data(dt, dn):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def generate_ewb_json(dt, dn):
|
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'
|
frappe.local.response.type = 'download'
|
||||||
|
|
||||||
if len(data['billLists']) > 1:
|
billList = json.loads(data['data'])['billLists']
|
||||||
|
|
||||||
|
if len(billList) > 1:
|
||||||
doc_name = 'Bulk'
|
doc_name = 'Bulk'
|
||||||
else:
|
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))
|
frappe.local.response.filename = '{0}_e-WayBill_Data_{1}.json'.format(doc_name, frappe.utils.random_string(5))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user