From e2e1f4325ed9e8c09ad574ed03adf026ddc0a71e Mon Sep 17 00:00:00 2001 From: Shyam Rathod Date: Tue, 20 Feb 2024 15:21:43 +0530 Subject: [PATCH] generate group id --- gst_india/hooks.py | 9 ++++--- .../public/py/purchase_invoice_doctype.py | 26 +++++++++++++++++- gst_india/public/py/sales_invoice_doctype.py | 27 ++++++++++++++++++- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/gst_india/hooks.py b/gst_india/hooks.py index 1db44e62..58013085 100644 --- a/gst_india/hooks.py +++ b/gst_india/hooks.py @@ -95,9 +95,11 @@ }, "Purchase Invoice": { "validate": "gst_india.gst_india.overrides.purchase_invoice.validate", - "before_submit": "gst_india.public.py.purchase_invoice_doctype.purchase_invoice_submit", + "before_submit": ["gst_india.public.py.purchase_invoice_doctype.group_id", + "gst_india.public.py.purchase_invoice_doctype.purchase_invoice_submit"], "before_cancel": "gst_india.public.py.purchase_invoice_doctype.purchase_invoice_cancel", - "before_save": "gst_india.public.py.purchase_invoice_doctype.purchase_invoice_save" + "before_save": "gst_india.public.py.purchase_invoice_doctype.purchase_invoice_save", + "on_submit":"gst_india.public.py.purchase_invoice_doctype.group_id" }, "Purchase Order": { "validate": ( @@ -111,8 +113,9 @@ }, "Sales Invoice": { "onload": "gst_india.gst_india.overrides.sales_invoice.onload", - "validate": "gst_india.gst_india.overrides.sales_invoice.validate", + "validate": ["gst_india.gst_india.overrides.sales_invoice.validate","gst_india.public.py.sales_invoice_doctype.group_id"], "on_submit": ["gst_india.gst_india.overrides.sales_invoice.on_submit", + "gst_india.public.py.sales_invoice_doctype.sales_invoice_submit", "gst_india.public.py.sales_invoice_doctype.sales_invoice_submit"], "before_cancel": "gst_india.public.py.sales_invoice_doctype.sales_invoice_cancel", "before_save": "gst_india.public.py.sales_invoice_doctype.sales_invoice_save" diff --git a/gst_india/public/py/purchase_invoice_doctype.py b/gst_india/public/py/purchase_invoice_doctype.py index 93ed159b..7cb7ccb8 100644 --- a/gst_india/public/py/purchase_invoice_doctype.py +++ b/gst_india/public/py/purchase_invoice_doctype.py @@ -1,6 +1,7 @@ import frappe from gst_india.cleartax_integration.API.gst import create_gst_invoice - +import secrets +import string def purchase_invoice_submit(doc, method=None): if frappe.db.get_single_value('Cleartax Settings','automate'): @@ -27,6 +28,29 @@ def purchase_invoice_save(doc,method=None): if doc.taxes_and_charges_added <= 0: doc.custom_non_gst = 1 +def generate_random_id(length=12): + characters = string.ascii_letters + string.digits + random_id = ''.join(secrets.choice(characters) for _ in range(length)) + return random_id + +def group_id(doc,method=None): + # pan_no=frappe.db.get_value("Customer",doc.customer,'pan') + + random_id = generate_random_id() + exist=frappe.db.exists("Generate Group ID", {"pan": doc.supplier_pan}) + if exist: + doc.custom_group_id=frappe.db.get_value("Generate Group ID",exist,"random_id") + else: + new_doc=frappe.new_doc("Generate Group ID") + new_doc.pan=doc.supplier_pan + new_doc.pan_no=doc.supplier_pan + new_doc.random_id = random_id + new_doc.document_no=doc.name + new_doc.dacument_type='Purchase Invoice' + new_doc.save() + doc.custom_group_id = random_id + + \ No newline at end of file diff --git a/gst_india/public/py/sales_invoice_doctype.py b/gst_india/public/py/sales_invoice_doctype.py index da33c09c..5b3a1e94 100644 --- a/gst_india/public/py/sales_invoice_doctype.py +++ b/gst_india/public/py/sales_invoice_doctype.py @@ -2,7 +2,8 @@ from gst_india.cleartax_integration.API.gst import create_gst_invoice import frappe from frappe.utils import flt - +import secrets +import string def sales_invoice_submit(doc, method=None): if frappe.db.get_single_value('Cleartax Settings','automate'): if e_invoicing_enabled(company=doc.company): @@ -32,3 +33,27 @@ def sales_invoice_save(doc,method=None): doc.custom_non_gst = 1 +def generate_random_id(length=12): + characters = string.ascii_letters + string.digits + random_id = ''.join(secrets.choice(characters) for _ in range(length)) + return random_id + + +def group_id(doc,method=None): + print("----------------------") + pan_no=frappe.db.get_value("Customer",doc.customer,'pan') + + random_id = generate_random_id() + exist=frappe.db.exists("Generate Group ID", {"pan": pan_no}) + if exist: + frappe.msgprint('Alredy exist the Pan') + else: + new_doc=frappe.new_doc("Generate Group ID") + new_doc.pan=pan_no + new_doc.pan_no=pan_no + new_doc.random_id = random_id + new_doc.document_no=doc.name + new_doc.dacument_type='Sales Invoice' + new_doc.save() + doc.group_id = random_id +