diff --git a/fusion_plating/fusion_plating_jobs/models/fp_job.py b/fusion_plating/fusion_plating_jobs/models/fp_job.py index 3560b710..d1bca49b 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_job.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_job.py @@ -1368,15 +1368,24 @@ class FpJob(models.Model): seq += 10 def _fp_create_portal_job(self): - """Create the fusion.plating.portal.job mirror record.""" + """Create the fusion.plating.portal.job mirror record. + + Initial state derived from the fp.job state via the same map + used by write() — so a job that's already 'in_progress' when + the portal mirror is created (e.g. a manual catch-up create) + doesn't reset to 'received'. + """ self.ensure_one() if self.portal_job_id: return # already exists — idempotent Portal = self.env['fusion.plating.portal.job'].sudo() + initial_state = self._FP_JOB_STATE_TO_PORTAL_STATE.get( + self.state, 'received', + ) portal = Portal.create({ 'name': self.name, 'partner_id': self.partner_id.id, - 'state': 'in_progress', + 'state': initial_state, 'x_fc_job_id': self.id, }) self.portal_job_id = portal.id