From ccffcf2596f828971392d3f407d2b9e13999c2d2 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Mon, 7 Mar 2022 11:40:01 +0530 Subject: [PATCH 1/3] fix(e-invoicing): remove batch no from e-invoices (cherry picked from commit 031a0dd7035aced02c0a943ce3bff7dba49d3a7f) --- erpnext/regional/india/e_invoice/einv_item_template.json | 6 +----- erpnext/regional/india/e_invoice/utils.py | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/erpnext/regional/india/e_invoice/einv_item_template.json b/erpnext/regional/india/e_invoice/einv_item_template.json index 78e56518dff..2c04c6dcf4d 100644 --- a/erpnext/regional/india/e_invoice/einv_item_template.json +++ b/erpnext/regional/india/e_invoice/einv_item_template.json @@ -23,9 +23,5 @@ "StateCesAmt": "{item.state_cess_amount}", "StateCesNonAdvlAmt": "{item.state_cess_nadv_amount}", "OthChrg": "{item.other_charges}", - "TotItemVal": "{item.total_value}", - "BchDtls": {{ - "Nm": "{item.batch_no}", - "ExpDt": "{item.batch_expiry_date}" - }} + "TotItemVal": "{item.total_value}" }} \ No newline at end of file diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index f788ce9a8d5..f596d9ac693 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -200,8 +200,6 @@ def get_item_list(invoice): item.taxable_value = abs(item.taxable_value) item.discount_amount = 0 - 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.is_service_item = 'Y' if item.gst_hsn_code and item.gst_hsn_code[:2] == "99" else 'N' item.serial_no = "" From 51aa55f3b071d52318fbc5069404a5678c992134 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Tue, 15 Mar 2022 12:23:48 +0530 Subject: [PATCH 2/3] fix: salary slip amount rounding errors (#30250) --- erpnext/hr/doctype/salary_slip/salary_slip.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py index bee28180187..d644ff43691 100644 --- a/erpnext/hr/doctype/salary_slip/salary_slip.py +++ b/erpnext/hr/doctype/salary_slip/salary_slip.py @@ -696,7 +696,7 @@ class SalarySlip(TransactionBase): # apply rounding if frappe.get_cached_value("Salary Component", row.salary_component, "round_to_the_nearest_integer"): - amount, additional_amount = rounded(amount), rounded(additional_amount) + amount, additional_amount = rounded(amount or 0), rounded(additional_amount or 0) return amount, additional_amount From f531d1a69bc61940da7a3ec7ed3956101cb78e0d Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Thu, 24 Mar 2022 17:50:05 +0530 Subject: [PATCH 3/3] feat: add client id & client secret fields in e invoice settings --- .../e_invoice_settings.json | 26 ++++++++++++++++++- erpnext/regional/india/e_invoice/utils.py | 19 +++++++++++--- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/erpnext/regional/doctype/e_invoice_settings/e_invoice_settings.json b/erpnext/regional/doctype/e_invoice_settings/e_invoice_settings.json index db8bda75bfd..0cc5799801d 100644 --- a/erpnext/regional/doctype/e_invoice_settings/e_invoice_settings.json +++ b/erpnext/regional/doctype/e_invoice_settings/e_invoice_settings.json @@ -9,6 +9,10 @@ "section_break_2", "sandbox_mode", "credentials", + "advanced_settings_section", + "client_id", + "column_break_8", + "client_secret", "auth_token", "token_expiry" ], @@ -48,12 +52,32 @@ "fieldname": "sandbox_mode", "fieldtype": "Check", "label": "Sandbox Mode" + }, + { + "collapsible": 1, + "fieldname": "advanced_settings_section", + "fieldtype": "Section Break", + "label": "Advanced Settings" + }, + { + "fieldname": "client_id", + "fieldtype": "Data", + "label": "Client ID" + }, + { + "fieldname": "client_secret", + "fieldtype": "Password", + "label": "Client Secret" + }, + { + "fieldname": "column_break_8", + "fieldtype": "Column Break" } ], "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2021-01-13 12:04:49.449199", + "modified": "2021-11-16 19:50:28.029517", "modified_by": "Administrator", "module": "Regional", "name": "E Invoice Settings", diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index f596d9ac693..69abfcfaac2 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -460,7 +460,11 @@ def make_einvoice(invoice): except Exception: show_link_to_error_log(invoice, einvoice) - validate_totals(einvoice) + try: + validate_totals(einvoice) + except Exception: + log_error(einvoice) + raise return einvoice @@ -609,10 +613,17 @@ class GSPConnector(): request_log.save(ignore_permissions=True) frappe.db.commit() + def get_client_credentials(self): + if self.e_invoice_settings.client_id and self.e_invoice_settings.client_secret: + return self.e_invoice_settings.client_id, self.e_invoice_settings.get_password('client_secret') + + return frappe.conf.einvoice_client_id, frappe.conf.einvoice_client_secret + def fetch_auth_token(self): + client_id, client_secret = self.get_client_credentials() headers = { - 'gspappid': frappe.conf.einvoice_client_id, - 'gspappsecret': frappe.conf.einvoice_client_secret + 'gspappid': client_id, + 'gspappsecret': client_secret } res = {} try: @@ -852,7 +863,7 @@ class GSPConnector(): if errors: throw_error_list(errors, title) else: - link_to_error_list = 'Error Log' + link_to_error_list = 'Error Log' frappe.msgprint( _('An error occurred while making e-invoicing request. Please check {} for more information.').format(link_to_error_list), title=title,