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'}