diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-06-09 16:23:51 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-06-09 16:23:51 +0700 |
| commit | 8d482347f6dff03919db3f0a92ba1f3c5eb74ffe (patch) | |
| tree | 35323f6be9a29ba41a6af7e0b2f231e2cbed5f0e /fixco_custom/models/stock_picking_shipment_group.py | |
| parent | ef860cf6815dceb0a806a08b2118390830ccdae0 (diff) | |
shipment group
Diffstat (limited to 'fixco_custom/models/stock_picking_shipment_group.py')
| -rw-r--r-- | fixco_custom/models/stock_picking_shipment_group.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/fixco_custom/models/stock_picking_shipment_group.py b/fixco_custom/models/stock_picking_shipment_group.py new file mode 100644 index 0000000..89b26bd --- /dev/null +++ b/fixco_custom/models/stock_picking_shipment_group.py @@ -0,0 +1,36 @@ +from odoo import models, fields, api, _ +from odoo.exceptions import UserError + +class StockPickingShipmentGroup(models.TransientModel): + _name = 'stock.picking.shipment_group' + _description = 'Stock Picking Shipment Group' + +class StockPickingShipmentGroup(models.TransientModel): + _name = 'stock.picking.shipment_group' + _description = 'Stock Picking Shipment Group' + + def create_shipment_group(self): + picking_ids = self.env.context.get('picking_ids') + if not picking_ids: + raise UserError("No stock picking selected.") + + pickings = self.env['stock.picking'].browse(picking_ids) + + # Create the Shipment Group + shipment_group = self.env['shipment.group'].create({}) + + for picking in pickings: + # Link picking to shipment group + picking.shipment_group_id = shipment_group.id + + for move in picking.move_ids_without_package: + self.env['shipment.group.line'].create({ + 'shipment_id': shipment_group.id, + 'product_id': move.product_id.id, + 'carrier': picking.carrier, + 'invoice_marketplace': picking.invoice_mp, + }) + + return {'type': 'ir.actions.act_window_close'} + + |
