temporary removed custom report from hooks

This commit is contained in:
Ali 2025-12-24 16:40:08 +04:00
parent 3dfd964642
commit 6f0f9aa522
2 changed files with 62 additions and 20 deletions

View File

@ -1,5 +1,24 @@
import frappe
def get_system_asset_categories():
"""
Возвращает список системных категорий активов
"""
return [
"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"
]
def create_asset_categories():
"""
Создает категории активов с настройками счетов
@ -17,21 +36,10 @@ def create_asset_categories():
return
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"
]
# Получаем список системных категорий
asset_categories = get_system_asset_categories()
# Находим нужные счета
try:
accumulated_depreciation = get_account_by_name(
@ -101,8 +109,38 @@ def get_account_by_name(account_name, company):
},
"name"
)
if not account:
raise ValueError(f"Account not found: {account_name} for company {company}")
return account
def prevent_delete_system_asset_categories(doc, method):
"""
Запрещает удаление системных категорий активов
"""
system_categories = get_system_asset_categories()
if doc.asset_category_name in system_categories:
frappe.throw(
f"Cannot delete system asset category: {doc.asset_category_name}",
frappe.PermissionError
)
def prevent_create_new_asset_categories(doc, method):
"""
Запрещает создание новых категорий активов.
Разрешены только системные категории, созданные через hooks.
"""
system_categories = get_system_asset_categories()
# Проверяем, создается ли новая запись
if doc.is_new():
# Если это не системная категория, запрещаем создание
if doc.asset_category_name not in system_categories:
frappe.throw(
"Cannot create new asset categories. Only predefined system categories are allowed.",
frappe.PermissionError
)

View File

@ -23,9 +23,9 @@ doctype_js = {
"Sales Invoice": "public/js/sales_invoice.js"
}
override_doctype_class = {
"Report": "jey_erp.custom_report.CustomReport"
}
# override_doctype_class = {
# "Report": "jey_erp.custom_report.CustomReport"
# }
doc_events = {
"Employee Onboarding": {
@ -49,6 +49,7 @@ doc_events = {
"before_save": "jey_erp.custom.sales_order_vat.set_vat_fields_permissions"
},
"Asset Category": {
"validate": "jey_erp.custom.create_asset_categories.prevent_create_new_asset_categories",
"on_trash": "jey_erp.custom.create_asset_categories.prevent_delete_system_asset_categories"
}
}
@ -65,7 +66,10 @@ def after_migrate_combined():
patch_sales_documents()
from jey_erp.custom.create_asset_categories import create_asset_categories
create_asset_categories()
from jey_erp.custom.create_asset_categories import create_asset_categories
create_asset_categories()
after_install = "jey_erp.custom.create_asset_categories.create_asset_categories"
fixtures = [
{