Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
3302 Vistas

I'm trying to create order deliveries for sale order
What can i set the value of picking_type_id in the following function to work correctly when i click on confirm button?

def action_confirm(self):
res = super(SaleOrder, self)
locations = []
for line in res.order_line:
if line.warehouse_ids not in locations:
locations.append(line.warehouse_ids)
picking_vals = {
'partner_id': res.partner_shipping_id.id,
'location_id': line.warehouse_ids.id,
'location_dest_id': res.partner_shipping_id.property_stock_customer.id,
'picking_type_id': ,
'sale_id': res.id

}
self.env['stock.picking'].create(picking_vals)
return res


Avatar
Descartar
Mejor respuesta

Hi 

You can search the picking_type_id of Outgoing ,which gives the delivery orders.

self.env['stock.picking.type'].search([
('code', '=', 'outgoing'),
('warehouse_id.company_id', '=', company_id),
], limit=1).id

Regards

Avatar
Descartar
Autor

it doesn't work for me it putted all delivery orders in the same warehouse that is named YourCompany
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.model
def action_confirm(self):
res = super(SaleOrder, self)
oreders = res.order_line
for loc in oreders.mapped('warehous_id'):
line = oreders.filtered(lambda o: o.warehous_id.id == loc.id)
picking_vals = {
'origin': res.name,
'partner_id': res.partner_shipping_id.id,
'location_id': loc.lot_stock_id.id,
'location_dest_id': res.partner_shipping_id.property_stock_customer.id,
'picking_type_id':self.env['stock.picking.type'].search([
('code', '=', 'outgoing'),('warehouse_id.company_id', '=', loc.company_id.id),], limit=1).id,

Autor Mejor respuesta

it doesn't work for me it putted all delivery orders in the same warehouse that is named YourCompany
class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.model
def action_confirm(self):
res = super(SaleOrder, self)
oreders = res.order_line
for loc in oreders.mapped('warehous_id'):
line = oreders.filtered(lambda o: o.warehous_id.id == loc.id)
picking_vals = {
'origin': res.name,
'partner_id': res.partner_shipping_id.id,
'location_id': loc.lot_stock_id.id,
'location_dest_id': res.partner_shipping_id.property_stock_customer.id,
'picking_type_id':self.env['stock.picking.type'].search([
('code', '=', 'outgoing'),('warehouse_id.company_id', '=', loc.company_id.id),], limit=1).id,


Avatar
Descartar

picking_vals = {
'partner_id': res.partner_shipping_id.id,

'picking_type_id':self.env['stock.picking.type'].search([
('code', '=', 'outgoing'),('warehouse_id.company_id', '=', loc.company_id.id),], limit=1).id,}

Only you need the above fields

Publicaciones relacionadas Respuestas Vistas Actividad
2
ago 25
1765
1
may 25
1509
1
dic 24
2878
2
mar 24
2820
2
may 23
197