2.2 KiB
2.2 KiB
Следующая задача: экспорт/импорт счетов Company
Задача
Добавить кнопку "Export Defaults" в форму/список Company, которая выгружает все поля-ссылки на Account (Link to Account) в JSON. При установке на новой базе — проставлять эти счета в Company через setup_wizard_complete.
Паттерн (уже реализован для Salary Component и Leave Type)
- Экспорт: Python
@frappe.whitelist()функция → возвращает данные → JS скачивает как JSON - JSON хранится в
jey_erp/default_data/company_defaults.json - Импорт: в
setup_wizard_handler.pyновая функция, вызывается изsetup_wizard_completeв hooks.py - Account хранится как
account_name(без суффикса компании), при импорте резолвится черезfrappe.db.get_value("Account", {"account_name": ..., "company": company}, "name")
Структура приложения
/home/frappe/frappe-bench/apps/jey_erp/jey_erp/custom/— Python экспорт-функции (salary_component_export.py, account_export.py, leave_type_export.py)public/js/— JS кнопки (salary_component_list.js, account_list.js, leave_type_list.js)default_data/— JSON файлы (salary_components.json, leave_types.json)setup/setup_wizard_handler.py— импорт при установкеhooks.py— регистрация всего
hooks.py ключевые строки
doctype_list_js = {
"Currency Exchange": "public/js/currency_exchange_list.js",
"Salary Component": "public/js/salary_component_list.js",
"Account": "public/js/account_list.js",
"Leave Type": "public/js/leave_type_list.js",
}
setup_wizard_complete = [
"jey_erp.setup.setup_wizard_handler.create_default_salary_components",
"jey_erp.setup.setup_wizard_handler.create_default_leave_types",
]
Git
- jey_erp: branch
main, remoteupstream - az_locale: branch
develop, remoteupstream - Команда пуша:
git push upstream main