fix: (e-invoicing) qrcode image generation (#24421)

This commit is contained in:
Saqib
2021-01-20 13:22:58 +05:30
committed by GitHub
parent e17ad9e620
commit 6f64ec3574

View File

@@ -161,9 +161,9 @@ def get_item_list(invoice):
item.qty = abs(item.qty) item.qty = abs(item.qty)
item.discount_amount = abs(item.discount_amount * item.qty) item.discount_amount = abs(item.discount_amount * item.qty)
item.unit_rate = abs(item.base_amount / item.qty) item.unit_rate = abs(item.base_net_amount / item.qty)
item.gross_amount = abs(item.base_amount) item.gross_amount = abs(item.base_net_amount)
item.taxable_value = abs(item.base_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 = 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 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: for t in invoice.taxes:
item_tax_detail = json.loads(t.item_wise_tax_detail).get(item.item_code) item_tax_detail = json.loads(t.item_wise_tax_detail).get(item.item_code)
if t.account_head in gst_accounts_list: 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.account_head in gst_accounts.cess_account:
if t.charge_type == 'On Item Quantity': if t.charge_type == 'On Item Quantity':
item.cess_nadv_amount += abs(item_tax_detail[1]) 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): def get_invoice_value_details(invoice):
invoice_value_details = frappe._dict(dict()) invoice_value_details = frappe._dict(dict())
invoice_value_details.base_net_total = abs(invoice.base_net_total) if invoice.apply_discount_on == 'Net Total' and invoice.discount_amount:
invoice_value_details.invoice_discount_amt = invoice.discount_amount if invoice.discount_amount and invoice.discount_amount > 0 else 0 invoice_value_details.base_total = abs(invoice.base_total)
# discount amount cannnot be -ve in an e-invoice, so if -ve include discount in round_off else:
invoice_value_details.round_off = invoice.rounding_adjustment - (invoice.discount_amount if invoice.discount_amount and invoice.discount_amount < 0 else 0) 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.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) 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, "data": json.dumps(data, indent=4) if isinstance(data, dict) else data,
"response": json.dumps(res, indent=4) if res else None "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() frappe.db.commit()
def fetch_auth_token(self): def fetch_auth_token(self):
@@ -490,7 +496,8 @@ class GSPConnector():
res = self.make_request('post', self.authenticate_url, headers) 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.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.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: except Exception:
self.log_error(res) self.log_error(res)
@@ -772,7 +779,7 @@ class GSPConnector():
'file_name': 'QRCode_{}.png'.format(docname.replace('/', '-')), 'file_name': 'QRCode_{}.png'.format(docname.replace('/', '-')),
'attached_to_doctype': doctype, 'attached_to_doctype': doctype,
'attached_to_name': docname, 'attached_to_name': docname,
'content': 'qrcode', 'content': str(base64.b64encode(os.urandom(64))),
'is_private': 1 'is_private': 1
}) })
_file.insert() _file.insert()