├── license.txt ├── site_integration ├── patches.txt ├── config │ ├── __init__.py │ ├── desktop.py │ └── docs.py ├── templates │ ├── __init__.py │ └── pages │ │ └── __init__.py ├── modules.txt ├── site_integration │ ├── __init__.py │ ├── doctype │ │ ├── __init__.py │ │ └── pispl_configuration │ │ │ ├── __init__.py │ │ │ ├── test_pispl_configuration.py │ │ │ ├── pispl_configuration.js │ │ │ ├── pispl_configuration.py │ │ │ └── pispl_configuration.json │ └── custom │ │ └── purchase_order.json ├── __init__.py ├── fixtures │ └── client_script.json ├── hooks.py └── api.py ├── requirements.txt ├── .gitignore ├── README.md ├── setup.py └── MANIFEST.in /license.txt: -------------------------------------------------------------------------------- 1 | License: MIT -------------------------------------------------------------------------------- /site_integration/patches.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/modules.txt: -------------------------------------------------------------------------------- 1 | Site Integration -------------------------------------------------------------------------------- /site_integration/site_integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/templates/pages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_integration/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | __version__ = '0.0.1' 3 | 4 | -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/pispl_configuration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # frappe -- https://github.com/frappe/frappe is installed via 'bench init' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | *.egg-info 4 | *.swp 5 | tags 6 | site_integration/docs/current -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Inter-Company-PO-SO-Sync 2 | 3 | Acepl V13 to Pispl V15 PO-SO Sync 4 | 5 | #### License 6 | 7 | MIT -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/pispl_configuration/test_pispl_configuration.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Chethan and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | import unittest 6 | 7 | class TestPISPLConfiguration(unittest.TestCase): 8 | pass 9 | -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/pispl_configuration/pispl_configuration.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Chethan and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('PISPL Configuration', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /site_integration/config/desktop.py: -------------------------------------------------------------------------------- 1 | from frappe import _ 2 | 3 | def get_data(): 4 | return [ 5 | { 6 | "module_name": "Site Integration", 7 | "color": "grey", 8 | "icon": "octicon octicon-file-directory", 9 | "type": "module", 10 | "label": _("Site Integration") 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/pispl_configuration/pispl_configuration.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Chethan and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class PISPLConfiguration(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /site_integration/config/docs.py: -------------------------------------------------------------------------------- 1 | """ 2 | Configuration for docs 3 | """ 4 | 5 | # source_link = "https://github.com/[org_name]/site_integration" 6 | # docs_base_url = "https://[org_name].github.io/site_integration" 7 | # headline = "App that does everything" 8 | # sub_heading = "Yes, you got that right the first time, everything" 9 | 10 | def get_context(context): 11 | context.brand_html = "Site Integration" 12 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | with open("requirements.txt") as f: 4 | install_requires = f.read().strip().split("\n") 5 | 6 | # get version from __version__ variable in site_integration/__init__.py 7 | from site_integration import __version__ as version 8 | 9 | setup( 10 | name="site_integration", 11 | version=version, 12 | description="Acepl V13 to Pispl V15 PO-SO Sync", 13 | author="Chethan", 14 | author_email="chethan@aerele.in", 15 | packages=find_packages(), 16 | zip_safe=False, 17 | include_package_data=True, 18 | install_requires=install_requires 19 | ) 20 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include MANIFEST.in 2 | include requirements.txt 3 | include *.json 4 | include *.md 5 | include *.py 6 | include *.txt 7 | recursive-include site_integration *.css 8 | recursive-include site_integration *.csv 9 | recursive-include site_integration *.html 10 | recursive-include site_integration *.ico 11 | recursive-include site_integration *.js 12 | recursive-include site_integration *.json 13 | recursive-include site_integration *.md 14 | recursive-include site_integration *.png 15 | recursive-include site_integration *.py 16 | recursive-include site_integration *.svg 17 | recursive-include site_integration *.txt 18 | recursive-exclude site_integration *.pyc -------------------------------------------------------------------------------- /site_integration/site_integration/doctype/pispl_configuration/pispl_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-03-10 15:16:03.659865", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "url", 10 | "api_key", 11 | "password" 12 | ], 13 | "fields": [ 14 | { 15 | "fieldname": "url", 16 | "fieldtype": "Data", 17 | "label": "URL" 18 | }, 19 | { 20 | "fieldname": "password", 21 | "fieldtype": "Password", 22 | "label": "API Secret" 23 | }, 24 | { 25 | "fieldname": "api_key", 26 | "fieldtype": "Data", 27 | "label": "API Key" 28 | } 29 | ], 30 | "index_web_pages_for_search": 1, 31 | "issingle": 1, 32 | "links": [], 33 | "modified": "2025-03-10 16:12:16.250521", 34 | "modified_by": "Administrator", 35 | "module": "Site Integration", 36 | "name": "PISPL Configuration", 37 | "owner": "Administrator", 38 | "permissions": [ 39 | { 40 | "create": 1, 41 | "delete": 1, 42 | "email": 1, 43 | "print": 1, 44 | "read": 1, 45 | "role": "System Manager", 46 | "share": 1, 47 | "write": 1 48 | } 49 | ], 50 | "sort_field": "modified", 51 | "sort_order": "DESC" 52 | } -------------------------------------------------------------------------------- /site_integration/fixtures/client_script.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "docstatus": 0, 4 | "doctype": "Client Script", 5 | "dt": "Purchase Order", 6 | "enabled": 1, 7 | "modified": "2025-03-20 13:46:21.072788", 8 | "name": "Purchase Order-Form", 9 | "parent": null, 10 | "parentfield": null, 11 | "parenttype": null, 12 | "script": "frappe.ui.form.on(\"Purchase Order\", {\n refresh: function(frm) {\n if (frm.doc.docstatus === 1 &&\n frm.doc.supplier == \"Proman Infrastructure Services Private Limited\" &&\n !frm.doc.so_name) {\n frm.add_custom_button(\"Create SO in PISPL v15\", function() {\n frappe.call({\n freeze: 1,\n freeze_message: \"Creating Sales Order in PISPL v15 site.. Please wait till completion\",\n \n method: \"site_integration.api.export_purchase_order_to_v15\",\n args: {\n po_name: frm.doc.name\n },\n \n callback: function(response) {\n if (response.message && response.message.status === \"success\") {\n frappe.msgprint(response.message.message);\n frm.reload_doc();\n \n } else {\n frappe.msgprint({\n title: __(\"Failed\"),\n message: response.message ? response.message.message : \"Failed to create Sales Order. Check Error Log.\",\n indicator: \"red\"\n });\n }\n }\n });\n }).addClass(\"btn-primary\");\n }\n }\n});\n", 13 | "view": "Form" 14 | } 15 | ] -------------------------------------------------------------------------------- /site_integration/hooks.py: -------------------------------------------------------------------------------- 1 | from . import __version__ as app_version 2 | 3 | app_name = "site_integration" 4 | app_title = "Inter-Company PO-SO Sync" 5 | app_publisher = "Chethan" 6 | app_description = "Acepl V13 to Pispl V15 PO-SO Sync" 7 | app_icon = "octicon octicon-file-directory" 8 | app_color = "grey" 9 | app_email = "chethan@aerele.in" 10 | app_license = "MIT" 11 | 12 | # Includes in 13 | # ------------------ 14 | 15 | fixtures = [{'dt': "Client Script", 16 | "filters": [ 17 | [ 18 | "name", "in", ["Purchase Order-Form"] 19 | ] 20 | ] 21 | } 22 | ] 23 | # include js, css files in header of desk.html 24 | # app_include_css = "/assets/site_integration/css/site_integration.css" 25 | # app_include_js = "/assets/site_integration/js/site_integration.js" 26 | 27 | # include js, css files in header of web template 28 | # web_include_css = "/assets/site_integration/css/site_integration.css" 29 | # web_include_js = "/assets/site_integration/js/site_integration.js" 30 | 31 | # include custom scss in every website theme (without file extension ".scss") 32 | # website_theme_scss = "site_integration/public/scss/website" 33 | 34 | # include js, css files in header of web form 35 | # webform_include_js = {"doctype": "public/js/doctype.js"} 36 | # webform_include_css = {"doctype": "public/css/doctype.css"} 37 | 38 | # include js in page 39 | # page_js = {"page" : "public/js/file.js"} 40 | 41 | # include js in doctype views 42 | # doctype_js = {"doctype" : "public/js/doctype.js"} 43 | # doctype_list_js = {"doctype" : "public/js/doctype_list.js"} 44 | # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} 45 | # doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} 46 | 47 | # Home Pages 48 | # ---------- 49 | 50 | # application home page (will override Website Settings) 51 | # home_page = "login" 52 | 53 | # website user home page (by Role) 54 | # role_home_page = { 55 | # "Role": "home_page" 56 | # } 57 | 58 | # Generators 59 | # ---------- 60 | 61 | # automatically create page for each record of this doctype 62 | # website_generators = ["Web Page"] 63 | 64 | # Installation 65 | # ------------ 66 | 67 | # before_install = "site_integration.install.before_install" 68 | # after_install = "site_integration.install.after_install" 69 | 70 | # Uninstallation 71 | # ------------ 72 | 73 | # before_uninstall = "site_integration.uninstall.before_uninstall" 74 | # after_uninstall = "site_integration.uninstall.after_uninstall" 75 | 76 | # Desk Notifications 77 | # ------------------ 78 | # See frappe.core.notifications.get_notification_config 79 | 80 | # notification_config = "site_integration.notifications.get_notification_config" 81 | 82 | # Permissions 83 | # ----------- 84 | # Permissions evaluated in scripted ways 85 | 86 | # permission_query_conditions = { 87 | # "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", 88 | # } 89 | # 90 | # has_permission = { 91 | # "Event": "frappe.desk.doctype.event.event.has_permission", 92 | # } 93 | 94 | # DocType Class 95 | # --------------- 96 | # Override standard doctype classes 97 | 98 | # override_doctype_class = { 99 | # "ToDo": "custom_app.overrides.CustomToDo" 100 | # } 101 | 102 | # Document Events 103 | # --------------- 104 | # Hook on document methods and events 105 | 106 | # doc_events = { 107 | # "*": { 108 | # "on_update": "method", 109 | # "on_cancel": "method", 110 | # "on_trash": "method" 111 | # } 112 | # } 113 | 114 | doc_events = { 115 | "Purchase Order": { 116 | "before_save": "site_integration.api.validate_supplier_part_number", 117 | "on_cancel": "site_integration.api.cancel_sales_order_in_v15", 118 | "on_submit": "site_integration.api.trigger_po_amendment_sync" 119 | } 120 | } 121 | 122 | 123 | # Scheduled Tasks 124 | # --------------- 125 | 126 | # scheduler_events = { 127 | # "all": [ 128 | # "site_integration.tasks.all" 129 | # ], 130 | # "daily": [ 131 | # "site_integration.tasks.daily" 132 | # ], 133 | # "hourly": [ 134 | # "site_integration.tasks.hourly" 135 | # ], 136 | # "weekly": [ 137 | # "site_integration.tasks.weekly" 138 | # ] 139 | # "monthly": [ 140 | # "site_integration.tasks.monthly" 141 | # ] 142 | # } 143 | 144 | # Testing 145 | # ------- 146 | 147 | # before_tests = "site_integration.install.before_tests" 148 | 149 | # Overriding Methods 150 | # ------------------------------ 151 | # 152 | # override_whitelisted_methods = { 153 | # "frappe.desk.doctype.event.event.get_events": "site_integration.event.get_events" 154 | # } 155 | # 156 | # each overriding function accepts a `data` argument; 157 | # generated from the base implementation of the doctype dashboard, 158 | # along with any modifications made in other Frappe apps 159 | # override_doctype_dashboards = { 160 | # "Task": "site_integration.task.get_dashboard_data" 161 | # } 162 | 163 | # exempt linked doctypes from being automatically cancelled 164 | # 165 | # auto_cancel_exempted_doctypes = ["Auto Repeat"] 166 | 167 | # Request Events 168 | # ---------------- 169 | # before_request = ["site_integration.utils.before_request"] 170 | # after_request = ["site_integration.utils.after_request"] 171 | 172 | # Job Events 173 | # ---------- 174 | # before_job = ["site_integration.utils.before_job"] 175 | # after_job = ["site_integration.utils.after_job"] 176 | 177 | # User Data Protection 178 | # -------------------- 179 | 180 | user_data_fields = [ 181 | { 182 | "doctype": "{doctype_1}", 183 | "filter_by": "{filter_by}", 184 | "redact_fields": ["{field_1}", "{field_2}"], 185 | "partial": 1, 186 | }, 187 | { 188 | "doctype": "{doctype_2}", 189 | "filter_by": "{filter_by}", 190 | "partial": 1, 191 | }, 192 | { 193 | "doctype": "{doctype_3}", 194 | "strict": False, 195 | }, 196 | { 197 | "doctype": "{doctype_4}" 198 | } 199 | ] 200 | 201 | # Authentication and authorization 202 | # -------------------------------- 203 | 204 | # auth_hooks = [ 205 | # "site_integration.auth.validate" 206 | # ] 207 | 208 | -------------------------------------------------------------------------------- /site_integration/api.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | import requests 3 | from frappe.utils import formatdate 4 | 5 | @frappe.whitelist() 6 | def export_purchase_order_to_v15(po_name): 7 | try: 8 | doc = frappe.get_doc("Purchase Order", po_name) 9 | config = frappe.get_single("PISPL Configuration") 10 | password = config.get_password('password') 11 | v15_url = config.url 12 | headers = { 13 | "Authorization": f"token {config.api_key}:{password}", 14 | "Content-Type": "application/json" 15 | } 16 | 17 | items = [] 18 | for item in doc.items: 19 | 20 | items.append({ 21 | "item_code": item.supplier_part_no, 22 | "qty": item.qty, 23 | "rate": item.rate, 24 | "delivery_date": item.schedule_date.strftime("%Y-%m-%d") if item.schedule_date else None 25 | }) 26 | 27 | taxes = [] 28 | for tax in doc.taxes: 29 | taxes.append({ 30 | "charge_type": tax.charge_type, 31 | "account_head": tax.account_head, 32 | "rate": tax.rate 33 | }) 34 | 35 | payload = { 36 | "po_name": doc.name, 37 | "items": items, 38 | "taxes": taxes, 39 | "transaction_date": doc.transaction_date.strftime("%Y-%m-%d") if doc.transaction_date else None, 40 | "delivery_date": doc.schedule_date.strftime("%Y-%m-%d") if doc.schedule_date else None 41 | } 42 | 43 | response = requests.post(f"{v15_url}/api/method/proman.proman.utils.sales_order.create_sales_order", json=payload, headers=headers) 44 | 45 | if response.status_code == 200: 46 | try: 47 | response_data = response.json() 48 | sales_order_id = response_data.get("message", {}).get("sales_order_id") 49 | 50 | frappe.db.set_value("Purchase Order", po_name, "so_name", sales_order_id) 51 | frappe.db.commit() 52 | 53 | return {"status": "success", "message": f"Sales Order created in PISPL v15 for PO {po_name}"} 54 | 55 | except json.JSONDecodeError: 56 | frappe.log_error(f"Invalid JSON response: {response.text}", "SO Creation Error") 57 | return {"status": "error", "message": "Invalid response format from v15"} 58 | 59 | else: 60 | try: 61 | error_response = response.json() 62 | error_message = error_response.get("message", {}).get("error", "Unknown error occurred") 63 | except json.JSONDecodeError: 64 | error_message = response.text 65 | 66 | error_msg = f"Failed to create SO for the PO {po_name}: {error_message}" 67 | frappe.log_error(title="SO Creation Error", message=error_msg) 68 | return {"status": "error", "message": error_message} 69 | 70 | except requests.ConnectionError: 71 | error_msg = f"Could not connect to PISPL v15 site. Please ensure the site is running and try again." 72 | frappe.log_error(error_msg, "v15 Connection Error on SO creation") 73 | frappe.throw(error_msg) 74 | 75 | except Exception as e: 76 | error_msg = f"Error creating SO for the PO {po_name}: {str(e)}" 77 | frappe.log_error(error_msg, "SO Creation Error") 78 | return {"status": "error", "message": error_msg} 79 | 80 | def validate_supplier_part_number(doc, method): 81 | 82 | supplier_name = "Proman Infrastructure Services Private Limited" 83 | 84 | if doc.supplier != supplier_name: 85 | return 86 | 87 | missing_items = [] 88 | 89 | for item in doc.items: 90 | supplier_part_no = frappe.db.get_value( 91 | "Item Supplier", 92 | {"parent": item.item_code, "supplier": doc.supplier}, 93 | "supplier_part_no" 94 | ) 95 | 96 | if not supplier_part_no: 97 | missing_items.append(item.item_code) 98 | 99 | if missing_items: 100 | missing_items_str = ", ".join(missing_items) 101 | 102 | error_message = f"Missing Supplier Part Numbers in: {missing_items_str}" 103 | log = frappe.log_error(error_message, "Supplier Part Number missing") 104 | 105 | log_name = log.name if log else "" 106 | 107 | error_log_link = ( 108 | f'View Error Log' 109 | if log_name 110 | else "Check Error Log for details." 111 | ) 112 | 113 | error_message = f"Missing Supplier Part Numbers in:
{missing_items_str}" 114 | frappe.throw(f"{error_message}
{error_log_link}") 115 | 116 | def cancel_sales_order_in_v15(doc, method): 117 | supplier_name = "Proman Infrastructure Services Private Limited" 118 | 119 | if doc.supplier != supplier_name: 120 | return 121 | 122 | if not frappe.get_roles(frappe.session.user).count("System Manager"): 123 | frappe.throw("You do not have permission to cancel this Purchase Order. Only System Managers can cancel POs of this supplier.") 124 | 125 | try: 126 | if not doc.so_name: 127 | return 128 | 129 | config = frappe.get_single("PISPL Configuration") 130 | password = config.get_password('password') 131 | v15_url = config.url 132 | 133 | headers = { 134 | "Authorization": f"token {config.api_key}:{password}", 135 | "Content-Type": "application/json" 136 | } 137 | 138 | payload = {"sales_order_name": doc.so_name} 139 | 140 | response = requests.post(f"{v15_url}/api/method/proman.proman.utils.sales_order.cancel_sales_order", json=payload, headers=headers) 141 | 142 | if response.status_code == 200: 143 | response_data = response.json() 144 | frappe.msgprint(response_data.get("message", {}).get("message")) 145 | return 146 | 147 | else: 148 | error_response = response.json() 149 | error_message = error_response.get("message", "Unknown error occurred") 150 | frappe.log_error(f"Failed to cancel SO {doc.so_name}: {error_message}", "SO Cancel Error") 151 | frappe.throw(f"Sales Order {doc.so_name} cancellation failed in PISPL v15") 152 | 153 | except requests.ConnectionError: 154 | error_msg = f"Could not connect to PISPL v15 site. Please ensure the site is running before cancelling the PO." 155 | frappe.log_error(error_msg, "v15 Connection Error on SO Cancel") 156 | frappe.throw(error_msg) 157 | 158 | except Exception as e: 159 | frappe.log_error(f"Error cancelling SO {doc.so_name}: {str(e)}", "SO Cancel Error") 160 | frappe.throw(f"Error cancelling Sales Order {doc.so_name} in PISPL v15 site") 161 | 162 | def export_amended_purchase_order_to_v15(po_name): 163 | try: 164 | doc = frappe.get_doc("Purchase Order", po_name) 165 | 166 | if not doc.so_name: 167 | frappe.msgprint("No linked Sales Order found to amend in PISPL v15 site.") 168 | return 169 | 170 | config = frappe.get_single("PISPL Configuration") 171 | password = config.get_password('password') 172 | v15_url = config.url 173 | 174 | headers = { 175 | "Authorization": f"token {config.api_key}:{password}", 176 | "Content-Type": "application/json" 177 | } 178 | 179 | items = [] 180 | for item in doc.items: 181 | 182 | items.append({ 183 | "item_code": item.supplier_part_no, 184 | "qty": item.qty, 185 | "rate": item.rate, 186 | "delivery_date": item.schedule_date.strftime("%Y-%m-%d") if item.schedule_date else None 187 | }) 188 | 189 | taxes = [] 190 | for tax in doc.taxes: 191 | taxes.append({ 192 | "charge_type": tax.charge_type, 193 | "account_head": tax.account_head, 194 | "rate": tax.rate 195 | }) 196 | 197 | payload = { 198 | "old_so_name": doc.so_name, 199 | "new_po_name": doc.name, 200 | "items": items, 201 | "taxes": taxes, 202 | "transaction_date": doc.transaction_date.strftime("%Y-%m-%d") if doc.transaction_date else None, 203 | "delivery_date": doc.schedule_date.strftime("%Y-%m-%d") if doc.schedule_date else None 204 | } 205 | 206 | response = requests.post(f"{v15_url}/api/method/proman.proman.utils.sales_order.amend_sales_order", json=payload, headers=headers) 207 | 208 | if response.status_code == 200: 209 | response_data = response.json() 210 | curr_so_name = doc.so_name 211 | new_sales_order_id = response_data.get("message", {}).get("new_sales_order_id") 212 | 213 | frappe.db.set_value("Purchase Order", po_name, "so_name", new_sales_order_id) 214 | frappe.db.commit() 215 | 216 | frappe.msgprint(f"Sales Order {curr_so_name} amended in PISPL v15 site too!") 217 | 218 | else: 219 | error_message = response.json().get("message", "Unknown error occurred") 220 | frappe.log_error(f"Failed to amend PO {po_name}: {error_message}", "PO Amend Error") 221 | frappe.throw(error_message) 222 | frappe.log("Came here amending PO", error_message) 223 | 224 | except requests.ConnectionError: 225 | error_msg = f"Could not connect to PISPL v15 site. Ensure the site is running before amending the PO." 226 | frappe.log_error(error_msg, "v15 Connection Error on PO amend") 227 | frappe.throw(error_msg) 228 | 229 | except Exception as e: 230 | frappe.log_error(f"Error amending PO {po_name}: {str(e)}", "PO Amend Error") 231 | frappe.throw(f"Error amending PO {po_name} in PISPL v15") 232 | 233 | def trigger_po_amendment_sync(doc, method): 234 | if doc.amended_from: 235 | supplier_name = "Proman Infrastructure Services Private Limited" 236 | 237 | if doc.supplier != supplier_name: 238 | return 239 | 240 | if not frappe.get_roles(frappe.session.user).count("System Manager"): 241 | frappe.throw("You do not have permission to cancel this Purchase Order. Only System Managers can cancel POs of this supplier.") 242 | 243 | export_amended_purchase_order_to_v15(doc.name) 244 | doc.reload() 245 | -------------------------------------------------------------------------------- /site_integration/site_integration/custom/purchase_order.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2023-12-16 02:45:19.259904", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Purchase Order", 20 | "fetch_from": "supplier_address.gst_state", 21 | "fetch_if_empty": 0, 22 | "fieldname": "supp_state", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 38, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_filter": 0, 32 | "in_filter_dash": 0, 33 | "in_global_search": 0, 34 | "in_list_view": 0, 35 | "in_preview": 0, 36 | "in_standard_filter": 0, 37 | "insert_after": "supplier_address", 38 | "label": "Supp State", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2017-07-04 13:40:40.537017", 42 | "modified_by": "Administrator", 43 | "name": "Purchase Order-supp_state", 44 | "no_copy": 0, 45 | "non_negative": 0, 46 | "options": null, 47 | "owner": "Administrator", 48 | "parent": null, 49 | "parentfield": null, 50 | "parenttype": null, 51 | "permlevel": 0, 52 | "precision": "", 53 | "print_hide": 0, 54 | "print_hide_if_no_value": 0, 55 | "print_width": null, 56 | "read_only": 0, 57 | "read_only_depends_on": null, 58 | "report_hide": 0, 59 | "reqd": 0, 60 | "search_index": 0, 61 | "translatable": 0, 62 | "unique": 0, 63 | "width": null 64 | }, 65 | { 66 | "_assign": null, 67 | "_comments": null, 68 | "_liked_by": null, 69 | "_user_tags": null, 70 | "allow_in_quick_entry": 0, 71 | "allow_on_submit": 0, 72 | "bold": 0, 73 | "collapsible": 0, 74 | "collapsible_depends_on": null, 75 | "columns": 0, 76 | "creation": "2023-12-16 02:45:19.899225", 77 | "default": null, 78 | "depends_on": null, 79 | "description": null, 80 | "docstatus": 0, 81 | "dt": "Purchase Order", 82 | "fetch_from": "supplier_address.gstin", 83 | "fetch_if_empty": 0, 84 | "fieldname": "supp_gstin", 85 | "fieldtype": "Data", 86 | "hidden": 0, 87 | "hide_border": 0, 88 | "hide_days": 0, 89 | "hide_seconds": 0, 90 | "idx": 39, 91 | "ignore_user_permissions": 0, 92 | "ignore_xss_filter": 0, 93 | "in_filter": 0, 94 | "in_filter_dash": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "supp_state", 100 | "label": "Supp GSTIN", 101 | "length": 0, 102 | "mandatory_depends_on": null, 103 | "modified": "2017-07-04 13:40:45.544750", 104 | "modified_by": "Administrator", 105 | "name": "Purchase Order-supp_gstin", 106 | "no_copy": 0, 107 | "non_negative": 0, 108 | "options": null, 109 | "owner": "Administrator", 110 | "parent": null, 111 | "parentfield": null, 112 | "parenttype": null, 113 | "permlevel": 0, 114 | "precision": "", 115 | "print_hide": 0, 116 | "print_hide_if_no_value": 0, 117 | "print_width": null, 118 | "read_only": 0, 119 | "read_only_depends_on": null, 120 | "report_hide": 0, 121 | "reqd": 0, 122 | "search_index": 0, 123 | "translatable": 0, 124 | "unique": 0, 125 | "width": null 126 | }, 127 | { 128 | "_assign": null, 129 | "_comments": null, 130 | "_liked_by": null, 131 | "_user_tags": null, 132 | "allow_in_quick_entry": 0, 133 | "allow_on_submit": 0, 134 | "bold": 0, 135 | "collapsible": 0, 136 | "collapsible_depends_on": null, 137 | "columns": 0, 138 | "creation": "2023-12-16 02:45:20.530191", 139 | "default": null, 140 | "depends_on": null, 141 | "description": null, 142 | "docstatus": 0, 143 | "dt": "Purchase Order", 144 | "fetch_from": "shipping_address.gst_state", 145 | "fetch_if_empty": 0, 146 | "fieldname": "shipping_state", 147 | "fieldtype": "Data", 148 | "hidden": 0, 149 | "hide_border": 0, 150 | "hide_days": 0, 151 | "hide_seconds": 0, 152 | "idx": 50, 153 | "ignore_user_permissions": 0, 154 | "ignore_xss_filter": 0, 155 | "in_filter": 0, 156 | "in_filter_dash": 0, 157 | "in_global_search": 0, 158 | "in_list_view": 0, 159 | "in_preview": 0, 160 | "in_standard_filter": 0, 161 | "insert_after": "shipping_address_display", 162 | "label": "Shipping State", 163 | "length": 0, 164 | "mandatory_depends_on": null, 165 | "modified": "2017-07-04 13:40:50.853719", 166 | "modified_by": "Administrator", 167 | "name": "Purchase Order-shipping_state", 168 | "no_copy": 0, 169 | "non_negative": 0, 170 | "options": null, 171 | "owner": "Administrator", 172 | "parent": null, 173 | "parentfield": null, 174 | "parenttype": null, 175 | "permlevel": 0, 176 | "precision": "", 177 | "print_hide": 0, 178 | "print_hide_if_no_value": 0, 179 | "print_width": null, 180 | "read_only": 0, 181 | "read_only_depends_on": null, 182 | "report_hide": 0, 183 | "reqd": 0, 184 | "search_index": 0, 185 | "translatable": 0, 186 | "unique": 0, 187 | "width": null 188 | }, 189 | { 190 | "_assign": null, 191 | "_comments": null, 192 | "_liked_by": null, 193 | "_user_tags": null, 194 | "allow_in_quick_entry": 0, 195 | "allow_on_submit": 0, 196 | "bold": 0, 197 | "collapsible": 0, 198 | "collapsible_depends_on": null, 199 | "columns": 0, 200 | "creation": "2023-12-16 02:45:21.093129", 201 | "default": null, 202 | "depends_on": null, 203 | "description": null, 204 | "docstatus": 0, 205 | "dt": "Purchase Order", 206 | "fetch_from": "shipping_address.gstin", 207 | "fetch_if_empty": 0, 208 | "fieldname": "shipping_gstin", 209 | "fieldtype": "Data", 210 | "hidden": 0, 211 | "hide_border": 0, 212 | "hide_days": 0, 213 | "hide_seconds": 0, 214 | "idx": 51, 215 | "ignore_user_permissions": 0, 216 | "ignore_xss_filter": 0, 217 | "in_filter": 0, 218 | "in_filter_dash": 0, 219 | "in_global_search": 0, 220 | "in_list_view": 0, 221 | "in_preview": 0, 222 | "in_standard_filter": 0, 223 | "insert_after": "shipping_state", 224 | "label": "Shipping GSTIN", 225 | "length": 0, 226 | "mandatory_depends_on": null, 227 | "modified": "2017-07-04 13:40:56.271679", 228 | "modified_by": "Administrator", 229 | "name": "Purchase Order-shipping_gstin", 230 | "no_copy": 0, 231 | "non_negative": 0, 232 | "options": null, 233 | "owner": "Administrator", 234 | "parent": null, 235 | "parentfield": null, 236 | "parenttype": null, 237 | "permlevel": 0, 238 | "precision": "", 239 | "print_hide": 0, 240 | "print_hide_if_no_value": 0, 241 | "print_width": null, 242 | "read_only": 0, 243 | "read_only_depends_on": null, 244 | "report_hide": 0, 245 | "reqd": 0, 246 | "search_index": 0, 247 | "translatable": 0, 248 | "unique": 0, 249 | "width": null 250 | }, 251 | { 252 | "_assign": null, 253 | "_comments": null, 254 | "_liked_by": null, 255 | "_user_tags": null, 256 | "allow_in_quick_entry": 0, 257 | "allow_on_submit": 1, 258 | "bold": 0, 259 | "collapsible": 0, 260 | "collapsible_depends_on": null, 261 | "columns": 0, 262 | "creation": "2023-12-16 02:44:59.685557", 263 | "default": null, 264 | "depends_on": null, 265 | "description": null, 266 | "docstatus": 0, 267 | "dt": "Purchase Order", 268 | "fetch_from": null, 269 | "fetch_if_empty": 0, 270 | "fieldname": "workflow_state", 271 | "fieldtype": "Link", 272 | "hidden": 1, 273 | "hide_border": 0, 274 | "hide_days": 0, 275 | "hide_seconds": 0, 276 | "idx": 1, 277 | "ignore_user_permissions": 0, 278 | "ignore_xss_filter": 0, 279 | "in_filter": 0, 280 | "in_filter_dash": 0, 281 | "in_global_search": 0, 282 | "in_list_view": 0, 283 | "in_preview": 0, 284 | "in_standard_filter": 0, 285 | "insert_after": null, 286 | "label": "Workflow State", 287 | "length": 0, 288 | "mandatory_depends_on": null, 289 | "modified": "2019-03-27 10:54:51.415370", 290 | "modified_by": "Administrator", 291 | "name": "Purchase Order-workflow_state", 292 | "no_copy": 1, 293 | "non_negative": 0, 294 | "options": "Workflow State", 295 | "owner": "Administrator", 296 | "parent": null, 297 | "parentfield": null, 298 | "parenttype": null, 299 | "permlevel": 0, 300 | "precision": "", 301 | "print_hide": 0, 302 | "print_hide_if_no_value": 0, 303 | "print_width": null, 304 | "read_only": 0, 305 | "read_only_depends_on": null, 306 | "report_hide": 0, 307 | "reqd": 0, 308 | "search_index": 0, 309 | "translatable": 0, 310 | "unique": 0, 311 | "width": null 312 | }, 313 | { 314 | "_assign": null, 315 | "_comments": null, 316 | "_liked_by": null, 317 | "_user_tags": null, 318 | "allow_in_quick_entry": 0, 319 | "allow_on_submit": 0, 320 | "bold": 0, 321 | "collapsible": 0, 322 | "collapsible_depends_on": null, 323 | "columns": 0, 324 | "creation": "2023-12-16 02:45:00.308844", 325 | "default": null, 326 | "depends_on": null, 327 | "description": null, 328 | "docstatus": 0, 329 | "dt": "Purchase Order", 330 | "fetch_from": null, 331 | "fetch_if_empty": 0, 332 | "fieldname": "stock_requisition_id", 333 | "fieldtype": "Data", 334 | "hidden": 0, 335 | "hide_border": 0, 336 | "hide_days": 0, 337 | "hide_seconds": 0, 338 | "idx": 16, 339 | "ignore_user_permissions": 0, 340 | "ignore_xss_filter": 0, 341 | "in_filter": 0, 342 | "in_filter_dash": 0, 343 | "in_global_search": 0, 344 | "in_list_view": 0, 345 | "in_preview": 0, 346 | "in_standard_filter": 0, 347 | "insert_after": "company", 348 | "label": "Stock Requisition Id", 349 | "length": 0, 350 | "mandatory_depends_on": null, 351 | "modified": "2019-03-27 11:25:07.049502", 352 | "modified_by": "Administrator", 353 | "name": "Purchase Order-stock_requisition_id", 354 | "no_copy": 0, 355 | "non_negative": 0, 356 | "options": null, 357 | "owner": "Administrator", 358 | "parent": null, 359 | "parentfield": null, 360 | "parenttype": null, 361 | "permlevel": 0, 362 | "precision": "", 363 | "print_hide": 0, 364 | "print_hide_if_no_value": 0, 365 | "print_width": null, 366 | "read_only": 1, 367 | "read_only_depends_on": null, 368 | "report_hide": 0, 369 | "reqd": 0, 370 | "search_index": 0, 371 | "translatable": 1, 372 | "unique": 0, 373 | "width": null 374 | }, 375 | { 376 | "_assign": null, 377 | "_comments": null, 378 | "_liked_by": null, 379 | "_user_tags": null, 380 | "allow_in_quick_entry": 0, 381 | "allow_on_submit": 1, 382 | "bold": 0, 383 | "collapsible": 0, 384 | "collapsible_depends_on": null, 385 | "columns": 0, 386 | "creation": "2023-12-16 02:45:02.434301", 387 | "default": null, 388 | "depends_on": null, 389 | "description": null, 390 | "docstatus": 0, 391 | "dt": "Purchase Order", 392 | "fetch_from": null, 393 | "fetch_if_empty": 0, 394 | "fieldname": "stopped_po", 395 | "fieldtype": "Data", 396 | "hidden": 0, 397 | "hide_border": 0, 398 | "hide_days": 0, 399 | "hide_seconds": 0, 400 | "idx": 17, 401 | "ignore_user_permissions": 0, 402 | "ignore_xss_filter": 0, 403 | "in_filter": 0, 404 | "in_filter_dash": 0, 405 | "in_global_search": 0, 406 | "in_list_view": 0, 407 | "in_preview": 0, 408 | "in_standard_filter": 0, 409 | "insert_after": "stock_requisition_id", 410 | "label": "Stopped PO", 411 | "length": 0, 412 | "mandatory_depends_on": null, 413 | "modified": "2019-07-03 15:21:00.894467", 414 | "modified_by": "Administrator", 415 | "name": "Purchase Order-stopped_po", 416 | "no_copy": 0, 417 | "non_negative": 0, 418 | "options": null, 419 | "owner": "Administrator", 420 | "parent": null, 421 | "parentfield": null, 422 | "parenttype": null, 423 | "permlevel": 0, 424 | "precision": "", 425 | "print_hide": 0, 426 | "print_hide_if_no_value": 0, 427 | "print_width": null, 428 | "read_only": 0, 429 | "read_only_depends_on": null, 430 | "report_hide": 0, 431 | "reqd": 0, 432 | "search_index": 0, 433 | "translatable": 1, 434 | "unique": 0, 435 | "width": null 436 | }, 437 | { 438 | "_assign": null, 439 | "_comments": null, 440 | "_liked_by": null, 441 | "_user_tags": null, 442 | "allow_in_quick_entry": 0, 443 | "allow_on_submit": 1, 444 | "bold": 0, 445 | "collapsible": 0, 446 | "collapsible_depends_on": null, 447 | "columns": 0, 448 | "creation": "2023-12-16 02:45:15.605132", 449 | "default": null, 450 | "depends_on": null, 451 | "description": null, 452 | "docstatus": 0, 453 | "dt": "Purchase Order", 454 | "fetch_from": null, 455 | "fetch_if_empty": 0, 456 | "fieldname": "under_review", 457 | "fieldtype": "Check", 458 | "hidden": 0, 459 | "hide_border": 0, 460 | "hide_days": 0, 461 | "hide_seconds": 0, 462 | "idx": 18, 463 | "ignore_user_permissions": 0, 464 | "ignore_xss_filter": 0, 465 | "in_filter": 0, 466 | "in_filter_dash": 0, 467 | "in_global_search": 0, 468 | "in_list_view": 0, 469 | "in_preview": 0, 470 | "in_standard_filter": 0, 471 | "insert_after": "stopped_po", 472 | "label": "under_review", 473 | "length": 0, 474 | "mandatory_depends_on": null, 475 | "modified": "2019-12-05 17:42:04.624084", 476 | "modified_by": "Administrator", 477 | "name": "Purchase Order-under_review", 478 | "no_copy": 0, 479 | "non_negative": 0, 480 | "options": null, 481 | "owner": "Administrator", 482 | "parent": null, 483 | "parentfield": null, 484 | "parenttype": null, 485 | "permlevel": 0, 486 | "precision": "", 487 | "print_hide": 0, 488 | "print_hide_if_no_value": 0, 489 | "print_width": null, 490 | "read_only": 1, 491 | "read_only_depends_on": null, 492 | "report_hide": 0, 493 | "reqd": 0, 494 | "search_index": 0, 495 | "translatable": 0, 496 | "unique": 0, 497 | "width": null 498 | }, 499 | { 500 | "_assign": null, 501 | "_comments": null, 502 | "_liked_by": null, 503 | "_user_tags": null, 504 | "allow_in_quick_entry": 0, 505 | "allow_on_submit": 0, 506 | "bold": 0, 507 | "collapsible": 0, 508 | "collapsible_depends_on": null, 509 | "columns": 0, 510 | "creation": "2023-12-16 02:45:16.144875", 511 | "default": "Purchase Order", 512 | "depends_on": null, 513 | "description": null, 514 | "docstatus": 0, 515 | "dt": "Purchase Order", 516 | "fetch_from": null, 517 | "fetch_if_empty": 0, 518 | "fieldname": "doctype_name", 519 | "fieldtype": "Data", 520 | "hidden": 1, 521 | "hide_border": 0, 522 | "hide_days": 0, 523 | "hide_seconds": 0, 524 | "idx": 153, 525 | "ignore_user_permissions": 0, 526 | "ignore_xss_filter": 0, 527 | "in_filter": 0, 528 | "in_filter_dash": 0, 529 | "in_global_search": 0, 530 | "in_list_view": 0, 531 | "in_preview": 0, 532 | "in_standard_filter": 0, 533 | "insert_after": "inter_company_order_reference", 534 | "label": "doctype_name", 535 | "length": 0, 536 | "mandatory_depends_on": null, 537 | "modified": "2019-12-06 11:13:56.886701", 538 | "modified_by": "Administrator", 539 | "name": "Purchase Order-doctype_name", 540 | "no_copy": 0, 541 | "non_negative": 0, 542 | "options": null, 543 | "owner": "Administrator", 544 | "parent": null, 545 | "parentfield": null, 546 | "parenttype": null, 547 | "permlevel": 0, 548 | "precision": "", 549 | "print_hide": 0, 550 | "print_hide_if_no_value": 0, 551 | "print_width": null, 552 | "read_only": 0, 553 | "read_only_depends_on": null, 554 | "report_hide": 0, 555 | "reqd": 0, 556 | "search_index": 0, 557 | "translatable": 1, 558 | "unique": 0, 559 | "width": null 560 | }, 561 | { 562 | "_assign": null, 563 | "_comments": null, 564 | "_liked_by": null, 565 | "_user_tags": null, 566 | "allow_in_quick_entry": 0, 567 | "allow_on_submit": 0, 568 | "bold": 0, 569 | "collapsible": 0, 570 | "collapsible_depends_on": null, 571 | "columns": 0, 572 | "creation": "2020-10-31 14:02:28.526200", 573 | "default": null, 574 | "depends_on": null, 575 | "description": null, 576 | "docstatus": 0, 577 | "dt": "Purchase Order", 578 | "fetch_from": null, 579 | "fetch_if_empty": 0, 580 | "fieldname": "comment", 581 | "fieldtype": "Text", 582 | "hidden": 0, 583 | "hide_border": 0, 584 | "hide_days": 0, 585 | "hide_seconds": 0, 586 | "idx": 144, 587 | "ignore_user_permissions": 0, 588 | "ignore_xss_filter": 0, 589 | "in_filter": 0, 590 | "in_filter_dash": 0, 591 | "in_global_search": 0, 592 | "in_list_view": 0, 593 | "in_preview": 0, 594 | "in_standard_filter": 0, 595 | "insert_after": "update_auto_repeat_reference", 596 | "label": "comment", 597 | "length": 0, 598 | "mandatory_depends_on": null, 599 | "modified": "2020-10-31 14:02:28.526200", 600 | "modified_by": "soumya@promaninfi.com", 601 | "name": "Purchase Order-comment", 602 | "no_copy": 0, 603 | "non_negative": 0, 604 | "options": null, 605 | "owner": "soumya@promaninfi.com", 606 | "parent": null, 607 | "parentfield": null, 608 | "parenttype": null, 609 | "permlevel": 0, 610 | "precision": "", 611 | "print_hide": 0, 612 | "print_hide_if_no_value": 0, 613 | "print_width": null, 614 | "read_only": 0, 615 | "read_only_depends_on": null, 616 | "report_hide": 0, 617 | "reqd": 0, 618 | "search_index": 0, 619 | "translatable": 1, 620 | "unique": 0, 621 | "width": null 622 | }, 623 | { 624 | "_assign": null, 625 | "_comments": null, 626 | "_liked_by": null, 627 | "_user_tags": null, 628 | "allow_in_quick_entry": 0, 629 | "allow_on_submit": 0, 630 | "bold": 0, 631 | "collapsible": 0, 632 | "collapsible_depends_on": null, 633 | "columns": 0, 634 | "creation": "2022-06-29 22:05:19.404666", 635 | "default": null, 636 | "depends_on": null, 637 | "description": null, 638 | "docstatus": 0, 639 | "dt": "Purchase Order", 640 | "fetch_from": null, 641 | "fetch_if_empty": 0, 642 | "fieldname": "service_request", 643 | "fieldtype": "Link", 644 | "hidden": 0, 645 | "hide_border": 0, 646 | "hide_days": 0, 647 | "hide_seconds": 0, 648 | "idx": 147, 649 | "ignore_user_permissions": 0, 650 | "ignore_xss_filter": 0, 651 | "in_filter": 0, 652 | "in_filter_dash": 0, 653 | "in_global_search": 0, 654 | "in_list_view": 0, 655 | "in_preview": 0, 656 | "in_standard_filter": 0, 657 | "insert_after": "ref_sq", 658 | "label": "Service Request", 659 | "length": 0, 660 | "mandatory_depends_on": null, 661 | "modified": "2021-07-16 05:17:57.473132", 662 | "modified_by": "Administrator", 663 | "name": "Purchase Order-service_request", 664 | "no_copy": 0, 665 | "non_negative": 0, 666 | "options": "Service Request", 667 | "owner": "Administrator", 668 | "parent": null, 669 | "parentfield": null, 670 | "parenttype": null, 671 | "permlevel": 0, 672 | "precision": "", 673 | "print_hide": 0, 674 | "print_hide_if_no_value": 0, 675 | "print_width": null, 676 | "read_only": 0, 677 | "read_only_depends_on": null, 678 | "report_hide": 0, 679 | "reqd": 0, 680 | "search_index": 0, 681 | "translatable": 0, 682 | "unique": 0, 683 | "width": null 684 | }, 685 | { 686 | "_assign": null, 687 | "_comments": null, 688 | "_liked_by": null, 689 | "_user_tags": null, 690 | "allow_in_quick_entry": 0, 691 | "allow_on_submit": 0, 692 | "bold": 0, 693 | "collapsible": 0, 694 | "collapsible_depends_on": null, 695 | "columns": 0, 696 | "creation": "2019-02-15 21:57:29.753215", 697 | "default": null, 698 | "depends_on": null, 699 | "description": null, 700 | "docstatus": 0, 701 | "dt": "Purchase Order", 702 | "fetch_from": "supplier_address.gstin", 703 | "fetch_if_empty": 0, 704 | "fieldname": "supplier_gstin", 705 | "fieldtype": "Data", 706 | "hidden": 0, 707 | "hide_border": 0, 708 | "hide_days": 0, 709 | "hide_seconds": 0, 710 | "idx": 40, 711 | "ignore_user_permissions": 0, 712 | "ignore_xss_filter": 0, 713 | "in_filter": 0, 714 | "in_filter_dash": 0, 715 | "in_global_search": 0, 716 | "in_list_view": 0, 717 | "in_preview": 0, 718 | "in_standard_filter": 0, 719 | "insert_after": "supp_gstin", 720 | "label": "Supplier GSTIN", 721 | "length": 0, 722 | "mandatory_depends_on": null, 723 | "modified": "2021-08-02 13:35:34.470483", 724 | "modified_by": "Administrator", 725 | "name": "Purchase Order-supplier_gstin", 726 | "no_copy": 0, 727 | "non_negative": 0, 728 | "options": null, 729 | "owner": "Administrator", 730 | "parent": null, 731 | "parentfield": null, 732 | "parenttype": null, 733 | "permlevel": 0, 734 | "precision": "", 735 | "print_hide": 1, 736 | "print_hide_if_no_value": 0, 737 | "print_width": null, 738 | "read_only": 1, 739 | "read_only_depends_on": null, 740 | "report_hide": 0, 741 | "reqd": 0, 742 | "search_index": 0, 743 | "translatable": 1, 744 | "unique": 0, 745 | "width": null 746 | }, 747 | { 748 | "_assign": null, 749 | "_comments": null, 750 | "_liked_by": null, 751 | "_user_tags": null, 752 | "allow_in_quick_entry": 0, 753 | "allow_on_submit": 0, 754 | "bold": 0, 755 | "collapsible": 0, 756 | "collapsible_depends_on": null, 757 | "columns": 0, 758 | "creation": "2019-02-15 21:57:29.940675", 759 | "default": null, 760 | "depends_on": null, 761 | "description": null, 762 | "docstatus": 0, 763 | "dt": "Purchase Order", 764 | "fetch_from": "shipping_address.gstin", 765 | "fetch_if_empty": 0, 766 | "fieldname": "company_gstin", 767 | "fieldtype": "Data", 768 | "hidden": 0, 769 | "hide_border": 0, 770 | "hide_days": 0, 771 | "hide_seconds": 0, 772 | "idx": 52, 773 | "ignore_user_permissions": 0, 774 | "ignore_xss_filter": 0, 775 | "in_filter": 0, 776 | "in_filter_dash": 0, 777 | "in_global_search": 0, 778 | "in_list_view": 0, 779 | "in_preview": 0, 780 | "in_standard_filter": 0, 781 | "insert_after": "shipping_gstin", 782 | "label": "Company GSTIN", 783 | "length": 0, 784 | "mandatory_depends_on": null, 785 | "modified": "2021-08-02 13:35:35.009095", 786 | "modified_by": "Administrator", 787 | "name": "Purchase Order-company_gstin", 788 | "no_copy": 0, 789 | "non_negative": 0, 790 | "options": null, 791 | "owner": "Administrator", 792 | "parent": null, 793 | "parentfield": null, 794 | "parenttype": null, 795 | "permlevel": 0, 796 | "precision": "", 797 | "print_hide": 1, 798 | "print_hide_if_no_value": 0, 799 | "print_width": null, 800 | "read_only": 1, 801 | "read_only_depends_on": null, 802 | "report_hide": 0, 803 | "reqd": 0, 804 | "search_index": 0, 805 | "translatable": 1, 806 | "unique": 0, 807 | "width": null 808 | }, 809 | { 810 | "_assign": null, 811 | "_comments": null, 812 | "_liked_by": null, 813 | "_user_tags": null, 814 | "allow_in_quick_entry": 0, 815 | "allow_on_submit": 0, 816 | "bold": 0, 817 | "collapsible": 0, 818 | "collapsible_depends_on": null, 819 | "columns": 0, 820 | "creation": "2019-02-15 21:57:30.128485", 821 | "default": null, 822 | "depends_on": null, 823 | "description": null, 824 | "docstatus": 0, 825 | "dt": "Purchase Order", 826 | "fetch_from": null, 827 | "fetch_if_empty": 0, 828 | "fieldname": "place_of_supply", 829 | "fieldtype": "Data", 830 | "hidden": 0, 831 | "hide_border": 0, 832 | "hide_days": 0, 833 | "hide_seconds": 0, 834 | "idx": 48, 835 | "ignore_user_permissions": 0, 836 | "ignore_xss_filter": 0, 837 | "in_filter": 0, 838 | "in_filter_dash": 0, 839 | "in_global_search": 0, 840 | "in_list_view": 0, 841 | "in_preview": 0, 842 | "in_standard_filter": 0, 843 | "insert_after": "shipping_address", 844 | "label": "Place of Supply", 845 | "length": 0, 846 | "mandatory_depends_on": null, 847 | "modified": "2021-08-02 13:35:35.624200", 848 | "modified_by": "Administrator", 849 | "name": "Purchase Order-place_of_supply", 850 | "no_copy": 0, 851 | "non_negative": 0, 852 | "options": null, 853 | "owner": "Administrator", 854 | "parent": null, 855 | "parentfield": null, 856 | "parenttype": null, 857 | "permlevel": 0, 858 | "precision": "", 859 | "print_hide": 1, 860 | "print_hide_if_no_value": 0, 861 | "print_width": null, 862 | "read_only": 1, 863 | "read_only_depends_on": null, 864 | "report_hide": 0, 865 | "reqd": 0, 866 | "search_index": 0, 867 | "translatable": 1, 868 | "unique": 0, 869 | "width": null 870 | }, 871 | { 872 | "_assign": null, 873 | "_comments": null, 874 | "_liked_by": null, 875 | "_user_tags": null, 876 | "allow_in_quick_entry": 0, 877 | "allow_on_submit": 0, 878 | "bold": 0, 879 | "collapsible": 0, 880 | "collapsible_depends_on": null, 881 | "columns": 0, 882 | "creation": "2024-03-19 08:48:54.085829", 883 | "default": "0", 884 | "depends_on": null, 885 | "description": null, 886 | "docstatus": 0, 887 | "dt": "Purchase Order", 888 | "fetch_from": null, 889 | "fetch_if_empty": 0, 890 | "fieldname": "raw_items", 891 | "fieldtype": "Check", 892 | "hidden": 0, 893 | "hide_border": 0, 894 | "hide_days": 0, 895 | "hide_seconds": 0, 896 | "idx": 13, 897 | "ignore_user_permissions": 0, 898 | "ignore_xss_filter": 0, 899 | "in_filter": 0, 900 | "in_filter_dash": 0, 901 | "in_global_search": 0, 902 | "in_list_view": 0, 903 | "in_preview": 0, 904 | "in_standard_filter": 0, 905 | "insert_after": "tax_withholding_category", 906 | "label": "Raw items", 907 | "length": 0, 908 | "mandatory_depends_on": null, 909 | "modified": "2024-03-18 11:08:10.763998", 910 | "modified_by": "Administrator", 911 | "name": "Purchase Order-raw_items", 912 | "no_copy": 0, 913 | "non_negative": 0, 914 | "options": null, 915 | "owner": "Administrator", 916 | "parent": null, 917 | "parentfield": null, 918 | "parenttype": null, 919 | "permlevel": 0, 920 | "precision": "", 921 | "print_hide": 0, 922 | "print_hide_if_no_value": 0, 923 | "print_width": null, 924 | "read_only": 0, 925 | "read_only_depends_on": null, 926 | "report_hide": 0, 927 | "reqd": 0, 928 | "search_index": 0, 929 | "translatable": 0, 930 | "unique": 0, 931 | "width": null 932 | }, 933 | { 934 | "_assign": null, 935 | "_comments": null, 936 | "_liked_by": null, 937 | "_user_tags": null, 938 | "allow_in_quick_entry": 0, 939 | "allow_on_submit": 0, 940 | "bold": 0, 941 | "collapsible": 0, 942 | "collapsible_depends_on": null, 943 | "columns": 0, 944 | "creation": "2024-03-19 08:48:53.309414", 945 | "default": null, 946 | "depends_on": null, 947 | "description": null, 948 | "docstatus": 0, 949 | "dt": "Purchase Order", 950 | "fetch_from": null, 951 | "fetch_if_empty": 0, 952 | "fieldname": "sales_order_no", 953 | "fieldtype": "Data", 954 | "hidden": 0, 955 | "hide_border": 0, 956 | "hide_days": 0, 957 | "hide_seconds": 0, 958 | "idx": 11, 959 | "ignore_user_permissions": 0, 960 | "ignore_xss_filter": 0, 961 | "in_filter": 0, 962 | "in_filter_dash": 0, 963 | "in_global_search": 0, 964 | "in_list_view": 0, 965 | "in_preview": 0, 966 | "in_standard_filter": 0, 967 | "insert_after": "apply_tds", 968 | "label": "Sales Order no", 969 | "length": 0, 970 | "mandatory_depends_on": null, 971 | "modified": "2024-03-18 11:08:16.436376", 972 | "modified_by": "Administrator", 973 | "name": "Purchase Order-sales_order_no", 974 | "no_copy": 0, 975 | "non_negative": 0, 976 | "options": null, 977 | "owner": "Administrator", 978 | "parent": null, 979 | "parentfield": null, 980 | "parenttype": null, 981 | "permlevel": 0, 982 | "precision": "", 983 | "print_hide": 0, 984 | "print_hide_if_no_value": 0, 985 | "print_width": null, 986 | "read_only": 0, 987 | "read_only_depends_on": "", 988 | "report_hide": 0, 989 | "reqd": 0, 990 | "search_index": 0, 991 | "translatable": 0, 992 | "unique": 0, 993 | "width": null 994 | }, 995 | { 996 | "_assign": null, 997 | "_comments": null, 998 | "_liked_by": null, 999 | "_user_tags": null, 1000 | "allow_in_quick_entry": 0, 1001 | "allow_on_submit": 0, 1002 | "bold": 0, 1003 | "collapsible": 0, 1004 | "collapsible_depends_on": null, 1005 | "columns": 0, 1006 | "creation": "2024-09-19 13:09:43.850223", 1007 | "default": null, 1008 | "depends_on": null, 1009 | "description": null, 1010 | "docstatus": 0, 1011 | "dt": "Purchase Order", 1012 | "fetch_from": null, 1013 | "fetch_if_empty": 0, 1014 | "fieldname": "approved_by", 1015 | "fieldtype": "Select", 1016 | "hidden": 0, 1017 | "hide_border": 0, 1018 | "hide_days": 0, 1019 | "hide_seconds": 0, 1020 | "idx": 6, 1021 | "ignore_user_permissions": 0, 1022 | "ignore_xss_filter": 0, 1023 | "in_filter": 0, 1024 | "in_filter_dash": 0, 1025 | "in_global_search": 1, 1026 | "in_list_view": 1, 1027 | "in_preview": 0, 1028 | "in_standard_filter": 1, 1029 | "insert_after": "supplier", 1030 | "label": "Approved By", 1031 | "length": 0, 1032 | "mandatory_depends_on": null, 1033 | "modified": "2024-09-19 13:09:43.850223", 1034 | "modified_by": "sharath@promaninfi.com", 1035 | "name": "Purchase Order-approved_by", 1036 | "no_copy": 0, 1037 | "non_negative": 0, 1038 | "options": "Ashwathappa\nS.K Das\nS.A Pasha", 1039 | "owner": "sharath@promaninfi.com", 1040 | "parent": null, 1041 | "parentfield": null, 1042 | "parenttype": null, 1043 | "permlevel": 0, 1044 | "precision": "", 1045 | "print_hide": 0, 1046 | "print_hide_if_no_value": 0, 1047 | "print_width": null, 1048 | "read_only": 0, 1049 | "read_only_depends_on": null, 1050 | "report_hide": 0, 1051 | "reqd": 0, 1052 | "search_index": 0, 1053 | "translatable": 0, 1054 | "unique": 0, 1055 | "width": null 1056 | }, 1057 | { 1058 | "_assign": null, 1059 | "_comments": null, 1060 | "_liked_by": null, 1061 | "_user_tags": null, 1062 | "allow_in_quick_entry": 0, 1063 | "allow_on_submit": 0, 1064 | "bold": 0, 1065 | "collapsible": 0, 1066 | "collapsible_depends_on": null, 1067 | "columns": 0, 1068 | "creation": "2025-03-14 11:58:53.992917", 1069 | "default": null, 1070 | "depends_on": null, 1071 | "description": null, 1072 | "docstatus": 0, 1073 | "dt": "Purchase Order", 1074 | "fetch_from": null, 1075 | "fetch_if_empty": 0, 1076 | "fieldname": "so_name", 1077 | "fieldtype": "Data", 1078 | "hidden": 0, 1079 | "hide_border": 0, 1080 | "hide_days": 0, 1081 | "hide_seconds": 0, 1082 | "idx": 9, 1083 | "ignore_user_permissions": 0, 1084 | "ignore_xss_filter": 0, 1085 | "in_filter": 0, 1086 | "in_filter_dash": 0, 1087 | "in_global_search": 0, 1088 | "in_list_view": 1, 1089 | "in_preview": 0, 1090 | "in_standard_filter": 0, 1091 | "insert_after": "supplier_name", 1092 | "label": "Supplier's Sales Order", 1093 | "length": 0, 1094 | "mandatory_depends_on": null, 1095 | "modified": "2025-03-14 11:58:53.992917", 1096 | "modified_by": "Administrator", 1097 | "name": "Purchase Order-so_name", 1098 | "no_copy": 0, 1099 | "non_negative": 0, 1100 | "options": null, 1101 | "owner": "Administrator", 1102 | "parent": null, 1103 | "parentfield": null, 1104 | "parenttype": null, 1105 | "permlevel": 0, 1106 | "precision": "", 1107 | "print_hide": 0, 1108 | "print_hide_if_no_value": 0, 1109 | "print_width": null, 1110 | "read_only": 0, 1111 | "read_only_depends_on": "amended_from", 1112 | "report_hide": 0, 1113 | "reqd": 0, 1114 | "search_index": 0, 1115 | "translatable": 0, 1116 | "unique": 0, 1117 | "width": null 1118 | } 1119 | ], 1120 | "custom_perms": [], 1121 | "doctype": "Purchase Order", 1122 | "property_setters": [ 1123 | { 1124 | "_assign": null, 1125 | "_comments": null, 1126 | "_liked_by": null, 1127 | "_user_tags": null, 1128 | "creation": "2025-03-12 11:43:51.978738", 1129 | "default_value": null, 1130 | "doc_type": "Purchase Order", 1131 | "docstatus": 0, 1132 | "doctype_or_field": "DocField", 1133 | "field_name": "taxes_and_charges", 1134 | "idx": 0, 1135 | "modified": "2025-03-12 11:44:49.670407", 1136 | "modified_by": "Administrator", 1137 | "name": "Purchase Order-taxes_and_charges-in_list_view", 1138 | "owner": "Administrator", 1139 | "parent": null, 1140 | "parentfield": null, 1141 | "parenttype": null, 1142 | "property": "in_list_view", 1143 | "property_type": "Check", 1144 | "row_name": null, 1145 | "value": "1" 1146 | }, 1147 | { 1148 | "_assign": null, 1149 | "_comments": null, 1150 | "_liked_by": null, 1151 | "_user_tags": null, 1152 | "creation": "2023-04-11 18:17:16.110903", 1153 | "default_value": null, 1154 | "doc_type": "Purchase Order", 1155 | "docstatus": 0, 1156 | "doctype_or_field": "DocField", 1157 | "field_name": "supplier_name", 1158 | "idx": 0, 1159 | "modified": "2025-03-12 11:44:49.641941", 1160 | "modified_by": "Administrator", 1161 | "name": "Purchase Order-supplier_name-in_list_view", 1162 | "owner": "jayadeva@promaninfi.com", 1163 | "parent": null, 1164 | "parentfield": null, 1165 | "parenttype": null, 1166 | "property": "in_list_view", 1167 | "property_type": "Check", 1168 | "row_name": null, 1169 | "value": "1" 1170 | }, 1171 | { 1172 | "_assign": null, 1173 | "_comments": null, 1174 | "_liked_by": null, 1175 | "_user_tags": null, 1176 | "creation": "2023-04-11 18:17:16.126710", 1177 | "default_value": null, 1178 | "doc_type": "Purchase Order", 1179 | "docstatus": 0, 1180 | "doctype_or_field": "DocField", 1181 | "field_name": "transaction_date", 1182 | "idx": 0, 1183 | "modified": "2025-03-12 11:43:51.903757", 1184 | "modified_by": "Administrator", 1185 | "name": "Purchase Order-transaction_date-in_list_view", 1186 | "owner": "jayadeva@promaninfi.com", 1187 | "parent": null, 1188 | "parentfield": null, 1189 | "parenttype": null, 1190 | "property": "in_list_view", 1191 | "property_type": "Check", 1192 | "row_name": null, 1193 | "value": "0" 1194 | }, 1195 | { 1196 | "_assign": null, 1197 | "_comments": null, 1198 | "_liked_by": null, 1199 | "_user_tags": null, 1200 | "creation": "2025-02-20 15:24:34.333558", 1201 | "default_value": null, 1202 | "doc_type": "Purchase Order", 1203 | "docstatus": 0, 1204 | "doctype_or_field": "DocField", 1205 | "field_name": "approved_by", 1206 | "idx": 0, 1207 | "modified": "2025-02-20 15:25:04.272040", 1208 | "modified_by": "jayadeva@promaninfi.com", 1209 | "name": "Purchase Order-approved_by-in_list_view", 1210 | "owner": "jayadeva@promaninfi.com", 1211 | "parent": null, 1212 | "parentfield": null, 1213 | "parenttype": null, 1214 | "property": "in_list_view", 1215 | "property_type": "Check", 1216 | "row_name": null, 1217 | "value": "1" 1218 | }, 1219 | { 1220 | "_assign": null, 1221 | "_comments": null, 1222 | "_liked_by": null, 1223 | "_user_tags": null, 1224 | "creation": "2024-07-26 14:45:29.238413", 1225 | "default_value": null, 1226 | "doc_type": "Purchase Order", 1227 | "docstatus": 0, 1228 | "doctype_or_field": "DocType", 1229 | "field_name": null, 1230 | "idx": 0, 1231 | "modified": "2024-07-26 14:45:29.238413", 1232 | "modified_by": "jayadeva@promaninfi.com", 1233 | "name": "Purchase Order-main-default_print_format", 1234 | "owner": "jayadeva@promaninfi.com", 1235 | "parent": null, 1236 | "parentfield": null, 1237 | "parenttype": null, 1238 | "property": "default_print_format", 1239 | "property_type": "Data", 1240 | "row_name": null, 1241 | "value": "Standard1" 1242 | }, 1243 | { 1244 | "_assign": null, 1245 | "_comments": null, 1246 | "_liked_by": null, 1247 | "_user_tags": null, 1248 | "creation": "2020-06-02 09:11:13.452413", 1249 | "default_value": null, 1250 | "doc_type": "Purchase Order", 1251 | "docstatus": 0, 1252 | "doctype_or_field": "DocField", 1253 | "field_name": "naming_series", 1254 | "idx": 0, 1255 | "modified": "2024-04-01 15:55:06.887957", 1256 | "modified_by": "sharath@promaninfi.com", 1257 | "name": "Purchase Order-naming_series-default", 1258 | "owner": "soumya@promaninfi.com", 1259 | "parent": null, 1260 | "parentfield": null, 1261 | "parenttype": null, 1262 | "property": "default", 1263 | "property_type": "Text", 1264 | "row_name": null, 1265 | "value": "" 1266 | }, 1267 | { 1268 | "_assign": null, 1269 | "_comments": null, 1270 | "_liked_by": null, 1271 | "_user_tags": null, 1272 | "creation": "2020-06-02 09:08:07.793160", 1273 | "default_value": null, 1274 | "doc_type": "Purchase Order", 1275 | "docstatus": 0, 1276 | "doctype_or_field": "DocField", 1277 | "field_name": "naming_series", 1278 | "idx": 0, 1279 | "modified": "2024-04-01 15:55:06.856666", 1280 | "modified_by": "sharath@promaninfi.com", 1281 | "name": "Purchase Order-naming_series-options", 1282 | "owner": "soumya@promaninfi.com", 1283 | "parent": null, 1284 | "parentfield": null, 1285 | "parenttype": null, 1286 | "property": "options", 1287 | "property_type": "Text", 1288 | "row_name": null, 1289 | "value": "\nPO/ACE/2425.####\nPO/ACE/2223.####\nPO/ACE/2122.####\nPO/ACE/2122.RW\nPO/ACE/2021.####\nPO/ACE/2021.RW\nPO/ACE/2324.####" 1290 | }, 1291 | { 1292 | "_assign": null, 1293 | "_comments": null, 1294 | "_liked_by": null, 1295 | "_user_tags": null, 1296 | "creation": "2023-09-12 12:57:16.659741", 1297 | "default_value": null, 1298 | "doc_type": "Purchase Order", 1299 | "docstatus": 0, 1300 | "doctype_or_field": "DocField", 1301 | "field_name": "in_words", 1302 | "idx": 0, 1303 | "modified": "2023-09-12 12:57:16.659741", 1304 | "modified_by": "jayadeva@promaninfi.com", 1305 | "name": "Purchase Order-in_words-print_hide", 1306 | "owner": "jayadeva@promaninfi.com", 1307 | "parent": null, 1308 | "parentfield": null, 1309 | "parenttype": null, 1310 | "property": "print_hide", 1311 | "property_type": "Check", 1312 | "row_name": null, 1313 | "value": "0" 1314 | }, 1315 | { 1316 | "_assign": null, 1317 | "_comments": null, 1318 | "_liked_by": null, 1319 | "_user_tags": null, 1320 | "creation": "2023-09-12 12:57:16.642814", 1321 | "default_value": null, 1322 | "doc_type": "Purchase Order", 1323 | "docstatus": 0, 1324 | "doctype_or_field": "DocField", 1325 | "field_name": "in_words", 1326 | "idx": 0, 1327 | "modified": "2023-09-12 12:57:16.642814", 1328 | "modified_by": "jayadeva@promaninfi.com", 1329 | "name": "Purchase Order-in_words-hidden", 1330 | "owner": "jayadeva@promaninfi.com", 1331 | "parent": null, 1332 | "parentfield": null, 1333 | "parenttype": null, 1334 | "property": "hidden", 1335 | "property_type": "Check", 1336 | "row_name": null, 1337 | "value": "0" 1338 | }, 1339 | { 1340 | "_assign": null, 1341 | "_comments": null, 1342 | "_liked_by": null, 1343 | "_user_tags": null, 1344 | "creation": "2023-09-12 12:57:16.268119", 1345 | "default_value": null, 1346 | "doc_type": "Purchase Order", 1347 | "docstatus": 0, 1348 | "doctype_or_field": "DocField", 1349 | "field_name": "disable_rounded_total", 1350 | "idx": 0, 1351 | "modified": "2023-09-12 12:57:16.268119", 1352 | "modified_by": "jayadeva@promaninfi.com", 1353 | "name": "Purchase Order-disable_rounded_total-default", 1354 | "owner": "jayadeva@promaninfi.com", 1355 | "parent": null, 1356 | "parentfield": null, 1357 | "parenttype": null, 1358 | "property": "default", 1359 | "property_type": "Text", 1360 | "row_name": null, 1361 | "value": "0" 1362 | }, 1363 | { 1364 | "_assign": null, 1365 | "_comments": null, 1366 | "_liked_by": null, 1367 | "_user_tags": null, 1368 | "creation": "2023-09-12 12:57:16.247648", 1369 | "default_value": null, 1370 | "doc_type": "Purchase Order", 1371 | "docstatus": 0, 1372 | "doctype_or_field": "DocField", 1373 | "field_name": "rounded_total", 1374 | "idx": 0, 1375 | "modified": "2023-09-12 12:57:16.247648", 1376 | "modified_by": "jayadeva@promaninfi.com", 1377 | "name": "Purchase Order-rounded_total-print_hide", 1378 | "owner": "jayadeva@promaninfi.com", 1379 | "parent": null, 1380 | "parentfield": null, 1381 | "parenttype": null, 1382 | "property": "print_hide", 1383 | "property_type": "Check", 1384 | "row_name": null, 1385 | "value": "0" 1386 | }, 1387 | { 1388 | "_assign": null, 1389 | "_comments": null, 1390 | "_liked_by": null, 1391 | "_user_tags": null, 1392 | "creation": "2023-09-12 12:57:16.228205", 1393 | "default_value": null, 1394 | "doc_type": "Purchase Order", 1395 | "docstatus": 0, 1396 | "doctype_or_field": "DocField", 1397 | "field_name": "rounded_total", 1398 | "idx": 0, 1399 | "modified": "2023-09-12 12:57:16.228205", 1400 | "modified_by": "jayadeva@promaninfi.com", 1401 | "name": "Purchase Order-rounded_total-hidden", 1402 | "owner": "jayadeva@promaninfi.com", 1403 | "parent": null, 1404 | "parentfield": null, 1405 | "parenttype": null, 1406 | "property": "hidden", 1407 | "property_type": "Check", 1408 | "row_name": null, 1409 | "value": "0" 1410 | }, 1411 | { 1412 | "_assign": null, 1413 | "_comments": null, 1414 | "_liked_by": null, 1415 | "_user_tags": null, 1416 | "creation": "2023-09-12 12:57:16.209174", 1417 | "default_value": null, 1418 | "doc_type": "Purchase Order", 1419 | "docstatus": 0, 1420 | "doctype_or_field": "DocField", 1421 | "field_name": "base_rounded_total", 1422 | "idx": 0, 1423 | "modified": "2023-09-12 12:57:16.209174", 1424 | "modified_by": "jayadeva@promaninfi.com", 1425 | "name": "Purchase Order-base_rounded_total-print_hide", 1426 | "owner": "jayadeva@promaninfi.com", 1427 | "parent": null, 1428 | "parentfield": null, 1429 | "parenttype": null, 1430 | "property": "print_hide", 1431 | "property_type": "Check", 1432 | "row_name": null, 1433 | "value": "1" 1434 | }, 1435 | { 1436 | "_assign": null, 1437 | "_comments": null, 1438 | "_liked_by": null, 1439 | "_user_tags": null, 1440 | "creation": "2023-09-12 12:57:16.190742", 1441 | "default_value": null, 1442 | "doc_type": "Purchase Order", 1443 | "docstatus": 0, 1444 | "doctype_or_field": "DocField", 1445 | "field_name": "base_rounded_total", 1446 | "idx": 0, 1447 | "modified": "2023-09-12 12:57:16.190742", 1448 | "modified_by": "jayadeva@promaninfi.com", 1449 | "name": "Purchase Order-base_rounded_total-hidden", 1450 | "owner": "jayadeva@promaninfi.com", 1451 | "parent": null, 1452 | "parentfield": null, 1453 | "parenttype": null, 1454 | "property": "hidden", 1455 | "property_type": "Check", 1456 | "row_name": null, 1457 | "value": "0" 1458 | }, 1459 | { 1460 | "_assign": null, 1461 | "_comments": null, 1462 | "_liked_by": null, 1463 | "_user_tags": null, 1464 | "creation": "2023-08-11 15:49:42.681005", 1465 | "default_value": null, 1466 | "doc_type": "Purchase Order", 1467 | "docstatus": 0, 1468 | "doctype_or_field": "DocField", 1469 | "field_name": "payment_schedule", 1470 | "idx": 0, 1471 | "modified": "2023-08-11 15:49:42.681005", 1472 | "modified_by": "shashikala@promaninfi.com", 1473 | "name": "Purchase Order-payment_schedule-print_hide", 1474 | "owner": "shashikala@promaninfi.com", 1475 | "parent": null, 1476 | "parentfield": null, 1477 | "parenttype": null, 1478 | "property": "print_hide", 1479 | "property_type": "Check", 1480 | "row_name": null, 1481 | "value": "1" 1482 | }, 1483 | { 1484 | "_assign": null, 1485 | "_comments": null, 1486 | "_liked_by": null, 1487 | "_user_tags": null, 1488 | "creation": "2023-08-11 15:49:42.663650", 1489 | "default_value": null, 1490 | "doc_type": "Purchase Order", 1491 | "docstatus": 0, 1492 | "doctype_or_field": "DocField", 1493 | "field_name": "due_date", 1494 | "idx": 0, 1495 | "modified": "2023-08-11 15:49:42.663650", 1496 | "modified_by": "shashikala@promaninfi.com", 1497 | "name": "Purchase Order-due_date-print_hide", 1498 | "owner": "shashikala@promaninfi.com", 1499 | "parent": null, 1500 | "parentfield": null, 1501 | "parenttype": null, 1502 | "property": "print_hide", 1503 | "property_type": "Check", 1504 | "row_name": null, 1505 | "value": "0" 1506 | }, 1507 | { 1508 | "_assign": null, 1509 | "_comments": null, 1510 | "_liked_by": null, 1511 | "_user_tags": null, 1512 | "creation": "2023-06-23 18:10:29.704115", 1513 | "default_value": null, 1514 | "doc_type": "Purchase Order", 1515 | "docstatus": 0, 1516 | "doctype_or_field": "DocField", 1517 | "field_name": "scan_barcode", 1518 | "idx": 0, 1519 | "modified": "2023-06-23 18:10:29.704115", 1520 | "modified_by": "jayadeva@promaninfi.com", 1521 | "name": "Purchase Order-scan_barcode-hidden", 1522 | "owner": "jayadeva@promaninfi.com", 1523 | "parent": null, 1524 | "parentfield": null, 1525 | "parenttype": null, 1526 | "property": "hidden", 1527 | "property_type": "Check", 1528 | "row_name": null, 1529 | "value": "0" 1530 | }, 1531 | { 1532 | "_assign": null, 1533 | "_comments": null, 1534 | "_liked_by": null, 1535 | "_user_tags": null, 1536 | "creation": "2023-04-11 18:17:16.066095", 1537 | "default_value": null, 1538 | "doc_type": "Purchase Order", 1539 | "docstatus": 0, 1540 | "doctype_or_field": "DocField", 1541 | "field_name": "grand_total", 1542 | "idx": 0, 1543 | "modified": "2023-04-11 18:17:16.066095", 1544 | "modified_by": "jayadeva@promaninfi.com", 1545 | "name": "Purchase Order-grand_total-in_list_view", 1546 | "owner": "jayadeva@promaninfi.com", 1547 | "parent": null, 1548 | "parentfield": null, 1549 | "parenttype": null, 1550 | "property": "in_list_view", 1551 | "property_type": "Check", 1552 | "row_name": null, 1553 | "value": "0" 1554 | } 1555 | ], 1556 | "sync_on_migrate": 1 1557 | } --------------------------------------------------------------------------------