rsosa423

Obtener precios y cantidades de una ubicacion en especifico

Jan 27th, 2021 (edited)
762
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # ID de Tarifa (212 Web USD): 3967
  2. # ID de ubicación (TECNI/Stock): 83
  3.  
  4. mtrx = dict()
  5.  
  6. # Esta consulta al objeto 'stock.quant' me devuelve la existencia SOLO EN LA UBICACION QUE ME INTERESA
  7. qty = models.execute_kw(DB, UID, PSW, 'stock.quant', 'search_read',  
  8.                         [[('location_id', '=', 83), ('company_id', '=', 11)]],
  9.                         {'fields': ['product_id', 'quantity', 'reserved_quantity'],
  10.                          'context': {'lang': 'es_VE'}})
  11.  
  12. # Extraigo los ID de producto del resultado de la consulta anterior
  13. prods_ids = [x['product_id'][0] for x in qty]
  14.  
  15. # Esta consulta me devuelve los precios de los productos, usando los ID's obtenidos en la consulta anterior
  16. prices = models.execute_kw(DB, UID, PSW, 'product.product', 'search_read',  [[('id', 'in', prods_ids)]],
  17.                            {'fields': ['price'],
  18.                             'context': {'quantity': 1, 'pricelist': 3967}})
  19.  
  20. # Organizo en un solo diccionario el resultado de ambas consultas
  21. mtrx = {x['product_id'][0]: {'name': x['product_id'][1], 'quantity': x['quantity'], 'reserved': x['reserved_quantity']} for x in qty}
  22. for elem in prices:
  23.     if elem['id'] in mtrx.keys():
  24.         mtrx[elem['id']].update({'price': elem['price']})
  25.  
  26. print(json.dumps(mtrx, indent=2))
RAW Paste Data