now script creates asset category

This commit is contained in:
Ali 2025-11-14 16:08:25 +04:00
parent b591202c95
commit bb5bcc37ed
3 changed files with 81 additions and 112 deletions

View File

@ -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

View File

@ -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
}
]

View File

@ -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 = [