From 96e1a7ae20b4a4f0d92749ea9c5a34b9c72d342d Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Mon, 29 Jun 2026 12:29:15 +0000 Subject: [PATCH] feat(custom-fields): purchase e-taxes comment + serial fields Add etaxes_invoice_series/number (read-only) and etaxes_invoice_comment_2 on Purchase Invoice and Purchase Order, plus a general-purpose remarks field on Purchase Order (comment 1) placed at the same spot as the standard PI remarks. Co-Authored-By: Claude Opus 4.8 (1M context) --- jey_erp/custom_fields.py | 70 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/jey_erp/custom_fields.py b/jey_erp/custom_fields.py index 6d0020c..45618c4 100644 --- a/jey_erp/custom_fields.py +++ b/jey_erp/custom_fields.py @@ -488,6 +488,45 @@ def create_custom_fields(): options='\n310\n311\n314\n316', insert_after='ygb', depends_on='eval:doc.purchase_type || doc.agricultural_goods' + ), + + # Purchase Order has no standard `remarks`, so comment 1 gets a + # dedicated general-purpose field placed at the SAME spot as the + # standard Purchase Invoice `remarks` (right before connections_tab). + dict( + fieldname='remarks', + label='Remarks', + fieldtype='Small Text', + insert_after='is_old_subcontracting_flow' + ), + + # === E-TAXES INVOICE INFO (imported from e-taxes) === + dict( + fieldname='etaxes_invoice_info_section', + label='E-Taxes Invoice Info', + fieldtype='Section Break', + insert_after='line_code', + collapsible=1 + ), + dict( + fieldname='etaxes_invoice_series', + label='Seriyə', + fieldtype='Data', + insert_after='etaxes_invoice_info_section', + read_only=1 + ), + dict( + fieldname='etaxes_invoice_number', + label='Nömrə', + fieldtype='Data', + insert_after='etaxes_invoice_series', + read_only=1 + ), + dict( + fieldname='etaxes_invoice_comment_2', + label='Additional Comment', + fieldtype='Small Text', + insert_after='etaxes_invoice_number' ) ], "Purchase Invoice": [ @@ -547,6 +586,37 @@ def create_custom_fields(): depends_on='eval:doc.purchase_type || doc.agricultural_goods' ), + # === E-TAXES INVOICE INFO (imported from e-taxes) === + # Series/number are parsed from the e-taxes serialNumber on import. + # Comment 1 lands in the standard `remarks` field; comment 2 here. + dict( + fieldname='etaxes_invoice_info_section', + label='E-Taxes Invoice Info', + fieldtype='Section Break', + insert_after='line_code', + collapsible=1 + ), + dict( + fieldname='etaxes_invoice_series', + label='Seriyə', + fieldtype='Data', + insert_after='etaxes_invoice_info_section', + read_only=1 + ), + dict( + fieldname='etaxes_invoice_number', + label='Nömrə', + fieldtype='Data', + insert_after='etaxes_invoice_series', + read_only=1 + ), + dict( + fieldname='etaxes_invoice_comment_2', + label='Additional Comment', + fieldtype='Small Text', + insert_after='etaxes_invoice_number' + ), + # === E-TAXES PURCHASE ACT SECTION === dict( fieldname='etaxes_agricultural_section',