jey_erp/TASK_CONTEXT.md

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, remote upstream
  • az_locale: branch develop, remote upstream
  • Команда пуша: git push upstream main