Adds x_fc_job_id / x_fc_step_id Many2ones via _inherit on: - fusion.plating.batch (workorder_id stays for legacy MRP-bound batches) - fusion.plating.quality.hold - fp.certificate - fp.thickness.reading - fusion.plating.delivery (parallel to existing job_ref Char) - fp.racking.inspection (parallel to existing production_id) fp.job.action_confirm now also calls a best-effort racking-inspection auto-create. The current fp.racking.inspection still has a required production_id, so the helper skips cleanly when this job has no MO link (pure-native mode). Phase 9 cutover flips the required FK to fp.job. Strategy: parallel coexistence — bridge_mrp's existing fields stay populated; this adds NEW fields populated by the native flow. Phase 9 cutover stops populating the old fields. Adds fusion_plating_batch + fusion_plating_receiving to jobs module depends. Note: spec referenced fp.batch / fp.quality.hold; the actual models in this codebase are fusion.plating.batch / fusion.plating.quality.hold — used the real model names. Manifest 19.0.1.5.0 → 19.0.1.6.0. 29 jobs tests pass. Part of: native job model migration (spec 2026-04-25) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
732 B
Python
27 lines
732 B
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
#
|
|
# Phase 3 — parallel job/step links on fusion.plating.batch.
|
|
# The legacy workorder_id link to mrp.workorder stays in place.
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class FusionPlatingBatch(models.Model):
|
|
_inherit = 'fusion.plating.batch'
|
|
|
|
x_fc_step_id = fields.Many2one(
|
|
'fp.job.step',
|
|
string='Plating Step',
|
|
index=True,
|
|
help='Native fp.job.step link. Coexists with the legacy '
|
|
'workorder_id link to mrp.workorder.',
|
|
)
|
|
x_fc_job_id = fields.Many2one(
|
|
'fp.job',
|
|
related='x_fc_step_id.job_id',
|
|
store=True,
|
|
string='Plating Job',
|
|
)
|