# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) # Part of the Fusion Plating product family. from odoo import fields, models class FpDelivery(models.Model): """Extend delivery to auto-update portal job when delivered. GAP 5: Delivery marked "delivered" → portal job → "shipped" + set actual_ship_date on the job. """ _inherit = 'fusion.plating.delivery' def action_mark_delivered(self): """Override to cascade delivery completion to the portal job.""" res = super().action_mark_delivered() PortalJob = self.env['fusion.plating.portal.job'] for delivery in self: if not delivery.job_ref: continue # Find the portal job by name/reference job = PortalJob.search( [('name', '=', delivery.job_ref)], limit=1, ) if not job: continue job.write({ 'state': 'shipped', 'actual_ship_date': fields.Date.today(), 'tracking_ref': delivery.name, }) job.message_post(body='Parts shipped — delivery %s marked delivered.' % delivery.name) return res