Files
Makap/makap_backend/hooks.py
T
denis_ireri 4304b97e5b Add roll, Job Card and quotation-estimate fields; lay Makap fields out in tabs
- Batch gets roll details (stage, width, length, micron, net/gross kg,
  supplier lot, machine, Work Order) so each roll is a traceable batch (B3).
- Job Card gets operator output and waste capture on its first tab, with a
  derived waste % and a required reason whenever waste is entered.
- Quotation Item can cost a line from an estimating BOM: material grossed up
  for expected waste, BOM operating cost, set-up and cylinder charge, with
  the resulting margin shown against the quoted rate (M4).
- About 120 fields used to stack after amended_from with no sections. They
  now sit in a "Makap" tab per form (a section on child rows) with labelled
  sub-sections, and positions are updated on migrate (m1).
- Tooling Readiness is read-only: it is derived from the cylinder register.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:08:43 +03:00

54 lines
2.7 KiB
Python

app_name = "makap_backend"
app_title = "Makap Backend"
app_publisher = "Joseph njuki"
app_description = "ERP"
app_email = "josephnjuki833@gmail.com"
app_license = "mit"
# MAKAP Module 3 child-table registration
after_migrate = ["makap_backend.makap_backend.setup.ensure_makap_functional_roles", "makap_backend.makap_backend.setup.ensure_makap_object_permissions", "makap_backend.makap_backend.setup_module3.ensure_module3_child_tables", "makap_backend.makap_backend.setup_extensions.ensure_custom_fields", "makap_backend.makap_backend.setup_module8_dashboard.ensure_module8_number_cards", "makap_backend.makap_backend.setup_workspace_dashboard.ensure_workspace_number_cards", "makap_backend.makap_backend.workspace_setup.ensure_makap_workspace", "makap_backend.makap_backend.setup_module8_permissions.ensure_module8_role_permissions", "makap_backend.makap_backend.portal_shortcut.ensure_portal_shortcut"]
# MAKAP cross-module server-side controls
doc_events = {
"Packaging Specification": {
"validate": "makap_backend.makap_backend.controls.validate_packaging_specification",
},
"Quotation": {
"validate": "makap_backend.makap_backend.controls.validate_quotation",
},
"Sales Order": {
"validate": "makap_backend.makap_backend.controls.validate_sales_order",
},
"Work Order": {
"validate": "makap_backend.makap_backend.controls.validate_work_order",
},
"Job Card": {
"validate": "makap_backend.makap_backend.controls.validate_job_card",
},
"Quality Inspection": {
"validate": "makap_backend.makap_backend.controls.validate_quality_inspection",
},
"Purchase Order": {
"validate": "makap_backend.makap_backend.controls.validate_purchase_order",
},
"Delivery Note": {
"validate": "makap_backend.makap_backend.controls.validate_delivery_note",
"on_cancel": "makap_backend.makap_backend.controls.validate_delivery_note_on_cancel",
},
"Sales Invoice": {
"validate": "makap_backend.makap_backend.controls.validate_sales_invoice",
"on_submit": "makap_backend.makap_backend.controls.on_submit_or_cancel_sales_invoice",
"on_cancel": "makap_backend.makap_backend.controls.on_submit_or_cancel_sales_invoice",
},
"Payment Entry": {
"validate": "makap_backend.makap_backend.controls.validate_payment_entry",
"on_submit": "makap_backend.makap_backend.controls.on_submit_or_cancel_payment_entry",
"on_cancel": "makap_backend.makap_backend.controls.on_submit_or_cancel_payment_entry",
},
"Purchase Invoice": {
"validate": "makap_backend.makap_backend.controls.validate_purchase_invoice",
},
}
app_logo_url = "/assets/makap_backend/images/makap-icon.png"