diff --git a/fusion_repairs/__manifest__.py b/fusion_repairs/__manifest__.py index 19232951..1e81bce9 100644 --- a/fusion_repairs/__manifest__.py +++ b/fusion_repairs/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Fusion Repairs', - 'version': '19.0.1.0.3', + 'version': '19.0.1.0.4', 'category': 'Inventory/Repairs', 'summary': 'Guided medical equipment repair intake, dispatch, maintenance, and self-service portal', 'description': """ diff --git a/fusion_repairs/data/ir_sequence_data.xml b/fusion_repairs/data/ir_sequence_data.xml index dd24383f..6123a864 100644 --- a/fusion_repairs/data/ir_sequence_data.xml +++ b/fusion_repairs/data/ir_sequence_data.xml @@ -23,5 +23,21 @@ 1 + + + + Repair Order (RO-YYYYMM-NN) + fusion.repair.order.monthly + RO-%(year)s%(month)s- + + 2 + 1 + 1 + + + diff --git a/fusion_repairs/models/repair_order.py b/fusion_repairs/models/repair_order.py index a017112d..d609b67b 100644 --- a/fusion_repairs/models/repair_order.py +++ b/fusion_repairs/models/repair_order.py @@ -28,6 +28,22 @@ class RepairOrder(models.Model): _inherit = 'repair.order' + # ------------------------------------------------------------------ + # CREATE - replace the picking-type default sequence with our + # date-based RO-YYYYMM-NN reference. We set vals['name'] BEFORE + # super() so Odoo's native create() (which only assigns the picking + # type sequence when name is empty or 'New') skips its own numbering. + # ------------------------------------------------------------------ + @api.model_create_multi + def create(self, vals_list): + Sequence = self.env['ir.sequence'].sudo() + for vals in vals_list: + if not vals.get('name') or vals.get('name') == 'New': + next_name = Sequence.next_by_code('fusion.repair.order.monthly') + if next_name: + vals['name'] = next_name + return super().create(vals_list) + # ------------------------------------------------------------------ # INTAKE METADATA # ------------------------------------------------------------------