summaryrefslogtreecommitdiff
path: root/fixco_custom/models/stock_picking_shipment_group.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-06-09 16:23:51 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-06-09 16:23:51 +0700
commit8d482347f6dff03919db3f0a92ba1f3c5eb74ffe (patch)
tree35323f6be9a29ba41a6af7e0b2f231e2cbed5f0e /fixco_custom/models/stock_picking_shipment_group.py
parentef860cf6815dceb0a806a08b2118390830ccdae0 (diff)
shipment group
Diffstat (limited to 'fixco_custom/models/stock_picking_shipment_group.py')
-rw-r--r--fixco_custom/models/stock_picking_shipment_group.py36
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'}
+
+