├── 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 | }
--------------------------------------------------------------------------------