From ea6be00ea104a900485abf58f2813ab4e293612e Mon Sep 17 00:00:00 2001 From: Preetam Biswal Date: Tue, 7 Apr 2026 16:07:25 +0200 Subject: [PATCH 1/2] fix: use save() instead of db.set_value for transmission status Use edocument_doc.save() instead of frappe.db.set_value() when updating transmission status so that EDocument's on_update hook runs and syncs the status back to the source document (e.g., Sales Invoice). --- edocument_integration/api.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/edocument_integration/api.py b/edocument_integration/api.py index 8720773..f1acc2a 100644 --- a/edocument_integration/api.py +++ b/edocument_integration/api.py @@ -190,13 +190,11 @@ def transmit_edocument(edocument_name): edocument_doc.add_comment(comment_type="Info", text="\n".join(parts)) # Set status to Transmission Successful and store reference ID - frappe.db.set_value( - "EDocument", - edocument_name, - {"status": "Transmission Successful", "error": None, "reference": transmission_id}, - update_modified=False, - ) - frappe.db.commit() + edocument_doc.reload() + edocument_doc.status = "Transmission Successful" + edocument_doc.error = None + edocument_doc.reference = transmission_id + edocument_doc.save() return transmission_result except frappe.ValidationError: @@ -204,13 +202,10 @@ def transmit_edocument(edocument_name): raise except Exception as e: # Set status to Transmission Failed - frappe.db.set_value( - "EDocument", - edocument_name, - {"status": "Transmission Failed", "error": str(e)}, - update_modified=False, - ) - frappe.db.commit() + edocument_doc.reload() + edocument_doc.status = "Transmission Failed" + edocument_doc.error = str(e) + edocument_doc.save() frappe.log_error( f"E-document transmission failed for document {edocument_name}: {e!s}", From 5e0841504a50c203304cf717ef40d846374a2c55 Mon Sep 17 00:00:00 2001 From: Preetam Biswal Date: Tue, 7 Apr 2026 18:47:57 +0200 Subject: [PATCH 2/2] fix: add type hint to transmit_edocument to pass semgrep --- edocument_integration/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edocument_integration/api.py b/edocument_integration/api.py index f1acc2a..d97f2a8 100644 --- a/edocument_integration/api.py +++ b/edocument_integration/api.py @@ -133,7 +133,7 @@ def get_edocument_integration_settings(profile, company=None): @frappe.whitelist() -def transmit_edocument(edocument_name): +def transmit_edocument(edocument_name: str): # Transmit E-document using the configured integrator try: edocument_doc = frappe.get_doc("EDocument", edocument_name)