/**
  * @param ApiLot[] $lots
  * @throws \Exception
  */
 public function processLots($lots)
 {
     /** @var  $data AggLot */
     $data = $this->_manObj->create(AggLot::class);
     foreach ($lots as $item) {
         $data->setOdooId($item->getIdOdoo());
         $data->setCode($item->getNumber());
         $data->setExpDate($item->getExpirationDate());
         $lotExists = $this->_repoAggLot->getByOdooId($data->getOdooId());
         if (!$lotExists) {
             $this->_repoAggLot->create($data);
         }
     }
 }
 /**
  * Process lot data (create or update quantities).
  *
  * @param int $stockItemId Magento ID for stock item related to the lot.
  * @param \Praxigento\Odoo\Data\Odoo\Inventory\Product\Warehouse\Lot $lot
  * @return double quantity of the product in the lot
  */
 public function processLot($stockItemId, $lot)
 {
     $lotIdOdoo = $lot->getIdOdoo();
     $qty = $lot->getQuantity();
     $lotIdMage = $this->_repoAggLot->getMageIdByOdooId($lotIdOdoo);
     $pk = [EntityWarehouseQuantity::ATTR_STOCK_ITEM_REF => $stockItemId, EntityWarehouseQuantity::ATTR_LOT_REF => $lotIdMage];
     $qtyItem = $this->_repoWarehouseEntityQuantity->getById($pk);
     if ($qtyItem) {
         /* update lot qty data */
         $bind = [EntityWarehouseQuantity::ATTR_TOTAL => $qty];
         $this->_repoWarehouseEntityQuantity->updateById($pk, $bind);
     } else {
         /* create lot qty data */
         $pk[EntityWarehouseQuantity::ATTR_TOTAL] = $qty;
         $this->_repoWarehouseEntityQuantity->create($pk);
     }
     return $qty;
 }