diff options
| -rw-r--r-- | indoteknik_custom/models/partial_delivery.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/indoteknik_custom/models/partial_delivery.py b/indoteknik_custom/models/partial_delivery.py index 519f505c..4e8ddbda 100644 --- a/indoteknik_custom/models/partial_delivery.py +++ b/indoteknik_custom/models/partial_delivery.py @@ -213,14 +213,22 @@ class PartialDeliveryWizard(models.TransientModel): new_picking.action_assign() picking.action_assign() - existing_partials = self.env['stock.picking'].search([ - ('origin', '=', picking.origin), - ('state_reserve', '=', 'partial'), + origin_name = picking.name + + existing_siblings = self.env['stock.picking'].search([ + ('name', 'like', f"{origin_name}/%"), ('id', '!=', new_picking.id), - ], order='name asc') + ]) + + suffixes = [] + for p in existing_siblings: + match = re.search(r'/(\d+)$', p.name) + if match: + suffixes.append(int(match.group(1))) + + next_suffix = max(suffixes) + 1 if suffixes else 1 - suffix_number = len(existing_partials) + 1 - new_picking.name = f"{picking.name}/{suffix_number}" + new_picking.name = f"{origin_name}/{next_suffix}" if picking.origin: sale_order = self.env['sale.order'].search([('name', '=', picking.origin)], limit=1) |
