mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-29 19:48:27 +00:00
fix(einvoice): QRCode generation and eway bill live url (#24459)
This commit is contained in:
committed by
GitHub
parent
859a5f4dbe
commit
c002465903
@@ -22,6 +22,9 @@ erpnext.setup_einvoice_actions = (doctype) => {
|
||||
|
||||
if (!irn && !__unsaved) {
|
||||
const action = () => {
|
||||
if (frm.doc.__unsaved) {
|
||||
frappe.throw(__('Please save the document to generate IRN.'));
|
||||
}
|
||||
frappe.call({
|
||||
method: 'erpnext.regional.india.e_invoice.utils.get_einvoice',
|
||||
args: { doctype, docname: name },
|
||||
|
||||
@@ -11,6 +11,7 @@ import json
|
||||
import base64
|
||||
import frappe
|
||||
import traceback
|
||||
import io
|
||||
from frappe import _, bold
|
||||
from pyqrcode import create as qrcreate
|
||||
from frappe.integrations.utils import make_post_request, make_get_request
|
||||
@@ -440,7 +441,7 @@ class GSPConnector():
|
||||
self.irn_details_url = self.base_url + '/enriched/ei/api/invoice/irn'
|
||||
self.generate_irn_url = self.base_url + '/enriched/ei/api/invoice'
|
||||
self.gstin_details_url = self.base_url + '/enriched/ei/api/master/gstin'
|
||||
self.cancel_ewaybill_url = self.base_url + '/enriched/ei/api/ewayapi'
|
||||
self.cancel_ewaybill_url = self.base_url + '/enriched/ewb/ewayapi?action=CANEWB'
|
||||
self.generate_ewaybill_url = self.base_url + '/enriched/ei/api/ewaybill'
|
||||
|
||||
def get_credentials(self):
|
||||
@@ -675,6 +676,8 @@ class GSPConnector():
|
||||
'cancelRsnCode': reason,
|
||||
'cancelRmrk': remark
|
||||
}, indent=4)
|
||||
headers["username"] = headers["user_name"]
|
||||
del headers["user_name"]
|
||||
|
||||
try:
|
||||
res = self.make_request('post', self.cancel_ewaybill_url, headers, data)
|
||||
@@ -773,20 +776,21 @@ class GSPConnector():
|
||||
qrcode = self.invoice.signed_qr_code
|
||||
doctype = self.invoice.doctype
|
||||
docname = self.invoice.name
|
||||
filename = 'QRCode_{}.png'.format(docname).replace(os.path.sep, "__")
|
||||
|
||||
_file = frappe.new_doc('File')
|
||||
_file.update({
|
||||
'file_name': 'QRCode_{}.png'.format(docname.replace('/', '-')),
|
||||
'attached_to_doctype': doctype,
|
||||
'attached_to_name': docname,
|
||||
'content': str(base64.b64encode(os.urandom(64))),
|
||||
'is_private': 1
|
||||
})
|
||||
_file.insert()
|
||||
frappe.db.commit()
|
||||
qr_image = io.BytesIO()
|
||||
url = qrcreate(qrcode, error='L')
|
||||
abs_file_path = os.path.abspath(_file.get_full_path())
|
||||
url.png(abs_file_path, scale=2, quiet_zone=1)
|
||||
url.png(qr_image, scale=2, quiet_zone=1)
|
||||
_file = frappe.get_doc({
|
||||
"doctype": "File",
|
||||
"file_name": filename,
|
||||
"attached_to_doctype": doctype,
|
||||
"attached_to_name": docname,
|
||||
"attached_to_field": "qrcode_image",
|
||||
"is_private": 1,
|
||||
"content": qr_image.getvalue()})
|
||||
_file.save()
|
||||
frappe.db.commit()
|
||||
|
||||
self.invoice.qrcode_image = _file.file_url
|
||||
|
||||
|
||||
Reference in New Issue
Block a user