commit 7113bf1867514b9f05760607ff60898590b5198e Author: Duradundi Date: Wed Aug 19 11:36:01 2026 +0000 Initial commit: sfda_parser Frappe app diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b901702 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# Root editor config file +root = true + +# Common settings +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +# python, js indentation settings +[{*.py,*.js,*.vue,*.css,*.scss,*.html}] +indent_style = tab +indent_size = 4 +max_line_length = 99 + +# JSON files - mostly doctype schema files +[{*.json}] +insert_final_newline = false +indent_style = space +indent_size = 2 diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..c5e7d68 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,124 @@ +{ + "env": { + "browser": true, + "node": true, + "es2022": true + }, + "parserOptions": { + "sourceType": "module" + }, + "extends": "eslint:recommended", + "rules": { + "indent": "off", + "brace-style": "off", + "no-mixed-spaces-and-tabs": "off", + "no-useless-escape": "off", + "space-unary-ops": ["error", { "words": true }], + "linebreak-style": "off", + "quotes": ["off"], + "semi": "off", + "camelcase": "off", + "no-unused-vars": "off", + "no-console": ["warn"], + "no-extra-boolean-cast": ["off"], + "no-control-regex": ["off"], + }, + "root": true, + "globals": { + "frappe": true, + "Vue": true, + "SetVueGlobals": true, + "__": true, + "repl": true, + "Class": true, + "locals": true, + "cint": true, + "cstr": true, + "cur_frm": true, + "cur_dialog": true, + "cur_page": true, + "cur_list": true, + "cur_tree": true, + "msg_dialog": true, + "is_null": true, + "in_list": true, + "has_common": true, + "posthog": true, + "has_words": true, + "validate_email": true, + "open_web_template_values_editor": true, + "validate_name": true, + "validate_phone": true, + "validate_url": true, + "get_number_format": true, + "format_number": true, + "format_currency": true, + "comment_when": true, + "open_url_post": true, + "toTitle": true, + "lstrip": true, + "rstrip": true, + "strip": true, + "strip_html": true, + "replace_all": true, + "flt": true, + "precision": true, + "CREATE": true, + "AMEND": true, + "CANCEL": true, + "copy_dict": true, + "get_number_format_info": true, + "strip_number_groups": true, + "print_table": true, + "Layout": true, + "web_form_settings": true, + "$c": true, + "$a": true, + "$i": true, + "$bg": true, + "$y": true, + "$c_obj": true, + "refresh_many": true, + "refresh_field": true, + "toggle_field": true, + "get_field_obj": true, + "get_query_params": true, + "unhide_field": true, + "hide_field": true, + "set_field_options": true, + "getCookie": true, + "getCookies": true, + "get_url_arg": true, + "md5": true, + "$": true, + "jQuery": true, + "moment": true, + "hljs": true, + "Awesomplete": true, + "Sortable": true, + "Showdown": true, + "Taggle": true, + "Gantt": true, + "Slick": true, + "Webcam": true, + "PhotoSwipe": true, + "PhotoSwipeUI_Default": true, + "io": true, + "JsBarcode": true, + "L": true, + "Chart": true, + "DataTable": true, + "Cypress": true, + "cy": true, + "it": true, + "describe": true, + "expect": true, + "context": true, + "before": true, + "beforeEach": true, + "after": true, + "qz": true, + "localforage": true, + "extend_cscript": true + } +} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..f6fccf1 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,69 @@ +exclude: 'node_modules|.git' +default_stages: [pre-commit] +fail_fast: false + + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + files: "sfda_parser.*" + exclude: ".*json$|.*txt$|.*csv|.*md|.*svg" + - id: check-merge-conflict + - id: check-ast + - id: check-json + - id: check-toml + - id: check-yaml + - id: debug-statements + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.8.1 + hooks: + - id: ruff + name: "Run ruff import sorter" + args: ["--select=I", "--fix"] + + - id: ruff + name: "Run ruff linter" + + - id: ruff-format + name: "Run ruff formatter" + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + types_or: [javascript, vue, scss] + # Ignore any files that might contain jinja / bundles + exclude: | + (?x)^( + sfda_parser/public/dist/.*| + .*node_modules.*| + .*boilerplate.*| + sfda_parser/templates/includes/.*| + sfda_parser/public/js/lib/.* + )$ + + + - repo: https://github.com/pre-commit/mirrors-eslint + rev: v8.44.0 + hooks: + - id: eslint + types_or: [javascript] + args: ['--quiet'] + # Ignore any files that might contain jinja / bundles + exclude: | + (?x)^( + sfda_parser/public/dist/.*| + cypress/.*| + .*node_modules.*| + .*boilerplate.*| + sfda_parser/templates/includes/.*| + sfda_parser/public/js/lib/.* + )$ + +ci: + autoupdate_schedule: weekly + skip: [] + submodules: false diff --git a/README.md b/README.md new file mode 100644 index 0000000..12c7663 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +### SFDA Parser + +SFDA weekly alert scraper + +### Installation + +You can install this app using the [bench](https://github.com/frappe/bench) CLI: + +```bash +cd $PATH_TO_YOUR_BENCH +bench get-app $URL_OF_THIS_REPO --branch develop +bench install-app sfda_parser +``` + +### Contributing + +This app uses `pre-commit` for code formatting and linting. Please [install pre-commit](https://pre-commit.com/#installation) and enable it for this repository: + +```bash +cd apps/sfda_parser +pre-commit install +``` + +Pre-commit is configured to use the following tools for checking and formatting your code: + +- ruff +- eslint +- prettier +- pyupgrade + +### License + +mit diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..8aa2645 --- /dev/null +++ b/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [year] [fullname] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..55daa3b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,59 @@ +[project] +name = "sfda_parser" +authors = [ + { name = "seyfert", email = "support@seeraarabia.com"} +] +description = "SFDA weekly alert scraper" +requires-python = ">=3.10" +readme = "README.md" +dynamic = ["version"] +dependencies = [ + # "frappe~=15.0.0" # Installed and managed by bench. + "beautifulsoup4>=4.12.0", + "pdfplumber>=0.11.0", + "requests>=2.31.0", +] + +[build-system] +requires = ["flit_core >=3.4,<4"] +build-backend = "flit_core.buildapi" + +# These dependencies are only installed when developer mode is enabled +[tool.bench.dev-dependencies] +# package_name = "~=1.1.0" + +[tool.ruff] +line-length = 110 +target-version = "py310" + +[tool.ruff.lint] +select = [ + "F", + "E", + "W", + "I", + "UP", + "B", + "RUF", +] +ignore = [ + "B017", # assertRaises(Exception) - should be more specific + "B018", # useless expression, not assigned to anything + "B023", # function doesn't bind loop variable - will have last iteration's value + "B904", # raise inside except without from + "E101", # indentation contains mixed spaces and tabs + "E402", # module level import not at top of file + "E501", # line too long + "E741", # ambiguous variable name + "F401", # "unused" imports + "F403", # can't detect undefined names from * import + "F405", # can't detect undefined names from * import + "F722", # syntax error in forward type annotation + "W191", # indentation contains tabs +] +typing-modules = ["frappe.types.DF"] + +[tool.ruff.format] +quote-style = "double" +indent-style = "tab" +docstring-code-format = true diff --git a/sfda_parser/__init__.py b/sfda_parser/__init__.py new file mode 100644 index 0000000..f102a9c --- /dev/null +++ b/sfda_parser/__init__.py @@ -0,0 +1 @@ +__version__ = "0.0.1" diff --git a/sfda_parser/__pycache__/__init__.cpython-310.pyc b/sfda_parser/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..05a5cc9 Binary files /dev/null and b/sfda_parser/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/__pycache__/hooks.cpython-310.pyc b/sfda_parser/__pycache__/hooks.cpython-310.pyc new file mode 100644 index 0000000..c3ddbfc Binary files /dev/null and b/sfda_parser/__pycache__/hooks.cpython-310.pyc differ diff --git a/sfda_parser/api/__init__.py b/sfda_parser/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/api/__pycache__/__init__.cpython-310.pyc b/sfda_parser/api/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..cb3df39 Binary files /dev/null and b/sfda_parser/api/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/api/__pycache__/sfda_scraper.cpython-310.pyc b/sfda_parser/api/__pycache__/sfda_scraper.cpython-310.pyc new file mode 100644 index 0000000..ae3fa3e Binary files /dev/null and b/sfda_parser/api/__pycache__/sfda_scraper.cpython-310.pyc differ diff --git a/sfda_parser/api/sfda_scraper.py b/sfda_parser/api/sfda_scraper.py new file mode 100644 index 0000000..0d6caee --- /dev/null +++ b/sfda_parser/api/sfda_scraper.py @@ -0,0 +1,87 @@ +"""Whitelisted API for SFDA scraper and ADE PublishDetails preview.""" + +from __future__ import annotations + +import frappe + +from sfda_parser.sfda_scraper.detail_page import ( + fetch_publish_details, + resolve_detail_url_for_ncmdr_ref, +) +from sfda_parser.sfda_scraper.importer import import_latest_weekly_alerts +from sfda_parser.sfda_scraper.reparse import reparse_all_stored_pdf_device_lists + + +@frappe.whitelist() +def run_sfda_scraper_now(): + frappe.only_for("System Manager") + return import_latest_weekly_alerts() + + +@frappe.whitelist() +def reparse_device_list_from_stored_pdfs(sfda_entries_name: str | None = None): + """Rebuild Device List child rows from stored detail_pdf using current PDF parser.""" + frappe.only_for("System Manager") + return reparse_all_stored_pdf_device_lists(sfda_entries_name=sfda_entries_name) + + +@frappe.whitelist() +def get_ade_publish_details( + detail_url: str | None = None, + sfda_entries_name: str | None = None, + sfda_device_entry_name: str | None = None, + ncmdr_ref: str | None = None, + include_device_list_from_pdf: int | str = 0, +): + """ + Load ADE PublishDetails via the ERP server (works when your PC browser is blocked). + Pass detail_url and/or sfda_entries_name with a child row reference. + """ + include_pdf = str(include_device_list_from_pdf).lower() in ("1", "true", "yes") + + url = (detail_url or "").strip() + if sfda_entries_name and not url: + doc = frappe.get_doc("SFDA Entries", sfda_entries_name) + child_row = None + + if sfda_device_entry_name: + child_row = next( + (row for row in doc.device_list if row.name == sfda_device_entry_name), + None, + ) + elif ncmdr_ref: + target = (ncmdr_ref or "").strip().upper() + child_row = next( + ( + row + for row in doc.device_list + if (row.ncmdr_ref or "").strip().upper() == target + ), + None, + ) + + if child_row: + url = (child_row.get("ade_detail_url") or "").strip() + if not url and child_row.ncmdr_ref: + url = resolve_detail_url_for_ncmdr_ref(child_row.ncmdr_ref) or "" + if url: + child_row.ade_detail_url = url + doc.save(ignore_permissions=True) + + if not url: + frappe.throw( + "No ADE URL available. Pass detail_url, select a device row with an ADE URL, " + "or re-run the weekly import." + ) + + if not url.startswith("http"): + url = f"https://ade.sfda.gov.sa/Fsca/PublishDetails/{url}" + + try: + return fetch_publish_details(url, include_device_list_from_pdf=include_pdf) + except Exception as exc: + frappe.log_error(title="SFDA: ADE fetch failed", message=f"URL: {url}\n{exc}") + frappe.throw( + f"Could not load ADE from the server: {exc}. " + "The site may be blocked on your PC but reachable from ERP." + ) diff --git a/sfda_parser/config/__init__.py b/sfda_parser/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/fixtures/client_script.json b/sfda_parser/fixtures/client_script.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/sfda_parser/fixtures/client_script.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/sfda_parser/fixtures/custom_docperm.json b/sfda_parser/fixtures/custom_docperm.json new file mode 100644 index 0000000..11d1631 --- /dev/null +++ b/sfda_parser/fixtures/custom_docperm.json @@ -0,0 +1,15722 @@ +[ + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-30 17:40:42.968669", + "name": "4ktpvl1rma", + "parent": "Notification Log", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:13:25.699587", + "name": "q594gkpguc", + "parent": "Project Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:13:45.015991", + "name": "qbavvevsc7", + "parent": "Year", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:19:15.081499", + "name": "tie1hptgj7", + "parent": "Project", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:20:14.412615", + "name": "u50us2a0jl", + "parent": "Project Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Project Manager (Cluster)", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:20:38.940330", + "name": "ucmgdv6l4d", + "parent": "Project Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Project Consultant", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:20:56.835705", + "name": "ui9ft66jrp", + "parent": "Project Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Engg Design Department", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:21:15.422889", + "name": "uo22ne22h2", + "parent": "Project Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "CEO", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-12 17:22:15.324646", + "name": "vap23tujd8", + "parent": "Project Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-19 12:13:06.214332", + "name": "se631bk032", + "parent": "Site Visit", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-19 12:13:30.864505", + "name": "slta4s9olo", + "parent": "Site Visit", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-19 12:14:04.732699", + "name": "t0gks7j32t", + "parent": "Site Visit", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Consultant Office", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-19 12:14:51.826300", + "name": "tf6lqh4edd", + "parent": "Site Visit", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:36:40.043944", + "name": "5s0up4hgo4", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:37:01.545628", + "name": "62no5q09tt", + "parent": "Contractor Information", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:37:30.708606", + "name": "6brluqek0i", + "parent": "Contractor Information", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:37:53.861983", + "name": "6j3mllb5ud", + "parent": "Contractor Information", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Consultant Office", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:38:28.753476", + "name": "6u0rdp0e5e", + "parent": "Contractor Information", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-23 16:39:14.436830", + "name": "7c9a3uv322", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:39:42.814927", + "name": "7l408r56jm", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor Representative", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:40:14.473686", + "name": "7v1hn3h51h", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Consultant Office", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-06-23 16:40:52.994326", + "name": "8b2olkg5iu", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Cluster Supervising Engineer", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:41:16.631330", + "name": "8ifgnkch4c", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Network Project Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:58:22.961783", + "name": "ij57f9nlkh", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "MOH", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.837199", + "name": "d1rsrd3lbv", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:14.399813", + "name": "d20oe3p95u", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "End user", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:27.577036", + "name": "d24reppiuc", + "parent": "Asset Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:59.941507", + "name": "d2evrrn6c3", + "parent": "UOM", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.874683", + "name": "d2pibsl4iq", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.455246", + "name": "d2uoosj5ts", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:03:32.055043", + "name": "d3bo61rsao", + "parent": "Item Tax Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:04:33.487134", + "name": "d3uu22ch43", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "End user", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:05:38.071233", + "name": "d4j4qhsdpp", + "parent": "Issue Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:05:54.721207", + "name": "d4obvo59a2", + "parent": "Issue Priority", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.696694", + "name": "d57amdiq03", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:11.076127", + "name": "d6lm2203qk", + "parent": "Manufacturer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:23.506816", + "name": "d6pjdlb9kp", + "parent": "Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:56.124978", + "name": "d73plbd5tg", + "parent": "Project", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:19:09.531259", + "name": "dcgoeuj21f", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:20:05.482340", + "name": "dd28a5ljup", + "parent": "Work_Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:20:44.630063", + "name": "ddefplvor2", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:21:04.750069", + "name": "ddknevpnpb", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:21:31.986800", + "name": "ddt9tsu4g4", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:21:53.052515", + "name": "de3rheg5h5", + "parent": "Asset Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:22:10.593296", + "name": "de9co16jrb", + "parent": "UOM", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:22:30.347540", + "name": "defhqavk14", + "parent": "Item Tax Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:22:54.906830", + "name": "den6ui68c3", + "parent": "Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:23:07.470863", + "name": "der4orhkot", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:23:27.704956", + "name": "df1eakqr4i", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:23:45.441161", + "name": "df7263es3b", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:24:30.143646", + "name": "dfkv8cjgq2", + "parent": "Issue Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:24:55.836472", + "name": "dft08n0oq3", + "parent": "Issue Priority", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:26:11.891582", + "name": "dgkoavc67j", + "parent": "Manufacturer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:47:46.510004", + "name": "dt99hpmk4l", + "parent": "Project", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:49:42.476706", + "name": "dudim5ai7o", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:50:39.490210", + "name": "duvcjdpat7", + "parent": "Asset Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:51:15.897171", + "name": "dvaphtlnlk", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:51:40.029096", + "name": "dvic5qudvf", + "parent": "UOM", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:52:39.045456", + "name": "e04mhv0q0o", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:53:05.522205", + "name": "e0cvj52bn3", + "parent": "Asset Maintenance Log", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:54:05.880700", + "name": "e0vsiarcu8", + "parent": "Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:54:34.493070", + "name": "e18qmjqfkh", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:55:05.982197", + "name": "e1ij9229er", + "parent": "PPM OF CT SCAN MACHINE", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:55:53.581980", + "name": "e21fe20j2u", + "parent": "PPM OF ELECTRICAL FIXTURES INSIDE ROOMS", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:56:29.577331", + "name": "e2cns65jca", + "parent": "PPM OF ELECTRICAL PANELS", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:57:24.843184", + "name": "e2u0ke0abe", + "parent": "PPM OF FIRE ALARM DEVICES", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:58:37.077685", + "name": "e3kipe0nsk", + "parent": "PPM OF MRI SCAN MACHINE", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:01:16.169787", + "name": "e5691ro6vg", + "parent": "PPM OF MRI SCAN MACHINE", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:01:37.981351", + "name": "e5d5100nrq", + "parent": "PPM OF FIRE ALARM DEVICES", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:01:56.469316", + "name": "e5j0ljcsf6", + "parent": "PPM OF ELECTRICAL PANELS", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:02:23.671514", + "name": "e5relsmotd", + "parent": "PPM OF ELECTRICAL FIXTURES INSIDE ROOMS", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:03:13.180343", + "name": "e6at71rrei", + "parent": "PPM OF CT SCAN MACHINE", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.169823", + "name": "e6slbkmqtk", + "parent": "Item Group", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:23.101052", + "name": "e70ocmuuj9", + "parent": "Item Group", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.254685", + "name": "e7cutt3rda", + "parent": "Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:23.087230", + "name": "e7jf4m5af9", + "parent": "Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:47.160885", + "name": "e7qv8d7br8", + "parent": "Employee", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:06:01.300013", + "name": "e7vdbrdfe9", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:06:14.160733", + "name": "e83gnafn91", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:08:02.786436", + "name": "e95bakocsa", + "parent": "Support Plans", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:08:22.640219", + "name": "e9binlou12", + "parent": "Support Plans", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:08:53.503895", + "name": "e9l7mt20oc", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:09:18.559601", + "name": "e9t39ogv51", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:10:47.999725", + "name": "eap0cg8216", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:11:05.841882", + "name": "eaujs5ceet", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:08.027809", + "name": "ebi0ugriu7", + "parent": "Customer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.291889", + "name": "ebo0itihm1", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:16:27.541774", + "name": "ee33gaktsf", + "parent": "Tax Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:39.385610", + "name": "eeph2gkf9h", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.536800", + "name": "ef13a3t13l", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:32:35.563091", + "name": "enhj60g85j", + "parent": "User", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:33:12.527214", + "name": "ent55uftio", + "parent": "Role", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:33:12.539747", + "name": "ent6nje78q", + "parent": "Role", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 09:52:31.318092", + "name": "vii9mg015h", + "parent": "Employee", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:00:51.187966", + "name": "0qjg6sqqfk", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:01:52.517281", + "name": "0r6lem30tc", + "parent": "Finance Book", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:06:17.302876", + "name": "0tpd9eq05l", + "parent": "Asset Movement", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:34:08.529985", + "name": "1e3lohmi3c", + "parent": "Issue Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:34:28.387872", + "name": "1e9ttl8k0o", + "parent": "Issue Priority", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:14:51.054108", + "name": "25uu6dq4k8", + "parent": "PPM CT SCAN MACHINE TEMPLATE", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:15:15.497608", + "name": "266j5i48qt", + "parent": "PPM CT SCAN MACHINE TEMPLATE", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:15:36.396946", + "name": "26d3lj9dtq", + "parent": "PPM MRI Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:15:58.892174", + "name": "26k8rgjm1k", + "parent": "PPM MRI Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:15:58.919127", + "name": "26k8gadt2b", + "parent": "PPM MRI Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:40:00.795215", + "name": "2kmo4ct4aa", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:40:34.267309", + "name": "2l172qn8ii", + "parent": "Asset Maintenance Log", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 13:00:42.633240", + "name": "30qqqa0a75", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-17 20:00:13.166295", + "name": "ve4kq159ee", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-17 20:05:34.195335", + "name": "vh8u5brcqo", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-17 20:05:47.539741", + "name": "vhd4jiissd", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:41:21.586675", + "name": "m5c088a47m", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:41:49.670420", + "name": "m5kqlqso8a", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:15.842132", + "name": "m5sua0s72q", + "parent": "Tax Withholding Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:36.759162", + "name": "m63f0u0u1d", + "parent": "Purchase Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:52.293170", + "name": "m68eb5nrpm", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:04.045817", + "name": "m6c47mbr27", + "parent": "Project", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:17.959758", + "name": "m6gbr6cuss", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:34.446224", + "name": "m6lic5j2is", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:52.642312", + "name": "m6r8hlj9u8", + "parent": "Tax Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:34.337346", + "name": "m787v2fl0h", + "parent": "Purchase Taxes and Charges Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:52.255650", + "name": "m7dqgqu1lm", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:08.070311", + "name": "m7ioffif38", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:25.982001", + "name": "m7ob51s49p", + "parent": "Address", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.994232", + "name": "m7ujjs39hv", + "parent": "Contact", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:04.722113", + "name": "m84gk9aikn", + "parent": "Customer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:24.539983", + "name": "m8al84fdrd", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.754644", + "name": "m8f3nlnuqo", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:55.599662", + "name": "m8kc2atvd0", + "parent": "Letter Head", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:07.550266", + "name": "m8o32abbh6", + "parent": "Print Heading", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:30.378300", + "name": "m8v73pljpk", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:44.197713", + "name": "m93hihq19h", + "parent": "Sales Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:12.250855", + "name": "m9caof0924", + "parent": "Asset Repair", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:26.386297", + "name": "m9gphuobo6", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:39.009731", + "name": "m9km11itu7", + "parent": "Issue", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:49:06.278093", + "name": "m9t6dfl0hv", + "parent": "Purchase Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:49:19.283501", + "name": "ma1ah0romp", + "parent": "Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:49:36.383071", + "name": "ma6lq9io7o", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:49:50.770039", + "name": "mab5lavaee", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:50:11.875131", + "name": "maho7ruhak", + "parent": "UOM", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:52:16.601141", + "name": "mboms2t1d5", + "parent": "Contract", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:36:13.315280", + "name": "n5gl776mpu", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:36:46.641086", + "name": "n5r4hfelsn", + "parent": "Purchase Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:37:25.713205", + "name": "n67cep5530", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:37:44.683245", + "name": "n6d9h2ve7q", + "parent": "Tax Withholding Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:38:38.450058", + "name": "n6u22ktsa1", + "parent": "Purchase Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:40:04.833765", + "name": "n7p21stt2l", + "parent": "Project", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:41:05.650585", + "name": "n8c310gvr8", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:41:32.767076", + "name": "n8khr784s2", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:42:00.166334", + "name": "n8t3kkv0ua", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:42:21.279514", + "name": "n93miraq3r", + "parent": "Tax Category", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:42:41.476839", + "name": "n9a0jgi238", + "parent": "Purchase Taxes and Charges Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:43:06.882053", + "name": "n9hur4v423", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:43:37.805436", + "name": "n9rjug7ajm", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:43:59.528237", + "name": "na2dub0rsn", + "parent": "Address", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:44:31.689691", + "name": "nacdtjeus9", + "parent": "Contact", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:45:04.922240", + "name": "namqm1ups1", + "parent": "Customer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:45:49.357377", + "name": "nb4oegi2md", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:47:16.198302", + "name": "nbvr3f2bfv", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:47:45.085502", + "name": "nc8s0up7bf", + "parent": "Print Heading", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:48:07.031022", + "name": "ncfnv2c8o1", + "parent": "Letter Head", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:48:29.127728", + "name": "ncmjfofmug", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:48:54.998096", + "name": "ncun5n0s1q", + "parent": "Sales Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:49:17.769495", + "name": "nd5rke4api", + "parent": "Contract", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:49:41.561206", + "name": "ndd9ctmlov", + "parent": "Asset Repair", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:50:07.681826", + "name": "ndlea02asj", + "parent": "Issue", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 17:50:55.991529", + "name": "ne4hkplqnh", + "parent": "Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:00:20.137139", + "name": "njkqn6rg1s", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.299110", + "name": "nkb1vsrucs", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:04:23.766442", + "name": "nm0u2t3rfd", + "parent": "User", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:04:47.633323", + "name": "nm8goc4ua7", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:05:08.672724", + "name": "nmf27mj5o9", + "parent": "UOM", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:05:30.584613", + "name": "nmlpl19cj4", + "parent": "Payment Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:07:20.862421", + "name": "nno8kcl1a0", + "parent": "Mode of Payment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:07:52.901411", + "name": "no29vv1v3c", + "parent": "Bank Account", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-19 12:56:30.489439", + "name": "cdc1bhtvb4", + "parent": "Support Plans", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-20 11:59:11.368893", + "name": "5nh963jm4m", + "parent": "Purchase Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-20 11:59:29.647540", + "name": "5nn1ge9h5b", + "parent": "Purchase Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-20 12:19:44.822586", + "name": "63iouthmjk", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 14:45:14.994574", + "name": "cjiuq7orcg", + "parent": "Issue", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 14:51:44.192131", + "name": "cnchb3j1l9", + "parent": "Support Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:26:32.852612", + "name": "eeu8qpsm95", + "parent": "PPM Templates", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:26:58.578991", + "name": "ef6bltpdsf", + "parent": "PPM Templates", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:27:25.097358", + "name": "efeipfgs23", + "parent": "PPM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:28:58.687295", + "name": "egbtcu98k7", + "parent": "PPM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:29:31.033842", + "name": "egluppcbev", + "parent": "Warranty", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:29:52.346096", + "name": "egslsvo29p", + "parent": "Warranty", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:30:21.033883", + "name": "eh5ifk6n3b", + "parent": "Asset Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:30:32.889499", + "name": "eh995tjk42", + "parent": "Asset Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:31:50.979161", + "name": "ei1midohp7", + "parent": "Site Information", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:32:07.939260", + "name": "ei710mjmvt", + "parent": "Site Information", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:33:02.419584", + "name": "eio1l9h5g9", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.338366", + "name": "ep8n1s7cim", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:57.381076", + "name": "epne4e74ni", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.937221", + "name": "eq2hu1n0jb", + "parent": "Delivery Note", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:48:42.530540", + "name": "ertplg7h9u", + "parent": "Issue", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:52:31.445393", + "name": "eu5b9m80bb", + "parent": "PPM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:52:53.532139", + "name": "euc8u92jp1", + "parent": "PPM Templates", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:55:09.281237", + "name": "evml1q22p7", + "parent": "Asset Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:55:27.801729", + "name": "evsf3vt957", + "parent": "Warranty", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-27 16:07:15.199360", + "name": "2r4gbdqhoh", + "parent": "Customer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-10-18 18:48:38.447421", + "name": "fgeg5jrffp", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Employee", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-10-24 20:26:00.378577", + "name": "fg041sjika", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-10-29 17:23:34.088997", + "name": "fvrdnpbrkq", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-12-01 13:00:42.398615", + "name": "h9iogrut5j", + "parent": "Delivery Note", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-12-01 13:01:08.203879", + "name": "h9qq53mhdq", + "parent": "Payment Entry", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-12-01 13:02:56.562998", + "name": "hasl3cc996", + "parent": "Work Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 11:41:43.058949", + "name": "jnictousae", + "parent": "Journal Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 11:59:34.924830", + "name": "gsflihut59", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 12:01:15.340142", + "name": "6ac6s8sca6", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 12:01:57.658086", + "name": "chljrqpfd7", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-07 11:57:15.855696", + "name": "781ghq679o", + "parent": "Communication", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 20:50:19.578895", + "name": "8idj11qj1f", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:02:16.458619", + "name": "ltbjkb26cj", + "parent": "Material Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:03:06.969112", + "name": "j5pdgfpi8o", + "parent": "Material Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:03:21.384121", + "name": "9c8a2479ud", + "parent": "Material Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance User", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 22:33:24.384745", + "name": "2qviq7tdqi", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 08:59:22.701868", + "name": "bcvm44i0rt", + "parent": "Brand", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 09:25:17.902542", + "name": "s58q44e6dh", + "parent": "Work Job Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 10:06:20.553447", + "name": "47vgsoeb4i", + "parent": "Brand", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-26 16:55:07.494406", + "name": "2ngp9h1dec", + "parent": "Feedback", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 22:51:03.844010", + "name": "vbfuupjoft", + "parent": "User Permission", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 22:52:00.914724", + "name": "vc1qls0g6n", + "parent": "User Permission", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 23:08:20.687048", + "name": "vljug3l9mf", + "parent": "Asset Depreciation Schedule", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 09:24:48.235785", + "name": "d02iht69f5", + "parent": "User Permission", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 09:44:39.018298", + "name": "dbmmnj8htp", + "parent": "Feedback", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 11:35:29.789139", + "name": "fcl2qvtbtg", + "parent": "Asset Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 11:36:43.271530", + "name": "fdc2qmpf9a", + "parent": "Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 11:39:37.884862", + "name": "ff2i8071bm", + "parent": "Asset Depreciation Schedule", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 11:41:26.843447", + "name": "fg4k6db3i8", + "parent": "Asset Movement", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 11:51:28.230223", + "name": "fm0i0ni236", + "parent": "User Permission", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 12:03:26.585915", + "name": "ft11ti1unh", + "parent": "Feedback", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 16:22:01.769351", + "name": "kkhhg4i3iu", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 17:47:41.598786", + "name": "m6no7fh08g", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 17:50:08.011763", + "name": "m85g85okoc", + "parent": "Manufacturer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2025-03-19 17:51:48.113999", + "name": "m94pnamk6n", + "parent": "Stock Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 18:51:26.317055", + "name": "nc2vi1hltg", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 19:39:52.129600", + "name": "o8f1oasckt", + "parent": "Material Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:40:35.810393", + "name": "5a9mqre8sk", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:51:01.762127", + "name": "5gd9661sh7", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:54:43.503259", + "name": "5iijf567s4", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:54:59.472419", + "name": "5inkcvd8hl", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:55:15.568360", + "name": "5islod6unb", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:55:28.969200", + "name": "5j0rd31m55", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 12:55:40.778958", + "name": "5j4iibmt3o", + "parent": "Work_Order", + "permlevel": 2, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-21 13:18:37.728339", + "name": "60ipn2qttf", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 12:47:05.351592", + "name": "khbdldq1jk", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 12:48:16.740591", + "name": "ki1ov9nupk", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 12:48:39.836938", + "name": "ki90e8cjno", + "parent": "Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Finance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 12:53:20.251879", + "name": "kl0jgri1in", + "parent": "Asset Maintenance Log", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Finance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:50:10.103334", + "name": "q2u5s57ci1", + "parent": "Purchase Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.232836", + "name": "q490f9q0kl", + "parent": "Bin", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:00:58.541463", + "name": "d1rptc7k4b", + "parent": "Item", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Item Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:01:14.309896", + "name": "d20nrokf78", + "parent": "Asset", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:01:27.530602", + "name": "d24rio2nii", + "parent": "Asset Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:01:59.756639", + "name": "d2eurm5477", + "parent": "UOM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Item Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:02:33.451691", + "name": "d2pg6kqer8", + "parent": "Warehouse", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Item Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.102001", + "name": "d2um1een76", + "parent": "Cost Center", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:03:32.027838", + "name": "d3boj6s684", + "parent": "Item Tax Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:04:33.463228", + "name": "d3uug9q6sk", + "parent": "Work_Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:05:37.744891", + "name": "d4j3h7eub4", + "parent": "Issue Type", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:05:54.352840", + "name": "d4o8t14l28", + "parent": "Issue Priority", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.572440", + "name": "d579s3lpkm", + "parent": "Company", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:10.962040", + "name": "d6lm7hb4uu", + "parent": "Manufacturer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:09:23.081048", + "name": "d6pg0vecg6", + "parent": "Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:56.072632", + "name": "d73oe5kk7g", + "parent": "Project", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:14:12.308593", + "name": "d9jrbqk7ll", + "parent": "Work Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:52:38.835607", + "name": "e04lm458uo", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:53:05.207634", + "name": "e0ctjkmuft", + "parent": "Asset Maintenance Log", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:55:05.635783", + "name": "e1iihud6ke", + "parent": "PPM OF CT SCAN MACHINE", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:55:53.378839", + "name": "e21ebvkt0i", + "parent": "PPM OF ELECTRICAL FIXTURES INSIDE ROOMS", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:56:29.343964", + "name": "e2cmcos324", + "parent": "PPM OF ELECTRICAL PANELS", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:57:24.341409", + "name": "e2ttcfvp7s", + "parent": "PPM OF FIRE ALARM DEVICES", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:58:36.819945", + "name": "e3khii0mh3", + "parent": "PPM OF MRI SCAN MACHINE", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.089973", + "name": "e6skvmtlp5", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.156473", + "name": "e7ctmomo2c", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:47.138073", + "name": "e7qvafpmu3", + "parent": "Employee", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Employee", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:06:01.257920", + "name": "e7vck1o9u1", + "parent": "Department", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:08:02.465282", + "name": "e95a5tq908", + "parent": "Support Plans", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:08:53.188156", + "name": "e9l5di1334", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:10:47.963117", + "name": "eaovr4nrk0", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.970741", + "name": "ebhvpr273v", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.207888", + "name": "ebo05fnipd", + "parent": "Supplier", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:16:27.434717", + "name": "ee328kohki", + "parent": "Tax Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:39.368060", + "name": "eephsa5di5", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.515676", + "name": "ef13jp72g0", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:32:35.456643", + "name": "enhi7b5oro", + "parent": "User", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:33:11.872694", + "name": "ent27lfk78", + "parent": "Role", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:33:12.018561", + "name": "ent2k12em9", + "parent": "Role", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:01:52.473895", + "name": "0r6knmios9", + "parent": "Finance Book", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:06:17.227512", + "name": "0tpcv7uicc", + "parent": "Asset Movement", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:14:51.003487", + "name": "25uuhn90da", + "parent": "PPM CT SCAN MACHINE TEMPLATE", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 12:15:36.320849", + "name": "26d3l8c6lc", + "parent": "PPM MRI Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:15.798115", + "name": "m5sup8d6te", + "parent": "Tax Withholding Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:36.210789", + "name": "m63c4qqh4u", + "parent": "Purchase Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:43:17.864727", + "name": "m6ga8k7se9", + "parent": "Currency", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:34.292480", + "name": "m786gpvra2", + "parent": "Purchase Taxes and Charges Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:52.224500", + "name": "m7dqg8rku8", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.595999", + "name": "m7ikrm5he0", + "parent": "Incoterm", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:25.942654", + "name": "m7obgele8i", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:45:45.942628", + "name": "m7uj25k2b1", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:24.445164", + "name": "m8akaf0fmt", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:46:38.704354", + "name": "m8f3mm1igg", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:55.576835", + "name": "m8kb7vrtg8", + "parent": "Letter Head", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:07.524987", + "name": "m8o3bpqand", + "parent": "Print Heading", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:30.330017", + "name": "m8v7mvg2md", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:43.475885", + "name": "m93e7jml1i", + "parent": "Sales Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:11.886232", + "name": "m9c8akfufi", + "parent": "Asset Repair", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:38.644166", + "name": "m9kjefsgom", + "parent": "Issue", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Support Team", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:49:06.004349", + "name": "m9t4sa5947", + "parent": "Purchase Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:52:16.553114", + "name": "mbolegf26n", + "parent": "Contract", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.247486", + "name": "nkb0f024e0", + "parent": "Buying Settings", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 18:05:29.877461", + "name": "nmlmaa136b", + "parent": "Payment Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:07:20.819097", + "name": "nno89p3eeq", + "parent": "Mode of Payment", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 18:07:52.501761", + "name": "no26c20pb5", + "parent": "Bank Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-24 19:02:10.304147", + "name": "muc7apn1bn", + "parent": "Site Information", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 14:51:44.144738", + "name": "cnchg9nfuc", + "parent": "Support Settings", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:26:32.792076", + "name": "eeu7hn5qd3", + "parent": "PPM Templates", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:27:24.757010", + "name": "efehfglc7v", + "parent": "PPM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:29:30.772645", + "name": "egltf2h44a", + "parent": "Warranty", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:30:20.965005", + "name": "eh5i7fa74f", + "parent": "Asset Type", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.283822", + "name": "ep8mtfg7qh", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.855674", + "name": "eq2g1am8g1", + "parent": "Delivery Note", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 11:41:42.519794", + "name": "5hd3gat819", + "parent": "Journal Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-01-07 11:57:15.835276", + "name": "fq94posqea", + "parent": "Communication", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2025-02-17 21:02:16.343111", + "name": "liq9b1rcb5", + "parent": "Material Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2025-02-18 08:59:22.656760", + "name": "1rbiorpr16", + "parent": "Brand", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Item Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 09:25:17.880522", + "name": "2q28lcjbdc", + "parent": "Work Job Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-26 16:55:07.426522", + "name": "4a316felaj", + "parent": "Feedback", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 22:51:03.781784", + "name": "vbfthj0uok", + "parent": "User Permission", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 23:08:20.665695", + "name": "vljuelb998", + "parent": "Asset Depreciation Schedule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 17:51:48.094618", + "name": "m94o6i6fn6", + "parent": "Stock Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.128793", + "name": "q48vfdb095", + "parent": "Bin", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.753955", + "name": "d1rrfla4ge", + "parent": "Item", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:14.382958", + "name": "d20nk1qjja", + "parent": "Asset", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:01:27.553296", + "name": "d24r103fq6", + "parent": "Asset Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:59.899922", + "name": "d2ev4klv0t", + "parent": "UOM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.788977", + "name": "d2ph4ng13d", + "parent": "Warehouse", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.385263", + "name": "d2un2o2ea8", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Auditor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:03:32.005224", + "name": "d3bodhi2dc", + "parent": "Item Tax Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:04:33.147848", + "name": "d3ut6qbtlc", + "parent": "Work_Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:05:38.048595", + "name": "d4j43m7287", + "parent": "Issue Type", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Support Team", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.290600", + "name": "d578jlr8bg", + "parent": "Company", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:11.056493", + "name": "d6lmlsj31a", + "parent": "Manufacturer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:23.482295", + "name": "d6pi32df33", + "parent": "Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Auditor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:56.086981", + "name": "d73ok8ag1t", + "parent": "Project", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 1, + "role": "Desk User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:14:12.385219", + "name": "d9jr7bk6mq", + "parent": "Work Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:52:39.021758", + "name": "e04m211uav", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:09.867160", + "name": "e6sjas2dr7", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.181218", + "name": "e7cthacl96", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:05:47.116781", + "name": "e7qvea0s85", + "parent": "Employee", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "HR User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:06:01.276917", + "name": "e7vcn9naf0", + "parent": "Department", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Academics User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:10:47.980356", + "name": "eaovublm6c", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Sales Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.984384", + "name": "ebhv5rar2q", + "parent": "Customer", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.257980", + "name": "ebo0rqvd7m", + "parent": "Supplier", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:16:27.522948", + "name": "ee33akjbch", + "parent": "Tax Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:39.351752", + "name": "eeph3ulcbg", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.480945", + "name": "ef12pmmso7", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:32:35.207206", + "name": "enhgviggk0", + "parent": "User", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:01:52.341227", + "name": "0r6jnhpkrv", + "parent": "Finance Book", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:06:17.286196", + "name": "0tpcnfsdek", + "parent": "Asset Movement", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:15.818221", + "name": "m5su018tof", + "parent": "Tax Withholding Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:36.734543", + "name": "m63fukmng5", + "parent": "Purchase Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:17.888361", + "name": "m6gaeo3n2v", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:33.887858", + "name": "m784u7mkrn", + "parent": "Purchase Taxes and Charges Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:51.657503", + "name": "m7dm6vlejt", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.894139", + "name": "m7impus7jf", + "parent": "Incoterm", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:25.902633", + "name": "m7obt4lqe9", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.869368", + "name": "m7uihu1u8n", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:24.518033", + "name": "m8albafhnp", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.168160", + "name": "m8evjes5lu", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:55.195514", + "name": "m8k9on5df6", + "parent": "Letter Head", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Desk User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:07.043900", + "name": "m8o03bntin", + "parent": "Print Heading", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Desk User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:29.914057", + "name": "m8v47as8sk", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:47:44.113309", + "name": "m93h0td5b5", + "parent": "Sales Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:48:12.233757", + "name": "m9ca2vrhth", + "parent": "Asset Repair", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:52:16.583536", + "name": "mbolgi5n4q", + "parent": "Contract", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.222931", + "name": "nkb0sas2su", + "parent": "Buying Settings", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 18:05:30.563463", + "name": "nmlp0bibgt", + "parent": "Payment Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:07:20.242622", + "name": "nno5ubfs3l", + "parent": "Mode of Payment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:07:52.859675", + "name": "no280510g6", + "parent": "Bank Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.201418", + "name": "ep8mheo4qs", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.881165", + "name": "eq2gs4v2kb", + "parent": "Delivery Note", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2025-01-06 11:41:43.018014", + "name": "42hl09r4hi", + "parent": "Journal Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-07 11:57:15.503197", + "name": "b1djncmeoc", + "parent": "Communication", + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:02:16.386444", + "name": "dok9ud1beu", + "parent": "Material Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 08:59:22.615296", + "name": "471kknpupj", + "parent": "Brand", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 09:25:17.827545", + "name": "gboq3610pf", + "parent": "Work Job Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-03-07 23:08:20.613519", + "name": "vljuoovv9n", + "parent": "Asset Depreciation Schedule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 17:51:48.076966", + "name": "m94ot69b8o", + "parent": "Stock Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing User", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:26.976391", + "name": "q48trilr8o", + "parent": "Bin", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.686693", + "name": "d1rqm3h9ae", + "parent": "Item", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:27.216877", + "name": "d24pm1m2ct", + "parent": "Asset Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Quality Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:01:59.919396", + "name": "d2evcf7cim", + "parent": "UOM", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.828167", + "name": "d2pivptqi3", + "parent": "Warehouse", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.438340", + "name": "d2uonfrf05", + "parent": "Cost Center", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:03:31.669013", + "name": "d3bmduprbj", + "parent": "Item Tax Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.557541", + "name": "d579stk441", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Employee", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:23.416460", + "name": "d6pim2fop2", + "parent": "Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:55.837825", + "name": "d73nt4ikvo", + "parent": "Project", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:04:10.121530", + "name": "e6sl6m91i6", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Item Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.133496", + "name": "e7ct40ibfs", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:05:46.790226", + "name": "e7qtgps5bi", + "parent": "Employee", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:06:01.238615", + "name": "e7vc24h5j0", + "parent": "Department", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:10:47.947062", + "name": "eaovoko18s", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.721702", + "name": "ebhuhj6ao1", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:12:27.274123", + "name": "ebo0jhjl3p", + "parent": "Supplier", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:16:27.508282", + "name": "ee33t9702n", + "parent": "Tax Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:38.805502", + "name": "eepekhshk8", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.498850", + "name": "ef12prq79s", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:32:35.352616", + "name": "enhh5evg16", + "parent": "User", + "permlevel": 0, + "print": 0, + "read": 0, + "report": 0, + "role": "Desk User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:01:52.439902", + "name": "0r6k7vtp9u", + "parent": "Finance Book", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Auditor", + "select": 0, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-15 11:06:17.271912", + "name": "0tpcoo3fbg", + "parent": "Asset Movement", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:15.596098", + "name": "m5ssd4s3a4", + "parent": "Tax Withholding Category", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:36.711220", + "name": "m63fp846dq", + "parent": "Purchase Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:17.912844", + "name": "m6gbtf1ird", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:44:34.314958", + "name": "m78722fvg5", + "parent": "Purchase Taxes and Charges Template", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:44:52.161706", + "name": "m7dpqa70lo", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.942898", + "name": "m7inmcv7g8", + "parent": "Incoterm", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:25.922090", + "name": "m7ob2efi01", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.600373", + "name": "m7ugpqdvvr", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:23.733765", + "name": "m8afoilhe9", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.633285", + "name": "m8f2almlcl", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:30.353763", + "name": "m8v7ugtido", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:44.129702", + "name": "m93hp2732v", + "parent": "Sales Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:52:16.414839", + "name": "mbokc6q0th", + "parent": "Contract", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "HR Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.271903", + "name": "nkb0e8ii0v", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.320615", + "name": "ep8n4vfe1g", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.814034", + "name": "eq2g7m2j7p", + "parent": "Delivery Note", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-01-06 11:41:43.037429", + "name": "3r5ufm2vlj", + "parent": "Journal Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Auditor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-07 11:57:15.796576", + "name": "8qfbb1tnhi", + "parent": "Communication", + "permlevel": 2, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:02:16.419972", + "name": "nblndkfrjr", + "parent": "Material Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 08:59:22.679098", + "name": "1nltukh0oj", + "parent": "Brand", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-19 17:51:47.605743", + "name": "m94nkl6b2e", + "parent": "Stock Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Manufacturing Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.092435", + "name": "q48un6n97k", + "parent": "Bin", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.668049", + "name": "d1rqv6dol5", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.809485", + "name": "d2piff05i5", + "parent": "Warehouse", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.403079", + "name": "d2uoe1krsq", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.677082", + "name": "d57arhmvdr", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:23.459674", + "name": "d6pihbho2s", + "parent": "Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:09:56.104164", + "name": "d73p8hj9b8", + "parent": "Project", + "permlevel": 0, + "print": 1, + "read": 0, + "report": 1, + "role": "Employee", + "select": 1, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.152899", + "name": "e6sl85kjtu", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:01.753026", + "name": "e7crfl58hl", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:06:00.917100", + "name": "e7vagnddc4", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 0, + "report": 0, + "role": "Employee", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:10:47.932649", + "name": "eaova29sne", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Purchase Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 18:12:07.938775", + "name": "ebhvsvqvl7", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.192350", + "name": "ebnvhr5pkb", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:39.309460", + "name": "eephe62cm5", + "parent": "Purchase Receipt", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.464097", + "name": "ef125394fn", + "parent": "Purchase Invoice", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Auditor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:42:36.688619", + "name": "m63e2em3gg", + "parent": "Purchase Order", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:17.937267", + "name": "m6gb5ciec5", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:44:52.194207", + "name": "m7dpcsm02m", + "parent": "Shipping Rule", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Master Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.917230", + "name": "m7in0rcd0v", + "parent": "Incoterm", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:25.962299", + "name": "m7ob1qqgm3", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:44.794043", + "name": "m7uaqss8g0", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:24.481752", + "name": "m8ak3ffasd", + "parent": "Payment Terms Template", + "permlevel": 0, + "print": 1, + "read": 0, + "report": 1, + "role": "All", + "select": 1, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.728653", + "name": "m8f3d3jj90", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:30.294638", + "name": "m8v6cfuvlv", + "parent": "Supplier Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:44.163277", + "name": "m93hquf0e7", + "parent": "Sales Order", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:52:16.568001", + "name": "mbol5vb1gq", + "parent": "Contract", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.005291", + "name": "nkav2j2e2b", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.303757", + "name": "ep8nvvni2u", + "parent": "Request for Quotation", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.922836", + "name": "eq2h3jom6c", + "parent": "Delivery Note", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-01-07 11:57:15.815263", + "name": "dgst1i7sl2", + "parent": "Communication", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Inbox User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-17 21:02:16.438812", + "name": "e3rv62no51", + "parent": "Material Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 08:59:22.635535", + "name": "318j7jog9c", + "parent": "Brand", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2025-03-19 17:51:48.061477", + "name": "m94o5mcq1j", + "parent": "Stock Entry", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.065306", + "name": "q48u7pmnvf", + "parent": "Bin", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.789122", + "name": "d1rrj92n1j", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.847450", + "name": "d2pis36gh5", + "parent": "Warehouse", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.421768", + "name": "d2uo8sjitg", + "parent": "Cost Center", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.645092", + "name": "d57a0cqpus", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-14 17:09:23.437657", + "name": "d6pi1ncm6d", + "parent": "Account", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.076757", + "name": "e6sk8r21el", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.204854", + "name": "e7cuitqc4e", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Agriculture Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:10:47.854589", + "name": "eaovp2ommo", + "parent": "Price List", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Manufacturing User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.957425", + "name": "ebhvdhf2fq", + "parent": "Customer", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Master Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.239794", + "name": "ebo0gikpdq", + "parent": "Supplier", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:17:39.335349", + "name": "eephd67eip", + "parent": "Purchase Receipt", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:18:03.230613", + "name": "ef11qcf48c", + "parent": "Purchase Invoice", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:43:17.427917", + "name": "m6g8sf1ju8", + "parent": "Currency", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.993210", + "name": "m7incq5o1q", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2024-09-18 16:45:25.879495", + "name": "m7oaca9fem", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.795562", + "name": "m7ui4df10a", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.656143", + "name": "m8f2t8m7pu", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:30.311204", + "name": "m8v798hgtd", + "parent": "Supplier Quotation", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:44.146338", + "name": "m93hj6occ5", + "parent": "Sales Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.198716", + "name": "nkb0f3epro", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.242636", + "name": "ep8m5h7iq8", + "parent": "Request for Quotation", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.894661", + "name": "eq2gad24gn", + "parent": "Delivery Note", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 1, + "import": 0, + "modified": "2025-01-07 11:57:15.776869", + "name": "em8kg8odui", + "parent": "Communication", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-02-18 08:59:22.474949", + "name": "cs5smm5dnv", + "parent": "Brand", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.159830", + "name": "q48v2ls8rl", + "parent": "Bin", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Purchase Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.814020", + "name": "d1rsu8d5v3", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:33.769637", + "name": "d2phl4hlab", + "parent": "Warehouse", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Manufacturing User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:02:50.368122", + "name": "d2unfu6nl2", + "parent": "Cost Center", + "permlevel": 0, + "print": 1, + "read": 0, + "report": 1, + "role": "Employee", + "select": 1, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.659999", + "name": "d57ac83spa", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.106450", + "name": "e6slkn2o1l", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:05:02.228589", + "name": "e7cus4h161", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Agriculture User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:08.011644", + "name": "ebi0liu1d3", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.223956", + "name": "ebo0p5hn71", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:08.045259", + "name": "m7io60f0jd", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 1, + "import": 0, + "modified": "2024-09-18 16:45:25.464772", + "name": "m7o89r76gq", + "parent": "Address", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.967601", + "name": "m7ujrcebv5", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:46:38.679921", + "name": "m8f2gmoc8j", + "parent": "Terms and Conditions", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:47:44.180652", + "name": "m93hqgv993", + "parent": "Sales Order", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.151475", + "name": "nkavdsjdau", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:44:10.261562", + "name": "ep8m0tsvk9", + "parent": "Request for Quotation", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.906812", + "name": "eq2hcb9o9r", + "parent": "Delivery Note", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Delivery User", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2025-03-24 17:52:27.192227", + "name": "q48vq6ftnr", + "parent": "Bin", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Sales Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.729902", + "name": "d1rreup9dk", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.609711", + "name": "d57alvf548", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Projects User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:04:10.138510", + "name": "e6sltg0i09", + "parent": "Item Group", + "permlevel": 0, + "print": 1, + "read": 0, + "report": 1, + "role": "Desk User", + "select": 1, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.925889", + "name": "ebhv231at2", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Stock Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:27.050229", + "name": "ebnvtf8nmh", + "parent": "Supplier", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:07.968087", + "name": "m7ine9v933", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.916643", + "name": "m7uj84iraf", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 18:01:31.174014", + "name": "nkav3nv2q1", + "parent": "Buying Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-25 16:45:32.867822", + "name": "eq2gcnn9o2", + "parent": "Delivery Note", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Delivery Manager", + "select": 0, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.707105", + "name": "d1rr7j6dij", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Manufacturing User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.627590", + "name": "d57an4c6q6", + "parent": "Company", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.913380", + "name": "ebhv2srt7q", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:08.019347", + "name": "m7iovcvoud", + "parent": "Incoterm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.843435", + "name": "m7uitnkumo", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Sales User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:00:58.771224", + "name": "d1rr0ml3oa", + "parent": "Item", + "permlevel": 0, + "print": 1, + "read": 0, + "report": 1, + "role": "Desk User", + "select": 1, + "share": 1, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 17:06:42.590494", + "name": "d579an27mr", + "parent": "Company", + "permlevel": 0, + "print": 0, + "read": 0, + "report": 0, + "role": "Auditor", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-14 18:12:07.996979", + "name": "ebhv35j6tb", + "parent": "Customer", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts Manager", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.747546", + "name": "m7uhh43fs1", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Purchase User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.646961", + "name": "m7ugi6d9kt", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Maintenance User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2024-09-18 16:45:45.702983", + "name": "m7uhhfmhv5", + "parent": "Contact", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Accounts User", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 0, + "if_owner": 1, + "import": 0, + "modified": "2024-09-18 16:45:45.893210", + "name": "m7ui6ihqo3", + "parent": "Contact", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:29:59.326655", + "name": "q59kk205rt", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:30:31.251307", + "name": "qf8s2tness", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:30:41.868761", + "name": "qij8ru3n2p", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:30:55.389622", + "name": "qmq0ccqmc4", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:31:05.807264", + "name": "qq3rfnmudc", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Engineer", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:31:14.325070", + "name": "qso4agd1m7", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:03:44.887084", + "name": "hg8bi4ctqq", + "parent": "Inspection", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor Supervisor", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:04:37.131763", + "name": "i0jkvk87nm", + "parent": "Inspection", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:05:36.830086", + "name": "ij95fu5j7p", + "parent": "Inspection", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:13:54.659694", + "name": "neqch08ndl", + "parent": "Inspection", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:15:26.362319", + "name": "obf50h7m5k", + "parent": "Technical Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:15:41.278122", + "name": "og535jj3n4", + "parent": "Technical Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:16:00.964768", + "name": "omalmvkjnr", + "parent": "Technical Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:16:35.766532", + "name": "p1623pd81p", + "parent": "Technical Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-14 14:57:00.648682", + "name": "bbugbuh7ns", + "parent": "Bin", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-01-15 09:47:33.172467", + "name": "1pjd1jja6d", + "parent": "Inspection", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-01-15 10:16:18.783283", + "name": "ig3s7km7v6", + "parent": "Version", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 12:31:07.367517", + "name": "dchkk85e1t", + "parent": "Customer", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 12:31:40.714367", + "name": "dn0clqnevv", + "parent": "Supplier", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 12:31:56.833217", + "name": "ds1locnto0", + "parent": "Brand", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 12:32:43.951221", + "name": "eaol458e47", + "parent": "Asset Depreciation Schedule", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 12:33:24.503944", + "name": "endd65jiq7", + "parent": "Asset Movement", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 18:35:22.657257", + "name": "2qa6lbrhfb", + "parent": "PM Schedule Generator", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 18:35:41.533004", + "name": "3077obnri8", + "parent": "Support Plans", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-19 12:08:34.022602", + "name": "3dkrt9h3gl", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 14:22:53.198236", + "name": "ts5o5l3rs7", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 14:23:04.504290", + "name": "tvle5utjn7", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Manager", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:00:28.619748", + "name": "jsuo7jc040", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:00:41.335688", + "name": "k0tungg1tr", + "parent": "LDAP Settings", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:00:56.238618", + "name": "k5jeksk4qj", + "parent": "Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:01:08.350795", + "name": "k9c3es8ubo", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:01:27.128393", + "name": "kf87c4mdcl", + "parent": "Asset Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:01:45.685563", + "name": "kl1flhq8f1", + "parent": "User", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:03:12.980853", + "name": "lga17of1rr", + "parent": "Issue", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:03:24.753665", + "name": "lk03g9jqbo", + "parent": "Issue Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:08:34.934016", + "name": "oktc792jki", + "parent": "Company", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-21 18:06:13.274236", + "name": "cfk8j19v2f", + "parent": "Room", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-21 18:06:56.869644", + "name": "ct8lnut0e4", + "parent": "Building", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-22 15:13:56.684907", + "name": "j9enalbedl", + "parent": "Role Profile", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-22 17:11:00.598307", + "name": "nse8tah2el", + "parent": "User", + "permlevel": 1, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 0, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 16:08:07.277632", + "name": "ph8fpbo49a", + "parent": "Room", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 16:14:08.861591", + "name": "t29jurk1j5", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 16:44:25.330629", + "name": "ept3mghv89", + "parent": "Custom DocPerm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:10:42.677440", + "name": "u6q632gllg", + "parent": "Custom DocPerm", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:26:01.301911", + "name": "75t21ja4bk", + "parent": "Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:26:25.961185", + "name": "7dki7che05", + "parent": "Building", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:26:42.432014", + "name": "7ip1td5n2o", + "parent": "Building", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:27:30.271849", + "name": "81nenejua7", + "parent": "Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:28:00.679057", + "name": "8b7lhgdpkv", + "parent": "Extension Directory", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:28:29.761612", + "name": "8kad5lk6ke", + "parent": "Room", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:31:01.079100", + "name": "a3iiq2303i", + "parent": "Room", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:31:49.243495", + "name": "aikh31h8hh", + "parent": "Room", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 17:32:03.350346", + "name": "an20a780h9", + "parent": "Building", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:16:02.248740", + "name": "mvmslj9sso", + "parent": "Mobile Team Site", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:16:29.852035", + "name": "n8a9cjt09l", + "parent": "Modality", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:17:52.813721", + "name": "o28snm961n", + "parent": "Technical Department", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:23:57.216870", + "name": "rk403hj1s4", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-01-29 10:24:19.874966", + "name": "rr7vmh3vnj", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor Supervisor", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:24:37.175682", + "name": "s0k43b3vfh", + "parent": "Asset Maintenance Team", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:30:33.321615", + "name": "vftha6fapi", + "parent": "Issue Type", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-02 10:21:55.843307", + "name": "9e6o2aqj56", + "parent": "Infrastructure Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-02 10:22:07.199919", + "name": "9hogqtsv30", + "parent": "Infrastructure Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-02 10:22:27.521619", + "name": "9o43pojned", + "parent": "Infrastructure Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-02 10:22:43.366684", + "name": "9t2l39e23e", + "parent": "Infrastructure Location", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-05 16:36:35.012891", + "name": "86uiqd48c4", + "parent": "Feedback", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 09:23:12.166758", + "name": "sh11lpsvvp", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 09:23:23.631783", + "name": "skll7dr281", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "End user", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 09:23:36.126937", + "name": "sohu3rjcce", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Engineer", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 09:23:44.856970", + "name": "sr9msbco2c", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 09:23:51.976849", + "name": "stgmlpnhqv", + "parent": "Workflow", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Technician", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:37:50.671738", + "name": "hnit2tdo0e", + "parent": "Comment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Engineer", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:38:24.392119", + "name": "i24hdtksvn", + "parent": "Comment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:38:34.784770", + "name": "i5ckossvhk", + "parent": "Comment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:38:44.801919", + "name": "i8g9tpb51j", + "parent": "Comment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:39:14.084968", + "name": "ihkn08alhk", + "parent": "Comment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:09:58.720372", + "name": "as3btp0p31", + "parent": "Inspection", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:14:02.326479", + "name": "d87cu21is0", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:14:12.525865", + "name": "dbeo6a4ikl", + "parent": "Item", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:14:24.105269", + "name": "df2usohp9g", + "parent": "Asset Maintenance", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:14:44.101899", + "name": "dl9o81620m", + "parent": "PM Schedule Generator", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 16:15:03.834040", + "name": "drf22tqpb6", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-18 10:27:08.256951", + "name": "8fq1lcfomh", + "parent": "Asset", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Quality Supervisor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-18 10:27:33.857692", + "name": "8nr9hbojaj", + "parent": "Work_Order", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Quality Supervisor", + "select": 0, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-18 15:42:25.699757", + "name": "17hl7icg1d", + "parent": "Delete Request", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 0, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 08:39:04.482293", + "name": "m5ko8ni0qa", + "parent": "Custom Field", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Engineer", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 09:13:33.491841", + "name": "ac7gtnobo8", + "parent": "Custom Field", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Work Control", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 09:20:53.258801", + "name": "elkm1gh9eu", + "parent": "Custom Field", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Contractor Supervisor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 09:36:18.748372", + "name": "nmr4ml5i8q", + "parent": "Custom Field", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 09:36:31.788144", + "name": "nqus9rp2il", + "parent": "Custom Field", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Maintenance User", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2025-12-16 10:29:59.276623", + "name": "q58qgnms8s", + "parent": "Extension Directory", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:03:44.813879", + "name": "hg8ls2es05", + "parent": "Inspection", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 1, + "share": 1, + "submit": 1, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-12 13:15:26.325895", + "name": "obfgpjkfm3", + "parent": "Technical Department", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-16 18:35:22.563820", + "name": "2q99fd9uc8", + "parent": "PM Schedule Generator", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2026-01-19 12:08:33.975731", + "name": "3djn60mi8b", + "parent": "Workflow", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-20 15:00:41.177976", + "name": "k0s2u5055l", + "parent": "LDAP Settings", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-21 18:06:13.230383", + "name": "cfk3nj29mu", + "parent": "Room", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-21 18:06:56.664137", + "name": "ct7vnk5jmv", + "parent": "Building", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-22 15:13:56.631686", + "name": "j9ejv6qcas", + "parent": "Role Profile", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-28 16:44:25.281868", + "name": "epsvedj4aa", + "parent": "Custom DocPerm", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:16:02.202294", + "name": "mvmh1d93lu", + "parent": "Mobile Team Site", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-29 10:16:29.767102", + "name": "n89jq1a3nk", + "parent": "Modality", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-02 10:21:55.787768", + "name": "9e5sh1n78l", + "parent": "Infrastructure Location", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-11 09:58:29.478058", + "name": "5enfhlumru", + "parent": "Notification Log", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:37:50.585546", + "name": "hnii80cgai", + "parent": "Comment", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-18 15:42:25.613244", + "name": "17gm9rij9s", + "parent": "Delete Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 08:39:04.194864", + "name": "m5i9jfv1m7", + "parent": "Custom Field", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Administrator", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-01-22 15:13:56.673640", + "name": "j9eomfnjri", + "parent": "Role Profile", + "permlevel": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-02-12 13:37:50.650707", + "name": "hnij6i5bg8", + "parent": "Comment", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Website Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "modified": "2026-03-02 08:39:04.439826", + "name": "m5k3o3fahe", + "parent": "Custom Field", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-25 13:28:11.831691", + "name": "eu6pnjm5uj", + "parent": "Risk Assessment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-25 13:28:24.487528", + "name": "f263cc8u4a", + "parent": "Risk Assessment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 1, + "role": "Contractor", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-25 13:28:44.699904", + "name": "f8guoduuat", + "parent": "Risk Assessment", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Consultant Office", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-25 13:29:04.253690", + "name": "fejrvqeqk4", + "parent": "Risk Assessment", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Projects Manager", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-07-01 16:33:02.607536", + "name": "1o23tmkhsk", + "parent": "Project Checklist", + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Project Base Role", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-07-01 16:33:32.419477", + "name": "21df080m0b", + "parent": "Project Checklist", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Contractor Engineer", + "select": 1, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 1, + "modified": "2026-07-01 16:35:03.507104", + "name": "2tskvpru0o", + "parent": "Project Checklist", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "Consultant Office", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 0, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-07-08 17:06:09.366461", + "name": "7ct7fc1457", + "parent": "WO Feedback", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 0, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:13:25.652519", + "name": "q58i303ec0", + "parent": "Project Request", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-12 17:13:44.863016", + "name": "qb9ac4uqak", + "parent": "Year", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-19 12:13:06.033834", + "name": "se44ggplmc", + "parent": "Site Visit", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:36:40.000527", + "name": "5s0gchecpm", + "parent": "Technical Submittal", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-23 16:37:01.356321", + "name": "62m9jldbv1", + "parent": "Contractor Information", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-06-25 13:28:11.743163", + "name": "eu5jbkmn1t", + "parent": "Risk Assessment", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-07-01 16:33:02.429049", + "name": "1o0hqncn0k", + "parent": "Project Checklist", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "docstatus": 0, + "doctype": "Custom DocPerm", + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "modified": "2026-07-08 17:06:09.076882", + "name": "7cq1v9fjt6", + "parent": "WO Feedback", + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "select": 0, + "share": 1, + "submit": 0, + "write": 1 + } +] \ No newline at end of file diff --git a/sfda_parser/fixtures/custom_field.json b/sfda_parser/fixtures/custom_field.json new file mode 100644 index 0000000..395408a --- /dev/null +++ b/sfda_parser/fixtures/custom_field.json @@ -0,0 +1,59 @@ +[ + { + "allow_in_quick_entry": 0, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "doctype": "Custom Field", + "dt": "Asset", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "custom_recalled", + "fieldtype": "Select", + "hidden": 0, + "hide_border": 0, + "hide_days": 0, + "hide_seconds": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_preview": 0, + "in_standard_filter": 0, + "insert_after": "custom_category", + "is_system_generated": 0, + "is_virtual": 0, + "label": "Recalled", + "length": 0, + "link_filters": null, + "mandatory_depends_on": null, + "modified": "2026-06-05 12:26:39.091744", + "module": "SFDA Parser", + "name": "Asset-custom_recalled", + "no_copy": 0, + "non_negative": 0, + "options": "\nYes\nNo", + "permlevel": 0, + "placeholder": null, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "read_only_depends_on": null, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "show_dashboard": 0, + "sort_options": 0, + "translatable": 0, + "unique": 0, + "width": null + } +] \ No newline at end of file diff --git a/sfda_parser/fixtures/property_setter.json b/sfda_parser/fixtures/property_setter.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/sfda_parser/fixtures/property_setter.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/sfda_parser/fixtures/report.json b/sfda_parser/fixtures/report.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/sfda_parser/fixtures/report.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/sfda_parser/fixtures/server_script.json b/sfda_parser/fixtures/server_script.json new file mode 100644 index 0000000..106a7b1 --- /dev/null +++ b/sfda_parser/fixtures/server_script.json @@ -0,0 +1,21 @@ +[ + { + "allow_guest": 0, + "api_method": null, + "cron_format": null, + "disabled": 0, + "docstatus": 0, + "doctype": "Server Script", + "doctype_event": "Before Insert", + "enable_rate_limit": 0, + "event_frequency": "Daily", + "modified": "2026-06-09 13:40:45.248212", + "module": "SFDA Parser", + "name": "Check the Serial nos present from sfda parser", + "rate_limit_count": 5, + "rate_limit_seconds": 86400, + "reference_doctype": null, + "script": "def normalize_values(raw):\r\n if not raw:\r\n return []\r\n return [v.strip() for v in str(raw).split(\",\") if v.strip()]\r\n\r\n\r\n# Users having BOTH \"System Manager\" and \"Cluster Manager\"\r\nboth_roles = frappe.get_all(\r\n \"Has Role\",\r\n filters={\r\n \"role\": [\"in\", [\"System Manager\", \"Cluster Manager\"]],\r\n \"parenttype\": \"User\"\r\n },\r\n fields=[\"parent\", \"role\"],\r\n limit_page_length=0\r\n)\r\n\r\nrole_map = {}\r\nfor r in both_roles:\r\n role_map.setdefault(r.parent, set()).add(r.role)\r\n\r\nrecall_users = [\r\n u for u, roles in role_map.items()\r\n if {\"System Manager\", \"Cluster Manager\"}.issubset(roles)\r\n]\r\n\r\nrecall_users = frappe.get_all(\r\n \"User\",\r\n filters={\"name\": [\"in\", recall_users], \"enabled\": 1},\r\n pluck=\"name\",\r\n limit_page_length=0\r\n) if recall_users else []\r\n\r\nsite_url = frappe.utils.get_url()\r\n\r\nsfda_entries = frappe.get_all(\r\n \"SFDA Entries\",\r\n filters={\"passed\": 0},\r\n fields=[\"name\"],\r\n limit_page_length=0\r\n)\r\n\r\nfor entry in sfda_entries:\r\n doc = frappe.get_doc(\"SFDA Entries\", entry.name)\r\n\r\n entry_link = f\"{site_url}/asm_app/sfda-entries/{doc.name}\"\r\n\r\n # rows that matched (asset found) and rows that did NOT match\r\n matched_rows = [] # list of dicts: {ncmdr_ref, serial, asset}\r\n unmatched_refs = [] # list of ncmdr_ref values with no match\r\n\r\n for row in doc.device_list:\r\n catalog_numbers = normalize_values(row.catalog_number)\r\n serial_numbers = normalize_values(row.serial_no)\r\n all_values = list(set(catalog_numbers + serial_numbers))\r\n\r\n row_matched = False\r\n\r\n if all_values:\r\n matched_assets = frappe.get_all(\r\n \"Asset\",\r\n filters={\"custom_serial_number\": [\"in\", all_values]},\r\n fields=[\"name\", \"custom_serial_number\"],\r\n limit_page_length=0\r\n )\r\n\r\n for asset in matched_assets:\r\n frappe.db.set_value(\r\n \"Asset\", asset.name, \"custom_recalled\", \"Yes\"\r\n )\r\n matched_rows.append({\r\n \"ncmdr_ref\": row.ncmdr_ref or \"N/A\",\r\n \"serial\": asset.custom_serial_number,\r\n \"asset\": asset.name\r\n })\r\n row_matched = True\r\n\r\n # Set Serial No Matching on the child row\r\n row.serial_no_matching = \"Yes\" if row_matched else \"No\"\r\n\r\n if not row_matched:\r\n unmatched_refs.append(row.ncmdr_ref or \"N/A\")\r\n\r\n # Persist serial_no_matching changes on child rows\r\n doc.save(ignore_permissions=True)\r\n\r\n # ------------------------------------------------------------------\r\n # NOTIFICATION 1 -> Matching list (serial no + asset id)\r\n # ------------------------------------------------------------------\r\n if matched_rows:\r\n rows_html = \"\".join(\r\n f\"\"\r\n f\"{m['ncmdr_ref']}\"\r\n f\"{m['serial']}\"\r\n f\"{m['asset']}\"\r\n f\"\"\r\n for m in matched_rows\r\n )\r\n\r\n subject = f\"SFDA Recall Match Found: {doc.name}\"\r\n\r\n message = f\"\"\"\r\n

Recall Match Found

\r\n

The following assets matched a recall in SFDA Entry {doc.name}\r\n and have been marked as recalled.

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rows_html}\r\n
NCMDR RefSerial / Catalog NoAsset ID
\r\n\r\n

\r\n \r\n Open SFDA Entry\r\n \r\n

\r\n \"\"\"\r\n\r\n for user in recall_users:\r\n frappe.get_doc({\r\n \"doctype\": \"Notification Log\",\r\n \"for_user\": user,\r\n \"type\": \"Alert\",\r\n \"subject\": subject,\r\n \"email_content\": message,\r\n \"document_type\": \"SFDA Entries\",\r\n \"document_name\": doc.name\r\n }).insert(ignore_permissions=True)\r\n\r\n if recall_users:\r\n frappe.sendmail(\r\n recipients=recall_users,\r\n subject=subject,\r\n message=message,\r\n reference_doctype=\"SFDA Entries\",\r\n reference_name=doc.name\r\n )\r\n\r\n frappe.log_error(\r\n title=f\"SFDA Recall Matched - {doc.name}\",\r\n message=(\r\n f\"SFDA Entry: {doc.name}\\n\"\r\n f\"Matched: {matched_rows}\\n\"\r\n f\"Recipients: {', '.join(recall_users)}\"\r\n )\r\n )\r\n\r\n # ------------------------------------------------------------------\r\n # NOTIFICATION 2 -> Non-matching list (NCMDR Ref values)\r\n # ------------------------------------------------------------------\r\n if unmatched_refs:\r\n # de-duplicate while preserving order\r\n seen = set()\r\n unique_refs = [\r\n r for r in unmatched_refs if not (r in seen or seen.add(r))\r\n ]\r\n\r\n refs_html = \"\".join(\r\n f\"
  • {ref}
  • \" for ref in unique_refs\r\n )\r\n\r\n subject = f\"SFDA Manual Review Required: {doc.name}\"\r\n\r\n message = f\"\"\"\r\n

    Manual Review Required

    \r\n

    No matching asset was found for the following recall references in\r\n SFDA Entry {doc.name}. Please review these manually.

    \r\n\r\n \r\n\r\n

    \r\n \r\n Open SFDA Entry\r\n \r\n

    \r\n \"\"\"\r\n\r\n for user in recall_users:\r\n frappe.get_doc({\r\n \"doctype\": \"Notification Log\",\r\n \"for_user\": user,\r\n \"type\": \"Alert\",\r\n \"subject\": subject,\r\n \"email_content\": message,\r\n \"document_type\": \"SFDA Entries\",\r\n \"document_name\": doc.name\r\n }).insert(ignore_permissions=True)\r\n\r\n if recall_users:\r\n frappe.sendmail(\r\n recipients=recall_users,\r\n subject=subject,\r\n message=message,\r\n reference_doctype=\"SFDA Entries\",\r\n reference_name=doc.name\r\n )\r\n\r\n frappe.log_error(\r\n title=f\"SFDA Manual Review Required - {doc.name}\",\r\n message=(\r\n f\"SFDA Entry: {doc.name}\\n\"\r\n f\"Unmatched Refs: {', '.join(unique_refs)}\\n\"\r\n f\"Recipients: {', '.join(recall_users)}\"\r\n )\r\n )\r\n\r\n # Mark entry as processed\r\n doc.passed = 1\r\n doc.passed_date = frappe.utils.now_datetime()\r\n doc.save(ignore_permissions=True)\r\n\r\nfrappe.db.commit()", + "script_type": "Scheduler Event" + } +] \ No newline at end of file diff --git a/sfda_parser/hooks.py b/sfda_parser/hooks.py new file mode 100644 index 0000000..10a8b83 --- /dev/null +++ b/sfda_parser/hooks.py @@ -0,0 +1,262 @@ +app_name = "sfda_parser" +app_title = "SFDA Parser" +app_publisher = "seyfert" +app_description = "SFDA weekly alert scraper" +app_email = "support@seeraarabia.com" +app_license = "mit" + +# Apps +# ------------------ + +# required_apps = [] + +# Each item in the list will be shown as an app in the apps page +# add_to_apps_screen = [ +# { +# "name": "sfda_parser", +# "logo": "/assets/sfda_parser/logo.png", +# "title": "SFDA Parser", +# "route": "/sfda_parser", +# "has_permission": "sfda_parser.api.permission.has_app_permission" +# } +# ] + +# Includes in +# ------------------ + +# include js, css files in header of desk.html +# app_include_css = "/assets/sfda_parser/css/sfda_parser.css" +# app_include_js = "/assets/sfda_parser/js/sfda_parser.js" + +# include js, css files in header of web template +# web_include_css = "/assets/sfda_parser/css/sfda_parser.css" +# web_include_js = "/assets/sfda_parser/js/sfda_parser.js" + +# include custom scss in every website theme (without file extension ".scss") +# website_theme_scss = "sfda_parser/public/scss/website" + +# include js, css files in header of web form +# webform_include_js = {"doctype": "public/js/doctype.js"} +# webform_include_css = {"doctype": "public/css/doctype.css"} + +# include js in page +# page_js = {"page" : "public/js/file.js"} + +# include js in doctype views +# doctype_js = {"doctype" : "public/js/doctype.js"} +# doctype_list_js = {"doctype" : "public/js/doctype_list.js"} +# doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} +# doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} + +# Svg Icons +# ------------------ +# include app icons in desk +# app_include_icons = "sfda_parser/public/icons.svg" + +# Home Pages +# ---------- + +# application home page (will override Website Settings) +# home_page = "login" + +# website user home page (by Role) +# role_home_page = { +# "Role": "home_page" +# } + +# Generators +# ---------- + +# automatically create page for each record of this doctype +# website_generators = ["Web Page"] + +# Jinja +# ---------- + +# add methods and filters to jinja environment +# jinja = { +# "methods": "sfda_parser.utils.jinja_methods", +# "filters": "sfda_parser.utils.jinja_filters" +# } + +# Installation +# ------------ + +# before_install = "sfda_parser.install.before_install" +# after_install = "sfda_parser.install.after_install" + +# Uninstallation +# ------------ + +# before_uninstall = "sfda_parser.uninstall.before_uninstall" +# after_uninstall = "sfda_parser.uninstall.after_uninstall" + +# Integration Setup +# ------------------ +# To set up dependencies/integrations with other apps +# Name of the app being installed is passed as an argument + +# before_app_install = "sfda_parser.utils.before_app_install" +# after_app_install = "sfda_parser.utils.after_app_install" + +# Integration Cleanup +# ------------------- +# To clean up dependencies/integrations with other apps +# Name of the app being uninstalled is passed as an argument + +# before_app_uninstall = "sfda_parser.utils.before_app_uninstall" +# after_app_uninstall = "sfda_parser.utils.after_app_uninstall" + +# Desk Notifications +# ------------------ +# See frappe.core.notifications.get_notification_config + +# notification_config = "sfda_parser.notifications.get_notification_config" + +# Permissions +# ----------- +# Permissions evaluated in scripted ways + +# permission_query_conditions = { +# "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", +# } +# +# has_permission = { +# "Event": "frappe.desk.doctype.event.event.has_permission", +# } + +# DocType Class +# --------------- +# Override standard doctype classes + +# override_doctype_class = { +# "ToDo": "custom_app.overrides.CustomToDo" +# } + +# Document Events +# --------------- +# Hook on document methods and events + +# doc_events = { +# "*": { +# "on_update": "method", +# "on_cancel": "method", +# "on_trash": "method" +# } +# } + +# Scheduled Tasks +# --------------- + +# SFDA recall scraper: every Monday 07:00 (server timezone). +# Always imports from the newest row on https://www.sfda.gov.sa/en/weekly-alert only. +scheduler_events = { + "cron": { + "0 7 * * 1": [ + "sfda_parser.sfda_scraper.jobs.run_weekly_sfda_import_scheduled", + ], + }, +} + +# Testing +# ------- + +# before_tests = "sfda_parser.install.before_tests" + +# Overriding Methods +# ------------------------------ +# +# override_whitelisted_methods = { +# "frappe.desk.doctype.event.event.get_events": "sfda_parser.event.get_events" +# } +# +# each overriding function accepts a `data` argument; +# generated from the base implementation of the doctype dashboard, +# along with any modifications made in other Frappe apps +# override_doctype_dashboards = { +# "Task": "sfda_parser.task.get_dashboard_data" +# } + +# exempt linked doctypes from being automatically cancelled +# +# auto_cancel_exempted_doctypes = ["Auto Repeat"] + +# Ignore links to specified DocTypes when deleting documents +# ----------------------------------------------------------- + +# ignore_links_on_delete = ["Communication", "ToDo"] + +# Request Events +# ---------------- +# before_request = ["sfda_parser.utils.before_request"] +# after_request = ["sfda_parser.utils.after_request"] + +# Job Events +# ---------- +# before_job = ["sfda_parser.utils.before_job"] +# after_job = ["sfda_parser.utils.after_job"] + +# User Data Protection +# -------------------- + +# user_data_fields = [ +# { +# "doctype": "{doctype_1}", +# "filter_by": "{filter_by}", +# "redact_fields": ["{field_1}", "{field_2}"], +# "partial": 1, +# }, +# { +# "doctype": "{doctype_2}", +# "filter_by": "{filter_by}", +# "partial": 1, +# }, +# { +# "doctype": "{doctype_3}", +# "strict": False, +# }, +# { +# "doctype": "{doctype_4}" +# } +# ] + +# Authentication and authorization +# -------------------------------- + +# auth_hooks = [ +# "sfda_parser.auth.validate" +# ] + +# Automatically update python controller files with type annotations for this app. +# export_python_type_annotations = True + +# default_log_clearing_doctypes = { +# "Logging DocType Name": 30 # days to retain logs +# } + +# Translation +# ------------ +# List of apps whose translatable strings should be excluded from this app's translations. +# ignore_translatable_strings_from = [] + +fixtures = [ + "Custom DocPerm", + + {"doctype": "Custom Field", "filters": [ + [ + "module", "=", "SFDA Parser" + ] + ]}, + {"doctype": "Property Setter", "filters": [ + [ + "module", "=", "SFDA Parser" + ] + ]}, + {"dt": "Print Format", "filters": {"custom_format": 1}}, + {"doctype": "Client Script", "filters": [["module","=","SFDA Parser"]]}, + {"doctype": "Server Script", "filters": [["module","=","SFDA Parser"]]}, + {"doctype": "Report", "filters": [["module","=","SFDA Parser"]]} + + +] + diff --git a/sfda_parser/modules.txt b/sfda_parser/modules.txt new file mode 100644 index 0000000..4f067ec --- /dev/null +++ b/sfda_parser/modules.txt @@ -0,0 +1 @@ +SFDA Parser \ No newline at end of file diff --git a/sfda_parser/patches.txt b/sfda_parser/patches.txt new file mode 100644 index 0000000..ac78702 --- /dev/null +++ b/sfda_parser/patches.txt @@ -0,0 +1,7 @@ +[pre_model_sync] +# Patches added in this section will be executed before doctypes are migrated +# Read docs to understand patches: https://frappeframework.com/docs/v14/user/en/database-migrations + +[post_model_sync] +# Patches added in this section will be executed after doctypes are migrated +sfda_parser.patches.reparse_sfda_device_lists_from_pdfs \ No newline at end of file diff --git a/sfda_parser/patches/__init__.py b/sfda_parser/patches/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/patches/__pycache__/__init__.cpython-310.pyc b/sfda_parser/patches/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..5dfb4c3 Binary files /dev/null and b/sfda_parser/patches/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/patches/__pycache__/reparse_sfda_device_lists_from_pdfs.cpython-310.pyc b/sfda_parser/patches/__pycache__/reparse_sfda_device_lists_from_pdfs.cpython-310.pyc new file mode 100644 index 0000000..c39108c Binary files /dev/null and b/sfda_parser/patches/__pycache__/reparse_sfda_device_lists_from_pdfs.cpython-310.pyc differ diff --git a/sfda_parser/patches/reparse_sfda_device_lists_from_pdfs.py b/sfda_parser/patches/reparse_sfda_device_lists_from_pdfs.py new file mode 100644 index 0000000..4f8061a --- /dev/null +++ b/sfda_parser/patches/reparse_sfda_device_lists_from_pdfs.py @@ -0,0 +1,20 @@ +"""One-time post-migrate: refresh device_list from stored detail PDFs after header alias updates.""" + +import frappe + +from sfda_parser.sfda_scraper.reparse import reparse_all_stored_pdf_device_lists + + +def execute(): + if not frappe.db.exists("DocType", "SFDA Entries"): + return + + summary = reparse_all_stored_pdf_device_lists() + frappe.logger("sfda_parser").info( + "Re-parsed SFDA device lists from PDFs: %s", summary + ) + if summary.get("errors"): + frappe.log_error( + title="SFDA Parser: PDF reparse completed with errors", + message=frappe.as_json(summary, indent=2), + ) diff --git a/sfda_parser/public/.gitkeep b/sfda_parser/public/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/sfda_parser/__init__.py b/sfda_parser/sfda_parser/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/sfda_parser/__pycache__/__init__.cpython-310.pyc b/sfda_parser/sfda_parser/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..17c8232 Binary files /dev/null and b/sfda_parser/sfda_parser/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/__init__.py b/sfda_parser/sfda_parser/doctype/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/sfda_parser/doctype/__pycache__/__init__.cpython-310.pyc b/sfda_parser/sfda_parser/doctype/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..d9a6748 Binary files /dev/null and b/sfda_parser/sfda_parser/doctype/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/sfda_device_entries/__init__.py b/sfda_parser/sfda_parser/doctype/sfda_device_entries/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/__init__.cpython-310.pyc b/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..05f48a4 Binary files /dev/null and b/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/sfda_device_entries.cpython-310.pyc b/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/sfda_device_entries.cpython-310.pyc new file mode 100644 index 0000000..a8186a9 Binary files /dev/null and b/sfda_parser/sfda_parser/doctype/sfda_device_entries/__pycache__/sfda_device_entries.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.json b/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.json new file mode 100644 index 0000000..0eedb02 --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.json @@ -0,0 +1,120 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2026-06-01 00:00:00", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "ncmdr_ref", + "manufacturer", + "detail_pdf", + "ade_detail_url", + "column_break_alert", + "material", + "material_description", + "catalog_number", + "udi", + "serial_no", + "gstn", + "batch", + "serial_no_matching" + ], + "fields": [ + { + "fieldname": "ncmdr_ref", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "NCMDR Ref" + }, + { + "fieldname": "manufacturer", + "fieldtype": "Data", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Manufacturer", + "read_only": 1 + }, + { + "fieldname": "detail_pdf", + "fieldtype": "Attach", + "in_list_view": 1, + "label": "ADE Detail PDF", + "read_only": 1 + }, + { + "fieldname": "ade_detail_url", + "fieldtype": "Data", + "hidden": 1, + "label": "ADE Detail URL", + "read_only": 1 + }, + { + "fieldname": "column_break_alert", + "fieldtype": "Column Break" + }, + { + "fieldname": "material", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Material" + }, + { + "fieldname": "material_description", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Material Description" + }, + { + "fieldname": "catalog_number", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Catalog Number" + }, + { + "fieldname": "udi", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "UDI" + }, + { + "fieldname": "serial_no", + "fieldtype": "Small Text", + "in_list_view": 1, + "label": "Serial No" + }, + { + "fieldname": "gstn", + "fieldtype": "Data", + "label": "GTIN" + }, + { + "fieldname": "batch", + "fieldtype": "Small Text", + "label": "Batch" + }, + { + "fieldname": "serial_no_matching", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Matching", + "options": "\nYes\nNo" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2026-06-09 13:37:08.969913", + "modified_by": "support@seeraarabia.com", + "module": "SFDA Parser", + "name": "SFDA Device Entries", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "rows_threshold_for_grid_search": 20, + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.py b/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.py new file mode 100644 index 0000000..0faaa47 --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_device_entries/sfda_device_entries.py @@ -0,0 +1,8 @@ +# Copyright (c) 2026, seyfert and contributors +# For license information, please see license.txt + +from frappe.model.document import Document + + +class SFDADeviceEntries(Document): + pass diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/__init__.py b/sfda_parser/sfda_parser/doctype/sfda_entries/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/__init__.cpython-310.pyc b/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..937a66a Binary files /dev/null and b/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/sfda_entries.cpython-310.pyc b/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/sfda_entries.cpython-310.pyc new file mode 100644 index 0000000..20083ca Binary files /dev/null and b/sfda_parser/sfda_parser/doctype/sfda_entries/__pycache__/sfda_entries.cpython-310.pyc differ diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.js b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.js new file mode 100644 index 0000000..40ff19a --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.js @@ -0,0 +1,199 @@ +// Copyright (c) 2026, seyfert and contributors + +const ADE_FIELD_LABELS = { + reference_number: "NCMDR / Reference", + manufacturer: "Manufacturer", + product_trade_name: "Product / Trade Name", + model: "Model", + authorized_representative: "Authorized Representative", + problem_reason: "Problem / Reason", + action: "Corrective Action", +}; + +function format_ade_value(value) { + if (!value) { + return "—"; + } + return frappe.utils.escape_html(String(value)).replace(/\n/g, "
    "); +} + +function build_ade_dialog_html(frm, data, child_row) { + let rows = ""; + for (const [key, label] of Object.entries(ADE_FIELD_LABELS)) { + rows += ` + ${label} + ${format_ade_value(data[key])} + `; + } + + const erp_count = (frm.doc.device_list || []).filter( + (row) => row.ncmdr_ref === child_row.ncmdr_ref + ).length; + const pdf_count = data.device_list_from_pdf_count || 0; + + let device_section = `

    Device rows for ${format_ade_value( + child_row.ncmdr_ref + )} in ERP: ${erp_count} row(s)

    `; + device_section += `

    Device rows parsed from PDF (live): ${pdf_count}

    `; + if (data.pdf_parse_error) { + device_section += `

    PDF note: ${format_ade_value( + data.pdf_parse_error + )}

    `; + } + if (pdf_count > 0 && data.device_list_from_pdf) { + device_section += ` + + `; + data.device_list_from_pdf.forEach((row) => { + device_section += ` + + + + + + + + `; + }); + device_section += "
    MaterialDescriptionCatalog NoUDISerial NoGTINBatch
    ${format_ade_value(row.material)}${format_ade_value(row.material_description)}${format_ade_value(row.catalog_number)}${format_ade_value(row.udi)}${format_ade_value(row.serial_no)}${format_ade_value(row.gstn)}${format_ade_value(row.batch)}
    "; + } + + const url_line = data.detail_url + ? `

    Source: ${format_ade_value(data.detail_url)}

    ` + : ""; + + const pdf_link = child_row.detail_pdf + ? `

    + ${__("Download original PDF")}

    ` + : ""; + + return `
    +

    Loaded via ERP server — ADE may be blocked in your local browser.

    + ${pdf_link} + ${url_line} + ${rows}
    + ${device_section} +
    `; +} + +const MATCHING_YES_ROW_COLOR = "#ffedd5"; + +function highlight_matching_device_rows(frm) { + const grid = frm.fields_dict.device_list?.grid; + if (!grid?.grid_rows) { + return; + } + + grid.grid_rows.forEach((grid_row) => { + const is_match = + String(grid_row.doc.serial_no_matching || "").trim() === "Yes"; + $(grid_row.row).css( + "background-color", + is_match ? MATCHING_YES_ROW_COLOR : "" + ); + }); +} + +function get_selected_device_row(frm) { + const grid = frm.fields_dict.device_list?.grid; + if (!grid) { + return null; + } + + const selected = grid.get_selected_children(); + if (selected?.length === 1) { + return selected[0]; + } + + if (grid.grid_rows?.length === 1) { + return grid.grid_rows[0].doc; + } + + return null; +} + +frappe.ui.form.on("SFDA Entries", { + refresh(frm) { + highlight_matching_device_rows(frm); + + frm.add_custom_button( + __("View ADE details"), + () => { + const child_row = get_selected_device_row(frm); + if (!child_row) { + frappe.msgprint( + __("Please select exactly one row in Device List to view ADE details.") + ); + return; + } + + frappe.call({ + method: "sfda_parser.api.sfda_scraper.get_ade_publish_details", + args: { + sfda_entries_name: frm.doc.name, + sfda_device_entry_name: child_row.name, + include_device_list_from_pdf: 1, + }, + freeze: true, + freeze_message: __("Loading from ADE (server)..."), + callback(r) { + if (!r.message) { + return; + } + const d = new frappe.ui.Dialog({ + title: __("ADE Publish Details"), + size: "large", + fields: [{ fieldtype: "HTML", fieldname: "body" }], + primary_action_label: __("Close"), + primary_action() { + d.hide(); + }, + }); + d.fields_dict.body.$wrapper.html( + build_ade_dialog_html(frm, r.message, child_row) + ); + d.show(); + + const needs_save = + (r.message.detail_url && !child_row.ade_detail_url) || + (r.message.manufacturer && !child_row.manufacturer); + if (r.message.detail_url && !child_row.ade_detail_url) { + frappe.model.set_value( + child_row.doctype, + child_row.name, + "ade_detail_url", + r.message.detail_url + ); + } + if (r.message.manufacturer && !child_row.manufacturer) { + frappe.model.set_value( + child_row.doctype, + child_row.name, + "manufacturer", + r.message.manufacturer + ); + } + if (needs_save) { + frm.save(); + } + }, + }); + }, + __("Actions") + ); + }, + device_list_on_form_rendered(frm) { + highlight_matching_device_rows(frm); + }, +}); + +frappe.ui.form.on("SFDA Device Entries", { + serial_no_matching(frm, cdt, cdn) { + const grid_row = frm.fields_dict.device_list?.grid?.grid_rows_by_docname?.[cdn]; + if (!grid_row) { + return; + } + const is_match = String(frappe.model.get_value(cdt, cdn, "serial_no_matching") || "").trim() === "Yes"; + $(grid_row.row).css("background-color", is_match ? MATCHING_YES_ROW_COLOR : ""); + }, +}); diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.json b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.json new file mode 100644 index 0000000..120a00e --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.json @@ -0,0 +1,98 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:title", + "creation": "2026-06-01 16:16:53.409449", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "title", + "column_break_dqny", + "date", + "section_break_qcgk", + "device_list", + "section_break_ihhu", + "passed_date", + "column_break_whlv", + "passed" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Title", + "unique": 1 + }, + { + "fieldname": "column_break_dqny", + "fieldtype": "Column Break" + }, + { + "fieldname": "date", + "fieldtype": "Date", + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Date" + }, + { + "fieldname": "section_break_qcgk", + "fieldtype": "Section Break" + }, + { + "fieldname": "device_list", + "fieldtype": "Table", + "label": "Device List", + "options": "SFDA Device Entries" + }, + { + "fieldname": "section_break_ihhu", + "fieldtype": "Section Break" + }, + { + "fieldname": "passed_date", + "fieldtype": "Datetime", + "label": "Passed Date" + }, + { + "fieldname": "column_break_whlv", + "fieldtype": "Column Break" + }, + { + "default": "0", + "fieldname": "passed", + "fieldtype": "Check", + "label": "Passed" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2026-06-09 13:18:06.533455", + "modified_by": "support@seeraarabia.com", + "module": "SFDA Parser", + "name": "SFDA Entries", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "rows_threshold_for_grid_search": 20, + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.py b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.py new file mode 100644 index 0000000..217898b --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_entries/sfda_entries.py @@ -0,0 +1,8 @@ +# Copyright (c) 2026, seyfert and contributors +# For license information, please see license.txt + +from frappe.model.document import Document + + +class SFDAEntries(Document): + pass diff --git a/sfda_parser/sfda_parser/doctype/sfda_entries/test_sfda_entries.py b/sfda_parser/sfda_parser/doctype/sfda_entries/test_sfda_entries.py new file mode 100644 index 0000000..bb7d4f1 --- /dev/null +++ b/sfda_parser/sfda_parser/doctype/sfda_entries/test_sfda_entries.py @@ -0,0 +1,8 @@ +# Copyright (c) 2026, seyfert and Contributors +# See license.txt + +from frappe.tests import IntegrationTestCase + + +class TestSFDAEntries(IntegrationTestCase): + pass diff --git a/sfda_parser/sfda_scraper/__init__.py b/sfda_parser/sfda_scraper/__init__.py new file mode 100644 index 0000000..16fcb72 --- /dev/null +++ b/sfda_parser/sfda_scraper/__init__.py @@ -0,0 +1 @@ +# SFDA weekly recall scraper for sfda_parser diff --git a/sfda_parser/sfda_scraper/__pycache__/__init__.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..5e70862 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/__init__.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/_verify_pdf_attach.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/_verify_pdf_attach.cpython-310.pyc new file mode 100644 index 0000000..61774e2 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/_verify_pdf_attach.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/detail_page.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/detail_page.cpython-310.pyc new file mode 100644 index 0000000..5fe0b47 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/detail_page.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/detail_pdf.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/detail_pdf.cpython-310.pyc new file mode 100644 index 0000000..6a72300 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/detail_pdf.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/http_client.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/http_client.cpython-310.pyc new file mode 100644 index 0000000..350cba1 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/http_client.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/importer.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/importer.cpython-310.pyc new file mode 100644 index 0000000..2c63c8e Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/importer.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/jobs.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/jobs.cpython-310.pyc new file mode 100644 index 0000000..7feb035 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/jobs.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/reparse.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/reparse.cpython-310.pyc new file mode 100644 index 0000000..2134143 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/reparse.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_expand.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_expand.cpython-310.pyc new file mode 100644 index 0000000..04c3bf2 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_expand.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_sanitize.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_sanitize.cpython-310.pyc new file mode 100644 index 0000000..ff40d9e Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/test_detail_pdf_sanitize.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/weekly_list.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/weekly_list.cpython-310.pyc new file mode 100644 index 0000000..258d5b6 Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/weekly_list.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/__pycache__/weekly_pdf.cpython-310.pyc b/sfda_parser/sfda_scraper/__pycache__/weekly_pdf.cpython-310.pyc new file mode 100644 index 0000000..bcc917b Binary files /dev/null and b/sfda_parser/sfda_scraper/__pycache__/weekly_pdf.cpython-310.pyc differ diff --git a/sfda_parser/sfda_scraper/detail_page.py b/sfda_parser/sfda_scraper/detail_page.py new file mode 100644 index 0000000..81a448d --- /dev/null +++ b/sfda_parser/sfda_scraper/detail_page.py @@ -0,0 +1,192 @@ +"""Fetch and parse ADE PublishDetails pages.""" + +from __future__ import annotations + +import re +from typing import Any +from urllib.parse import urljoin + +from bs4 import BeautifulSoup + +from sfda_parser.sfda_scraper.detail_pdf import parse_affected_device_list +from sfda_parser.sfda_scraper.http_client import ADE_BASE, create_session, request_with_retry + +DOWNLOAD_PATTERN = re.compile( + r'formaction=["\'](?P/BaseService/DownloadDocument\?download=[^"\']+)["\']', + re.IGNORECASE, +) +TOKEN_PATTERN = re.compile( + r'name=["\']__RequestVerificationToken["\'][^>]*value=["\']([^"\']+)["\']', + re.IGNORECASE, +) +PUBLISH_ID_PATTERN = re.compile(r"/Fsca/PublishDetails/(\d+)", re.IGNORECASE) + +HTML_FIELD_MAP = { + "reference_number": "ReferenceNumber", + "manufacturer": "ManufacturerName", + "product_trade_name": "ProductTradeName", + "model": "ModelNbr", + "authorized_representative": "AuthorizedRepresentative", + "problem_reason": "ProblemReason", + "action": "Action", +} + + +class NoPdfDownloadLinkError(ValueError): + """ADE PublishDetails page has no DownloadDocument link.""" + + +def _field_value(soup: BeautifulSoup, field_name: str) -> str: + el = soup.find(attrs={"name": field_name}) + if not el: + return "" + if el.name == "textarea": + return el.get_text(strip=True) + return (el.get("value") or "").strip() + + +def _extract_download_path(html: str) -> str | None: + match = DOWNLOAD_PATTERN.search(html) + if match: + return match.group("path") + soup = BeautifulSoup(html, "html.parser") + button = soup.select_one("button[formaction*='DownloadDocument']") + if button and button.get("formaction"): + return button["formaction"] + return None + + +def _extract_verification_token(html: str) -> str | None: + match = TOKEN_PATTERN.search(html) + if match: + return match.group(1) + soup = BeautifulSoup(html, "html.parser") + inp = soup.find("input", {"name": "__RequestVerificationToken"}) + if inp and inp.get("value"): + return inp["value"] + return None + + +def parse_publish_details_html(html: str, detail_url: str = "") -> dict[str, Any]: + soup = BeautifulSoup(html, "html.parser") + publish_id = "" + if detail_url: + match = PUBLISH_ID_PATTERN.search(detail_url) + if match: + publish_id = match.group(1) + + download_path = _extract_download_path(html) + data: dict[str, Any] = { + "detail_url": detail_url, + "publish_id": publish_id, + "pdf_download_url": urljoin(ADE_BASE, download_path) if download_path else "", + } + for key, field_name in HTML_FIELD_MAP.items(): + data[key] = _field_value(soup, field_name) + return data + + +def fetch_publish_details_html(detail_url: str, session=None) -> dict[str, Any]: + session = session or create_session() + response = request_with_retry(session, "GET", detail_url, timeout=60) + return parse_publish_details_html(response.text, detail_url=detail_url) + + +def fetch_publish_details( + detail_url: str, + session=None, + include_device_list_from_pdf: bool = False, +) -> dict[str, Any]: + """ADE page fields; optionally parse Material/GTIN/Batch table from attached PDF.""" + session = session or create_session() + result = fetch_publish_details_html(detail_url, session=session) + + if include_device_list_from_pdf: + try: + pdf_bytes = download_detail_pdf(detail_url, session=session) + devices = parse_affected_device_list(pdf_bytes) + result["device_list_from_pdf"] = [d.as_dict() for d in devices] + result["device_list_from_pdf_count"] = len(devices) + except Exception as exc: + result["device_list_from_pdf"] = [] + result["device_list_from_pdf_count"] = 0 + result["pdf_parse_error"] = str(exc) + else: + result["device_list_from_pdf"] = [] + result["device_list_from_pdf_count"] = 0 + + return result + + +def resolve_detail_url_for_ncmdr_ref(ncmdr_ref: str, session=None) -> str | None: + """Resolve ADE URL from recent weekly PDFs when not stored on SFDA Entries.""" + from sfda_parser.sfda_scraper.weekly_list import fetch_recent_weekly_alerts + from sfda_parser.sfda_scraper.weekly_pdf import parse_safety_alerts_from_pdf + + session = session or create_session() + target = (ncmdr_ref or "").strip().upper() + for weekly in fetch_recent_weekly_alerts(session=session): + pdf_response = session.get(weekly.pdf_url, timeout=120) + pdf_response.raise_for_status() + for alert in parse_safety_alerts_from_pdf(pdf_response.content): + if alert.ncmdr_ref.strip().upper() == target: + return alert.detail_url + return None + + +def _download_detail_pdf_from_html( + html: str, detail_url: str, session +) -> bytes: + download_path = _extract_download_path(html) + token = _extract_verification_token(html) + if not download_path: + raise NoPdfDownloadLinkError(f"No PDF download link on ADE page: {detail_url}") + + download_url = urljoin(ADE_BASE, download_path) + headers = {"Referer": detail_url} + data = {} + if token: + data["__RequestVerificationToken"] = token + + pdf_response = request_with_retry( + session, + "POST", + download_url, + data=data, + headers=headers, + timeout=120, + ) + + content_type = (pdf_response.headers.get("Content-Type") or "").lower() + if "pdf" not in content_type and not pdf_response.content.startswith(b"%PDF"): + raise ValueError(f"ADE download did not return a PDF for {detail_url}") + + return pdf_response.content + + +def fetch_ade_detail( + detail_url: str, session=None +) -> tuple[bytes | None, dict[str, Any]]: + """Fetch ADE detail page; download PDF when available. + + Returns (pdf_bytes or None, publish_details). PDF is None when the ADE page + has no DownloadDocument link. + """ + session = session or create_session() + response = request_with_retry(session, "GET", detail_url, timeout=60) + html = response.text + publish_details = parse_publish_details_html(html, detail_url=detail_url) + + try: + pdf_bytes = _download_detail_pdf_from_html(html, detail_url, session) + except NoPdfDownloadLinkError: + return None, publish_details + + return pdf_bytes, publish_details + + +def download_detail_pdf(detail_url: str, session=None) -> bytes: + pdf_bytes, _publish_details = fetch_ade_detail(detail_url, session=session) + if pdf_bytes is None: + raise NoPdfDownloadLinkError(f"No PDF download link on ADE page: {detail_url}") + return pdf_bytes diff --git a/sfda_parser/sfda_scraper/detail_pdf.py b/sfda_parser/sfda_scraper/detail_pdf.py new file mode 100644 index 0000000..ffbf32f --- /dev/null +++ b/sfda_parser/sfda_scraper/detail_pdf.py @@ -0,0 +1,1295 @@ +"""Parse Affected Device List tables from ADE detail PDFs.""" + +from __future__ import annotations + +import io +import re +from dataclasses import dataclass + +import pdfplumber + +# Order matters: more specific aliases are checked first within each field. +HEADER_ALIASES: dict[str, tuple[str, ...]] = { + "catalog_number": ( + "procedure pack code", + "product code / part number", + "product code", + "manufacturer's product number/catalog number", + "product number/catalog number", + "catalogue number", + "catalog number", + "model number (ref)", + "model number", + "model no", + "model #", + "product number", + "part number", + "item number", + "list number", + "system code", + "unit model", + "article no", + "ref. number", + "ref#", + "ref no", + "catalog no", + "catalogue no", + "material n° (upn)", + "material n°", + "material id", + "upn", + "ref", + ), + "material_description": ( + "material description", + "product description", + "model description", + "material desc", + "description", + "product code", + ), + "serial_no": ( + "unit serial number", + "unit serial no", + "system serial number", + "system serial no", + "affected serial numbers", + "lot/serial number", + "serial numbers", + "serial number", + "serial no.", + "serial no", + "s/n", + "sn", + "lot numbers", + "lot number", + "batch lot", + "lot id", + "lot no.", + "lot no", + "lot", + ), + "udi": ( + "udi number", + "udi code", + "udi impacted", + "unique device identifier", + "basic udi di", + "basic udi-di", + "udi di", + "udi-di", + "udi - di", + "udi", + ), + "material": ( + "affected product name", + "commercial name", + "device name", + "material", + "product name", + "model name", + "product/trade name", + "trade name", + "brand name", + "system model", + "unit model", + ), + "gstn": ( + "gtin number", + "gtin", + "gstn", + "gtn", + ), + "batch": ( + "affected lot numbers", + "batch / lot number", + "batch/lot number", + "lot / batch n°", + "batch", + ), +} + +# Map fields in specificity order so e.g. "model number" maps to catalog_number, not material. +FIELD_PRIORITY = ( + "catalog_number", + "material_description", + "serial_no", + "udi", + "material", + "gstn", + "batch", +) + +PRODUCT_SECTION_KEYWORDS = ( + "affected device", + "affected devices", + "impacted product", + "affected product", + "affected products", + "product table", + "table 1", + "affected product information", + "affected product details", + "product affected", + "product details", + "list of affected", + "affected device list", + "device list", + "3. affected products", + "how to identify them", + "affected product codes and batches", + "procedure pack code", + "detail on affected devices", +) + +FORM_TABLE_KEYWORDS = ( + "signature", + "phone number", + "fax", + "e-mail", + "email address", + "printed name", + "facility name", + "purchased directly", + "end user with", + "quantity for return", + "customer contact", + "account/organisation", + "qty sent", + "qty to return", + "quantity distributed", + "quantity in inventory", + "quantity being returned", + "customer po", + "po no.", + "job-no.", + "distributor", + "distribution dates", + "actions to be", + "recalibration needed", + "pressure circ-value", + "software name", + "previous range", + "updated range", + "previous target", + "updated target", +) + +# Section titles / narrative blocks mis-detected as product tables. +NON_PRODUCT_HEADER_KEYWORDS = ( + "affected product information table", + "please follow your local", + "correction letter dated", + "figure ", + "this issue may potentially result", + "product(s) distributed", + "name/title", + "analyte", + # NOTE: do not include generic table columns like expiry/manufacturing dates here. + # They can appear in real affected-product tables. +) + + +def _is_strong_product_header(header_text: str) -> bool: + # Accept product tables even if they include operational columns like distribution/expiry dates. + strong_terms = ( + "procedure pack", + "udi", + "gtin", + "catalog", + "catalogue", + "batch", + "lot", + "serial", + "product description", + "material description", + "device name", + "product name", + "trade name", + "system model", + "unit model", + ) + if sum(1 for t in strong_terms if t in header_text) >= 2: + return True + # Installed-base / distribution list tables (e.g. System Model + Unit serial number). + if "system model" in header_text and "serial" in header_text: + return True + if "unit model" in header_text and "serial" in header_text: + return True + return False + + +@dataclass +class DeviceRow: + material: str + material_description: str + catalog_number: str + udi: str + serial_no: str + gstn: str + batch: str + + def as_dict(self) -> dict[str, str]: + return { + "material": self.material, + "material_description": self.material_description, + "catalog_number": self.catalog_number, + "udi": self.udi, + "serial_no": self.serial_no, + "gstn": self.gstn, + "batch": self.batch, + } + + +# Multi-value identifier fields in one cell → one ERP row per value. +_MULTI_VALUE_DEVICE_FIELDS = ("serial_no", "catalog_number", "batch", "udi", "gstn") + +_NUMERIC_ID_TOKEN_RE = re.compile(r"^\d{8,14}$") +_LOT_CODE_TOKEN_RE = re.compile(r"^\d{2}[A-Z]\d{4}$", re.IGNORECASE) +_SRN_ID_TOKEN_RE = re.compile(r"^[A-Z]{2}-MF-\d{9}$", re.IGNORECASE) +_ALPHANUM_CODE_TOKEN_RE = re.compile(r"^[A-Z0-9][A-Z0-9\-\/\.]+$", re.IGNORECASE) + +_DATE_VALUE_RES = ( + re.compile(r"^\d{1,2}[-/\s][A-Z]{3,9}[-/\s]\d{2,4}$", re.IGNORECASE), + re.compile(r"^\d{1,2}[-/]\d{1,2}[-/]\d{2,4}$"), + re.compile(r"^\d{4}[-/]\d{1,2}[-/]\d{1,2}$"), + re.compile(r"^\d{1,2}\s+[A-Z]{3,9}\s+\d{4}$", re.IGNORECASE), +) + +_PRODUCT_CONCERNED_PREFIX_RE = re.compile( + r"^(?:(?:name\s+)?of\s+the\s+product\s+concerned\s*:\s*)+", + re.IGNORECASE, +) + + +def _is_likely_date_value(value: str) -> bool: + candidate = (value or "").strip() + if not candidate: + return False + return any(pattern.fullmatch(candidate) for pattern in _DATE_VALUE_RES) + + +_PROSE_PREFIXES = ( + "dear ", + "the ", + "manufacturer", + "please ", + "required ", + "potential ", + "transmission", + "contact ", + "action", + "[enter", + "incorrectly", + "manufactured:", + "alternatively", + "you can", + "this notice", + "and notify", + "in the image", + "consequently", + "ensure effectiveness", + "radiological", + "examination is", + "the diagnosis", + "the correct", + "the dimensions", + "the synthetic", + "the x-ray", +) + + +def _is_likely_prose(value: str) -> bool: + """Reject narrative sentences mis-parsed as serial/UDI identifiers.""" + candidate = (value or "").strip() + if not candidate: + return True + parts = [part.strip() for part in re.split(r"[,;]+", candidate) if part.strip()] + if len(parts) > 1: + valid_parts = sum( + 1 + for part in parts + if not _is_likely_date_value(part) + and ( + _is_splittable_token(part) + or bool(re.fullmatch(r"\d{6,20}", part)) + ) + ) + if valid_parts >= 2: + return False + if len(candidate) > 45 and len(parts) <= 1: + return True + lower = candidate.lower() + if any(lower.startswith(prefix) for prefix in _PROSE_PREFIXES): + return True + if " " in candidate: + words = candidate.split() + if len(words) >= 3: + return True + if lower.endswith(":") and len(words) >= 2: + return True + if re.search(r"[.!?]", candidate) and len(candidate) > 20: + return True + return False + + +def _is_valid_device_identifier(value: str) -> bool: + candidate = (value or "").strip() + if not candidate or _is_likely_date_value(candidate) or _is_likely_prose(candidate): + return False + if _is_splittable_token(candidate): + return True + return bool(re.fullmatch(r"\d{6,20}", candidate)) + + +def _split_identifier_list(value: str) -> list[str]: + value = (value or "").strip() + if not value: + return [] + + if re.search(r"[,;]", value): + parts = [ + part.strip() + for part in re.split(r"[,;]+", value) + if part.strip() and _is_valid_device_identifier(part.strip()) + ] + if parts: + return parts + + tokens = value.split() + if len(tokens) >= 2 and all(_is_valid_device_identifier(token) for token in tokens): + return tokens + + if _is_valid_device_identifier(value): + return [value] + return [] + + +def _paired_rows_from_summary(summary: dict[str, str]) -> list[DeviceRow]: + """Zip parallel UDI-DI and SN lists from summary labels into one row per device.""" + udi_list = _split_identifier_list(summary.get("udi", "")) + sn_list = _split_identifier_list(summary.get("serial_no", "")) + if not udi_list or not sn_list: + return [] + + count = min(len(udi_list), len(sn_list)) + if count < 2: + return [] + + material = _clean_material_value(summary.get("material", "")) + material_description = summary.get("material_description", "") + return [ + DeviceRow( + material=material, + material_description=material_description, + catalog_number="", + udi=udi_list[index], + serial_no=sn_list[index], + gstn="", + batch="", + ) + for index in range(count) + ] + + +def _is_splittable_token(token: str) -> bool: + """True when a whitespace-separated token looks like an ID/code, not prose.""" + token = (token or "").strip() + if not token or " " in token or _is_likely_date_value(token): + return False + if _NUMERIC_ID_TOKEN_RE.fullmatch(token): + return True + if _LOT_CODE_TOKEN_RE.fullmatch(token): + return True + if _SRN_ID_TOKEN_RE.fullmatch(token): + return True + return ( + len(token) <= 25 + and _ALPHANUM_CODE_TOKEN_RE.fullmatch(token) is not None + and re.search(r"\d", token) is not None + ) + + +def _split_multi_values(value: str) -> list[str]: + value = re.sub(r"[\n\r]+", ", ", (value or "").strip()) + if not value: + return [""] + + if re.search(r"[,;]", value): + parts = [ + part.strip() + for part in re.split(r"[,;]+", value) + if part.strip() and not _is_likely_date_value(part.strip()) + ] + if len(parts) > 1: + return parts + + # Some ADE PDFs list UDIs/serials as space-separated 10-digit numbers in one cell. + tokens = value.split() + if len(tokens) >= 2 and all(_is_splittable_token(token) for token in tokens): + return [token for token in tokens if not _is_likely_date_value(token)] + + return [value] + + +def _expand_device_row(row: DeviceRow) -> list[DeviceRow]: + """Split one parsed row into many when serial, catalog, or batch lists several values.""" + field_parts = { + field: _split_multi_values(getattr(row, field)) + for field in _MULTI_VALUE_DEVICE_FIELDS + } + multi_fields = [field for field, parts in field_parts.items() if len(parts) > 1] + if not multi_fields: + return [row] + + if len(multi_fields) == 1: + field = multi_fields[0] + return [ + DeviceRow(**{**row.as_dict(), field: part}) + for part in field_parts[field] + ] + + lengths = {field: len(field_parts[field]) for field in multi_fields} + if len(set(lengths.values())) == 1: + count = next(iter(lengths.values())) + return [ + DeviceRow( + **{ + **row.as_dict(), + **{field: field_parts[field][index] for field in multi_fields}, + } + ) + for index in range(count) + ] + + primary_field = max(multi_fields, key=lambda field: len(field_parts[field])) + expanded: list[DeviceRow] = [] + for part in field_parts[primary_field]: + row_data = row.as_dict() + row_data[primary_field] = part + for field in multi_fields: + if field != primary_field: + row_data[field] = field_parts[field][0] + expanded.append(DeviceRow(**row_data)) + return expanded + + +def _expand_device_rows(devices: list[DeviceRow]) -> list[DeviceRow]: + expanded: list[DeviceRow] = [] + for device in devices: + expanded.extend(_expand_device_row(device)) + return expanded + + +def _normalize_header(cell: str | None) -> str: + if not cell: + return "" + return re.sub(r"\s+", " ", str(cell).strip().lower()) + + +_DATE_COLUMN_TERMS = ( + "date", + "manufacturing date", + "mfg date", + "prod date", + "production date", + "expiry date", + "expiration date", +) + + +def _is_date_column_header(header: str) -> bool: + normalized = _normalize_header(header) + if not normalized: + return False + if normalized in ("date", "dates"): + return True + if "update" in normalized: + return False + return any(term in normalized for term in _DATE_COLUMN_TERMS) + + +def _clean_material_value(value: str) -> str: + cleaned = (value or "").strip() + if not cleaned: + return "" + concerned_match = re.search( + r"product\s+concerned\s*:\s*(.+)$", + cleaned, + re.IGNORECASE, + ) + if concerned_match: + return concerned_match.group(1).strip() + while True: + stripped = _PRODUCT_CONCERNED_PREFIX_RE.sub("", cleaned).strip() + if stripped == cleaned: + break + cleaned = stripped + return cleaned + + +def _clean_serial_value(value: str) -> str: + cleaned = re.sub(r"[\n\r]+", ", ", (value or "").strip()) + if not cleaned or _is_likely_date_value(cleaned): + return "" + if re.search(r"[,;]", cleaned): + parts = [ + part.strip() + for part in re.split(r"[,;]+", cleaned) + if part.strip() and not _is_likely_date_value(part.strip()) + ] + valid_parts = [ + part + for part in parts + if not _is_likely_prose(part) or _is_valid_device_identifier(part) + ] + if len(valid_parts) > 1: + return ", ".join(valid_parts) + if len(valid_parts) == 1: + return valid_parts[0] + return "" + if _is_likely_prose(cleaned): + return "" + return cleaned + + +def _sanitize_device_row(row: DeviceRow) -> DeviceRow: + data = row.as_dict() + data["material"] = _clean_material_value(data["material"]) + data["serial_no"] = _clean_serial_value(data["serial_no"]) + return DeviceRow(**data) + + +def _header_matches(header: str, alias: str) -> bool: + if not header or not alias: + return False + if header == alias: + return True + if len(header) <= 3 or len(alias) <= 3: + return False + # e.g. header "product" must not match alias "product code" + if len(header) < len(alias) and header in alias: + return False + return alias in header or header in alias + + +def _map_columns_base(header_row: list) -> dict[str, int]: + normalized = [_normalize_header(c) for c in header_row] + mapping: dict[str, int] = {} + used_indices: set[int] = set() + + for field in FIELD_PRIORITY: + aliases = sorted(HEADER_ALIASES[field], key=len, reverse=True) + for idx, header in enumerate(normalized): + if idx in used_indices or not header: + continue + if field == "serial_no" and _is_date_column_header(header): + continue + if any(_header_matches(header, alias) for alias in aliases): + mapping[field] = idx + used_indices.add(idx) + break + + return mapping + + +def _apply_column_heuristics(header_row: list, mapping: dict[str, int]) -> dict[str, int]: + """GE-style tables: product name in column 0 with an empty header cell.""" + normalized = [_normalize_header(c) for c in header_row] + used_indices = set(mapping.values()) + + if ( + "material" not in mapping + and len(normalized) > 0 + and not normalized[0] + and 0 not in used_indices + ): + mapping["material"] = 0 + + # When both system and unit serial columns exist, prefer unit serial number. + for idx, header in enumerate(normalized): + if "unit serial" in header: + mapping["serial_no"] = idx + break + + return mapping + + +def _merge_header_rows(row0: list, row1: list) -> list[str]: + max_len = max(len(row0 or []), len(row1 or [])) + merged: list[str] = [] + for idx in range(max_len): + parts: list[str] = [] + for row in (row0, row1): + if row and idx < len(row) and row[idx]: + part = str(row[idx]).strip() + if part: + parts.append(part) + merged.append(" ".join(parts).strip()) + return merged + + +_LOT_BATCH_TOKEN_RE = re.compile(r"\b\d{2}[A-Z]\d{4}\b") + + +def _is_likely_header_continuation_row(row: list) -> bool: + """Detect sub-header rows like ['Code', '', 'return'] under 'Procedure Pack'.""" + if not row: + return False + cells = [str(cell).strip() for cell in row if cell is not None and str(cell).strip()] + if not cells: + return False + for cell in cells: + if _LOT_BATCH_TOKEN_RE.search(cell): + return False + if len(cell) > 40: + return False + return True + + +def _resolve_table_header(table: list) -> tuple[list, int]: + """Return (header_row, data_start_index), merging split headers when needed.""" + if not table: + return [], 0 + + mapping = _map_columns(table[0]) + if mapping and len(mapping) >= 2: + return table[0], 1 + + if len(table) >= 3 and _is_likely_header_continuation_row(table[1]): + merged = _merge_header_rows(table[0], table[1]) + merged_mapping = _map_columns(merged) + if merged_mapping and len(merged_mapping) >= 2: + return merged, 2 + + return table[0], 1 + + +def _map_columns(header_row: list) -> dict[str, int] | None: + mapping = _apply_column_heuristics(header_row, _map_columns_base(header_row)) + if len(mapping) < 2: + return None + return mapping + + +def _get_cell_value(cells: list, idx: int | None) -> str: + """Read cell; try adjacent columns when pdfplumber shifts values off header.""" + if idx is None or idx >= len(cells): + return "" + for try_idx in (idx, idx - 1, idx + 1): + if 0 <= try_idx < len(cells) and cells[try_idx] is not None: + val = re.sub(r"[\n\r]+", ", ", str(cells[try_idx]).strip()) + val = re.sub(r"\s+", " ", val).strip() + if val: + return val + return "" + + +def _cell_text(cells: list, idx: int) -> str: + if idx < 0 or idx >= len(cells) or cells[idx] is None: + return "" + return re.sub(r"[\n\r]+", ", ", str(cells[idx]).strip()) + + +def _best_cell_for_field(cells: list, field: str, used_indices: set[int]) -> str: + """Scan row cells when sparse tables shift values away from header indices.""" + best_value = "" + best_score = -1 + + for idx, raw in enumerate(cells): + if idx in used_indices or raw is None: + continue + text = _cell_text(cells, idx) + if not text: + continue + + score = 0 + if field in ("serial_no", "batch"): + parts = [p.strip() for p in re.split(r"[,;]+", text) if p.strip()] + identifier_parts = sum(1 for part in parts if _is_valid_device_identifier(part)) + if identifier_parts >= 2: + score = 100 + identifier_parts + elif identifier_parts == 1 and len(parts) == 1: + score = 40 + elif field in ("gstn", "udi"): + tokens = _UDI_TOKEN_RE.findall(text) + if tokens: + score = 80 + len(tokens) + elif field == "catalog_number": + if text and not _UDI_TOKEN_RE.fullmatch(text) and len(text) <= 40: + score = 30 + elif field == "material": + if text and not _UDI_TOKEN_RE.fullmatch(text): + score = 20 + + if score > best_score: + best_score = score + best_value = text + + return best_value if best_score > 0 else "" + + +def _resolve_sparse_row_values(cells: list, mapping: dict[str, int]) -> dict[str, str]: + """Fill empty mapped fields from other cells in misaligned sparse tables.""" + used_indices: set[int] = set() + values: dict[str, str] = {} + + for field in FIELD_PRIORITY: + idx = mapping.get(field) + value = _get_cell_value(cells, idx) + if value: + values[field] = value + if idx is not None: + used_indices.add(idx) + for offset in (-1, 1): + neighbor = idx + offset + if ( + 0 <= neighbor < len(cells) + and _cell_text(cells, neighbor) == value + ): + used_indices.add(neighbor) + + for field in ("serial_no", "gstn", "udi", "catalog_number", "batch", "material"): + if values.get(field): + continue + fallback = _best_cell_for_field(cells, field, used_indices) + if fallback: + values[field] = fallback + + return values + + +def _row_from_cells(cells: list, mapping: dict[str, int]) -> DeviceRow | None: + resolved = _resolve_sparse_row_values(cells, mapping) + + row = DeviceRow( + material=resolved.get("material", ""), + material_description=resolved.get("material_description", ""), + catalog_number=resolved.get("catalog_number", ""), + udi=resolved.get("udi", ""), + serial_no=resolved.get("serial_no", ""), + gstn=resolved.get("gstn", ""), + batch=resolved.get("batch", ""), + ) + + if not any(row.as_dict().values()): + return None + + return _sanitize_device_row(row) + + +def _is_form_table(header_row: list) -> bool: + text = " ".join(_normalize_header(c) for c in header_row) + if not any(keyword in text for keyword in FORM_TABLE_KEYWORDS): + return False + # If it's clearly an affected-product table, don't treat it as a response/form table. + return not _is_strong_product_header(text) + + +def _is_product_table( + header_row: list, page_text: str, mapping: dict[str, int] | None = None +) -> bool: + header_text = " ".join(_normalize_header(c) for c in header_row) + page_lower = page_text.lower() + + if _is_form_table(header_row): + return False + + # Section numbering only (e.g. "3. affected products") — not a column header row. + normalized_headers = [_normalize_header(c) for c in header_row if _normalize_header(c)] + if normalized_headers and all( + re.match(r"^\d+\.\s", h) or h in ("affected products", "actions to be taken") + for h in normalized_headers + ): + return False + + if mapping is None: + mapping = _map_columns(header_row) + + # If headers map cleanly and look product-like, accept even if they contain unrelated columns. + if mapping and len(mapping) >= 2 and _is_strong_product_header(header_text): + return True + + if any(keyword in header_text for keyword in NON_PRODUCT_HEADER_KEYWORDS): + return False + + # Appendix-style tables (system code + commercial name) without section keywords. + if mapping and len(mapping) >= 2: + return True + + product_header_terms = ( + "catalog", + "model", + "product", + "udi", + "gtin", + "serial", + "lot", + "material", + "ref", + "part", + "device", + "batch", + "system", + "commercial", + ) + product_term_count = sum(1 for term in product_header_terms if term in header_text) + + if any(keyword in page_lower for keyword in PRODUCT_SECTION_KEYWORDS): + return product_term_count >= 1 + + return product_term_count >= 2 + + +def parse_affected_device_list(pdf_bytes: bytes) -> list[DeviceRow]: + table_devices: list[DeviceRow] = [] + all_lines: list[str] = [] + + with pdfplumber.open(io.BytesIO(pdf_bytes)) as pdf: + for page in pdf.pages: + text = page.extract_text() or "" + all_lines.extend(_normalize_lines(text)) + + for table in page.extract_tables() or []: + if not table or len(table) < 2: + continue + + header, data_start = _resolve_table_header(table) + mapping = _map_columns(header) + if not mapping: + continue + + if not _is_product_table(header, text, mapping=mapping): + continue + + for row in table[data_start:]: + device = _row_from_cells(row, mapping) + if device: + table_devices.append(device) + + summary, text_rows = _parse_text_content(all_lines) + paired_rows = _paired_rows_from_summary(summary) + + if paired_rows and not table_devices: + devices = paired_rows + elif table_devices: + devices = _enrich_table_devices_from_text(table_devices, summary, text_rows) + else: + devices = _devices_from_text_only(summary, text_rows) + + devices = [_sanitize_device_row(device) for device in devices] + return _expand_device_rows(devices) + + +_LABEL_RE = re.compile( + r"^\s*(?P