Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
3309 Widoki

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


Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
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 Najlepsza odpowiedź

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,


Awatar
Odrzuć

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

Powiązane posty Odpowiedzi Widoki Czynność
2
sie 25
1766
1
maj 25
1513
Stock update Rozwiązane
1
gru 24
2899
2
mar 24
2822
2
maj 23
197