diff --git a/jey_erp/hooks.py b/jey_erp/hooks.py index 2a37a4a..8294e12 100644 --- a/jey_erp/hooks.py +++ b/jey_erp/hooks.py @@ -124,6 +124,7 @@ setup_wizard_complete = [ "jey_erp.setup.setup_wizard_handler.create_default_salary_components", "jey_erp.setup.setup_wizard_handler.create_default_leave_types", "jey_erp.setup.setup_wizard_handler.create_default_company_accounts", + "jey_erp.setup.setup_wizard_handler.set_default_settings", "jey_erp.custom.rename_default_groups.rename_default_groups", ] diff --git a/jey_erp/setup/setup_wizard_handler.py b/jey_erp/setup/setup_wizard_handler.py index 8ff4e21..9ea0b7a 100644 --- a/jey_erp/setup/setup_wizard_handler.py +++ b/jey_erp/setup/setup_wizard_handler.py @@ -269,6 +269,28 @@ def create_default_company_accounts(args): frappe.db.commit() +def set_default_settings(args=None): + """Дефолтные галочки настроек после завершения визарда. + + Идём через get_single().save(), а НЕ db.set_value: у этих настроек есть + побочные действия в on_update/validate, без которых галочка не "сработает". + Идемпотентно — если уже включено, не трогаем. + """ + # Global Defaults.disable_rounded_total читается через frappe.db.get_default, + # который заполняется только в on_update (set_default + clear_cache). + gd = frappe.get_single("Global Defaults") + if not gd.disable_rounded_total: + gd.disable_rounded_total = 1 + gd.save(ignore_permissions=True) + + acc = frappe.get_single("Accounts Settings") + if not acc.delete_linked_ledger_entries: + acc.delete_linked_ledger_entries = 1 + acc.save(ignore_permissions=True) + + frappe.db.commit() + + def sync_company_defaults(): """Синхронизирует default-счета на ВСЕХ Company с default_data/company_defaults.json. Для каждого поля из JSON ищет Account по account_number в каждой компании