4 Commits

Author SHA1 Message Date
gsinghpal
13e300d90e changes 2026-04-28 19:39:37 -04:00
gsinghpal
71376228cb feat(jobs): Phase 6 lean — scan controller + process-tree JSON endpoint
Phase 6 originally scoped the full operator UI rewrite (Plant
Overview, Tablet, Manager Dashboard, Process Tree). Tailscale SSH
to entech is currently unavailable, so live in-browser
verification of OWL/JS components isn't possible. Shipping a lean
Phase 6 with the data-layer pieces:

1. /fp/job/<id> scan controller — when a user scans a fp.job
   sticker, lands them on the fp.job form (or the process tree
   action once that's wired). Mirrors fusion_plating_reports' /fp/wo/
   pattern.

2. /fp/jobs/process_tree JSON endpoint — returns the recipe tree
   serialized with each node tagged by its fp.job.step state,
   ready for an OWL component to render. The component itself is
   deferred (see README.md).

The bigger UI deferrals (kanban, tablet, manager dashboard) are
documented in README.md. They get their own focused project after
cutover — the data layer is complete, so they can land
incrementally without touching fp.job/fp.job.step.

Tests verify controller imports + serialization shape (no HTTP
because TransactionCase doesn't easily simulate request context).

Manifest 19.0.1.8.0 → 19.0.1.9.0.

Part of: native job model migration (spec 2026-04-25)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 00:08:50 -04:00
gsinghpal
c528d581c2 feat(jobs): Phase 5 — fp.job reports (sticker + traveller)
Two parallel report definitions for the native job model:

1. Job Sticker (6x4 inch custom paperformat) bound to fp.job. Prints
   WH/JOB/... ID, customer, SO, qty, due date, recipe, step
   progress. QR encodes /fp/job/<id> for scan-to-job navigation.

2. Job Traveller bound to fp.job, A4 portrait. Job header + all
   fp.job.step rows in sequence order with operator sign-off
   column.

Coexists with fusion_plating_reports' MO/WO bindings — both print
menus stay live during migration.

Deferred reports (use existing during migration; rebind at cutover):
- BoL, Packing Slip, Invoice (read from SO, no fp.job change needed)
- WO Margin (cost rollup; rebuild against fp.job.step.cost_total
  in phase-end polish)

Adds fusion_plating_reports to fusion_plating_jobs depends.

Tests deferred to post-Tailscale-restore: 3 new tests verify
report actions are registered + sticker template renders without
QWeb errors. Module file content verified locally as
well-formed XML.

Manifest 19.0.1.7.0 → 19.0.1.8.0.

Part of: native job model migration (spec 2026-04-25)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 00:05:48 -04:00
gsinghpal
4341a03891 feat(jobs): add fusion_plating_jobs module skeleton (Phase 2 Task 2.1)
Empty module that will host the native job bridge during Phase 2
of the migration. Coexists with fusion_plating_bridge_mrp during
the migration period — both can be installed simultaneously
without conflict.

Depends on:
- fusion_plating (fp.job, fp.job.step, fp.work.centre from Phase 1)
- fusion_plating_configurator (fp.part.catalog, fp.coating.config)
- fusion_plating_portal (fusion.plating.portal.job)
- fusion_plating_logistics (fusion.plating.delivery)
- fusion_plating_quality (fusion.plating.customer.spec)
- fusion_plating_certificates (fp.certificate)

These deps are why these fields couldn't live in fusion_plating
core (would invert the dep graph). All cross-module fields on
fp.job and fp.job.step land here via _inherit in subsequent tasks.

auto_install=False — opt-in only.

Part of: native job model migration (spec 2026-04-25)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 22:55:04 -04:00