changes
This commit is contained in:
@@ -745,16 +745,10 @@ class FpJob(models.Model):
|
||||
'name': self.portal_job_id.name,
|
||||
}
|
||||
|
||||
# fp.job.state -> fusion.plating.portal.job.state mapping. Kept tight so
|
||||
# the customer doesn't see internal states. Anything not in this map
|
||||
# leaves the portal_job state alone (e.g. 'on_hold' stays in_progress).
|
||||
_FP_JOB_STATE_TO_PORTAL_STATE = {
|
||||
'confirmed': 'received',
|
||||
'in_progress': 'in_progress',
|
||||
'done': 'ready_to_ship',
|
||||
# 'on_hold' and 'cancelled' intentionally omitted — managers choose
|
||||
# what to surface to the customer.
|
||||
}
|
||||
# Sub-portal state sync — see fusion_plating_portal/.../fp_portal_job.py
|
||||
# `_fp_recompute_portal_state` for the rules. The mapping table that
|
||||
# used to live here was replaced by the helper so shipment / invoice
|
||||
# signals can't drift away from the WO state any more.
|
||||
|
||||
def write(self, vals):
|
||||
"""Write hook: (a) when qty_scrapped INCREASES, auto-spawn a
|
||||
@@ -783,13 +777,13 @@ class FpJob(models.Model):
|
||||
if job.state != new_state:
|
||||
state_changed_ids.add(job.id)
|
||||
result = super().write(vals)
|
||||
# Mirror state to portal_job for records that actually changed.
|
||||
# Mirror state to portal_job via the central recompute helper, so
|
||||
# the portal state always derives from the WO + shipment + invoice
|
||||
# together rather than the most-recent event flag.
|
||||
if state_changed_ids:
|
||||
target = self._FP_JOB_STATE_TO_PORTAL_STATE.get(vals.get('state'))
|
||||
if target:
|
||||
for job in self.filtered(lambda j: j.id in state_changed_ids):
|
||||
if job.portal_job_id and job.portal_job_id.state != target:
|
||||
job.portal_job_id.sudo().write({'state': target})
|
||||
for job in self.filtered(lambda j: j.id in state_changed_ids):
|
||||
if job.portal_job_id:
|
||||
job.portal_job_id._fp_recompute_portal_state()
|
||||
if not scrap_deltas:
|
||||
return result
|
||||
Hold = (self.env['fusion.plating.quality.hold']
|
||||
|
||||
Reference in New Issue
Block a user