mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-10 22:06:52 +00:00
fix: (e-invoicing) qrcode image generation (#24421)
This commit is contained in:
@@ -161,9 +161,9 @@ def get_item_list(invoice):
|
||||
|
||||
item.qty = abs(item.qty)
|
||||
item.discount_amount = abs(item.discount_amount * item.qty)
|
||||
item.unit_rate = abs(item.base_amount / item.qty)
|
||||
item.gross_amount = abs(item.base_amount)
|
||||
item.taxable_value = abs(item.base_amount)
|
||||
item.unit_rate = abs(item.base_net_amount / item.qty)
|
||||
item.gross_amount = abs(item.base_net_amount)
|
||||
item.taxable_value = abs(item.base_net_amount)
|
||||
|
||||
item.batch_expiry_date = frappe.db.get_value('Batch', d.batch_no, 'expiry_date') if d.batch_no else None
|
||||
item.batch_expiry_date = format_date(item.batch_expiry_date, 'dd/mm/yyyy') if item.batch_expiry_date else None
|
||||
@@ -195,6 +195,10 @@ def update_item_taxes(invoice, item):
|
||||
for t in invoice.taxes:
|
||||
item_tax_detail = json.loads(t.item_wise_tax_detail).get(item.item_code)
|
||||
if t.account_head in gst_accounts_list:
|
||||
item_tax_rate = item_tax_detail[0]
|
||||
# item tax amount excluding discount amount
|
||||
item_tax_amount = (item_tax_rate / 100) * item.base_net_amount
|
||||
|
||||
if t.account_head in gst_accounts.cess_account:
|
||||
if t.charge_type == 'On Item Quantity':
|
||||
item.cess_nadv_amount += abs(item_tax_detail[1])
|
||||
@@ -215,10 +219,12 @@ def update_item_taxes(invoice, item):
|
||||
|
||||
def get_invoice_value_details(invoice):
|
||||
invoice_value_details = frappe._dict(dict())
|
||||
invoice_value_details.base_net_total = abs(invoice.base_net_total)
|
||||
invoice_value_details.invoice_discount_amt = invoice.discount_amount if invoice.discount_amount and invoice.discount_amount > 0 else 0
|
||||
# discount amount cannnot be -ve in an e-invoice, so if -ve include discount in round_off
|
||||
invoice_value_details.round_off = invoice.rounding_adjustment - (invoice.discount_amount if invoice.discount_amount and invoice.discount_amount < 0 else 0)
|
||||
if invoice.apply_discount_on == 'Net Total' and invoice.discount_amount:
|
||||
invoice_value_details.base_total = abs(invoice.base_total)
|
||||
else:
|
||||
invoice_value_details.base_total = abs(invoice.base_net_total)
|
||||
invoice_value_details.invoice_discount_amt = invoice.base_discount_amount
|
||||
invoice_value_details.round_off = invoice.base_rounding_adjustment
|
||||
invoice_value_details.base_grand_total = abs(invoice.base_rounded_total) or abs(invoice.base_grand_total)
|
||||
invoice_value_details.grand_total = abs(invoice.rounded_total) or abs(invoice.grand_total)
|
||||
|
||||
@@ -477,7 +483,7 @@ class GSPConnector():
|
||||
"data": json.dumps(data, indent=4) if isinstance(data, dict) else data,
|
||||
"response": json.dumps(res, indent=4) if res else None
|
||||
})
|
||||
request_log.insert(ignore_permissions=True)
|
||||
request_log.save(ignore_permissions=True)
|
||||
frappe.db.commit()
|
||||
|
||||
def fetch_auth_token(self):
|
||||
@@ -490,7 +496,8 @@ class GSPConnector():
|
||||
res = self.make_request('post', self.authenticate_url, headers)
|
||||
self.e_invoice_settings.auth_token = "{} {}".format(res.get('token_type'), res.get('access_token'))
|
||||
self.e_invoice_settings.token_expiry = add_to_date(None, seconds=res.get('expires_in'))
|
||||
self.e_invoice_settings.save()
|
||||
self.e_invoice_settings.save(ignore_permissions=True)
|
||||
self.e_invoice_settings.reload()
|
||||
|
||||
except Exception:
|
||||
self.log_error(res)
|
||||
@@ -761,7 +768,7 @@ class GSPConnector():
|
||||
'label': _('IRN Generated')
|
||||
}
|
||||
self.update_invoice()
|
||||
|
||||
|
||||
def attach_qrcode_image(self):
|
||||
qrcode = self.invoice.signed_qr_code
|
||||
doctype = self.invoice.doctype
|
||||
@@ -772,7 +779,7 @@ class GSPConnector():
|
||||
'file_name': 'QRCode_{}.png'.format(docname.replace('/', '-')),
|
||||
'attached_to_doctype': doctype,
|
||||
'attached_to_name': docname,
|
||||
'content': 'qrcode',
|
||||
'content': str(base64.b64encode(os.urandom(64))),
|
||||
'is_private': 1
|
||||
})
|
||||
_file.insert()
|
||||
|
||||
Reference in New Issue
Block a user