From bb5bcc37edcd4c1bc956bf2de4002d54d1edb1c0 Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Fri, 14 Nov 2025 16:08:25 +0400 Subject: [PATCH] now script creates asset category --- jey_erp/custom/create_asset_categories.py | 79 +++++++++++++++ jey_erp/fixtures/asset_category.json | 112 ---------------------- jey_erp/hooks.py | 2 + 3 files changed, 81 insertions(+), 112 deletions(-) create mode 100644 jey_erp/custom/create_asset_categories.py delete mode 100644 jey_erp/fixtures/asset_category.json diff --git a/jey_erp/custom/create_asset_categories.py b/jey_erp/custom/create_asset_categories.py new file mode 100644 index 0000000..ffa7dce --- /dev/null +++ b/jey_erp/custom/create_asset_categories.py @@ -0,0 +1,79 @@ +import frappe + +def create_asset_categories(): + """Create default Asset Categories with accounts""" + + # Получаем первую компанию + company = frappe.get_all("Company", limit=1) + if not company: + frappe.throw("No company found in the system") + + company_name = company[0].name + + # Список категорий активов + asset_categories = [ + "Binalar, tikililər və qurğular", + "Maşınlar və avadanlıqlar", + "Yüksək texnologiyalar məhsulu olan hesablama texnikası", + "Nəqliyyat vasitələri", + "Digər əsas vəsaitlər", + "Düzən torpaqlar", + "Dağ torpaqlar", + "Orta və yüksək dağ torpaqlar", + "Şəhərin mövcud hüdudundan kənarda olan kənd təsərrüfatı təyinatlı torpaqlar", + "Sənaye, tikinti, nəqliyyat, rabitə, ticarət-məişət xidməti və digər xüsusi təyinatlı torpaq sahələri" + ] + + # Находим нужные счета по account_name (только название, без кода) + accumulated_depreciation = get_account_by_name( + "Tikililər üzrə yığılmış amortizasiya", + company_name + ) + depreciation_expense = get_account_by_name( + "Amortizasiya xərci", + company_name + ) + fixed_asset = get_account_by_name( + "Digər uzunmüddətli aktivlər", + company_name + ) + + # Создаем категории активов + for category_name in asset_categories: + if not frappe.db.exists("Asset Category", category_name): + asset_category = frappe.new_doc("Asset Category") + asset_category.asset_category_name = category_name + asset_category.enable_cwip_accounting = 0 + + # Добавляем accounts + asset_category.append("accounts", { + "company_name": company_name, + "fixed_asset_account": fixed_asset, + "accumulated_depreciation_account": accumulated_depreciation, + "depreciation_expense_account": depreciation_expense, + "capital_work_in_progress_account": "" + }) + + asset_category.insert(ignore_permissions=True) + frappe.db.commit() + + print(f"Created Asset Category: {category_name}") + else: + print(f"Asset Category already exists: {category_name}") + + +def get_account_by_name(account_name, company): + """Get account by account_name field""" + account = frappe.db.get_value( + "Account", + { + "account_name": account_name, + "company": company + }, + "name" + ) + + if not account: + frappe.throw(f"Account not found: {account_name} for company {company}") + + return account \ No newline at end of file diff --git a/jey_erp/fixtures/asset_category.json b/jey_erp/fixtures/asset_category.json deleted file mode 100644 index 981269d..0000000 --- a/jey_erp/fixtures/asset_category.json +++ /dev/null @@ -1,112 +0,0 @@ -[ - { - "accounts": [], - "asset_category_name": "Binalar, tikililər və qurğular", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Binalar, tikililər və qurğular", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Maşınlar və avadanlıqlar", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Maşınlar və avadanlıqlar", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Yüksək texnologiyalar məhsulu olan hesablama texnikası", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Yüksək texnologiyalar məhsulu olan hesablama texnikası", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Nəqliyyat vasitələri", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Nəqliyyat vasitələri", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Digər əsas vəsaitlər", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Digər əsas vəsaitlər", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Düzən torpaqlar", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Düzən torpaqlar", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Dağ torpaqlar", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Dağ torpaqlar", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Orta və yüksək dağ torpaqlar", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Orta və yüksək dağ torpaqlar", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Şəhərin mövcud hüdudundan kənarda olan kənd təsərrüfatı təyinatlı torpaqlar", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Şəhərin mövcud hüdudundan kənarda olan kənd təsərrüfatı təyinatlı torpaqlar", - "non_depreciable_category": 0 - }, - { - "accounts": [], - "asset_category_name": "Sənaye, tikinti, nəqliyyat, rabitə, ticarət-məişət xidməti və digər xüsusi təyinatlı torpaq sahələri", - "docstatus": 0, - "doctype": "Asset Category", - "enable_cwip_accounting": 0, - "finance_books": [], - "modified": "2025-11-14 12:00:00.000000", - "name": "Sənaye, tikinti, nəqliyyat, rabitə, ticarət-məişət xidməti və digər xüsusi təyinatlı torpaq sahələri", - "non_depreciable_category": 0 - } -] \ No newline at end of file diff --git a/jey_erp/hooks.py b/jey_erp/hooks.py index 29ac726..feca08a 100644 --- a/jey_erp/hooks.py +++ b/jey_erp/hooks.py @@ -61,6 +61,8 @@ def after_migrate_combined(): show_item_tax_template_in_sales_invoice() from jey_erp.custom.vat_calculations import patch_sales_documents patch_sales_documents() + from jey_erp.custom.create_asset_categories import create_asset_categories + create_asset_categories() fixtures = [