private static function _getLastPurchase(Product $product, $pageSize = self::PAGE_SIZE) { $totalReceivedQty = 0; $lastPurchaseTime = new UDate(); $totalPages = ceil(ProductQtyLog::countByCriteria('productId = ? and active = 1', array($product->getId())) / $pageSize); if (self::DEBUG === true) { self::_logMsg('totalPages: ' . $totalPages, __CLASS__, __FUNCTION__); } for ($pageNumber = 1; $pageNumber <= $totalPages; $pageNumber++) { foreach (self::_getProductQtyLogs($product, $pageNumber, $pageSize) as $productQtyLog) { if (self::DEBUG === true) { self::_logMsg('pageNumber: ' . $pageNumber, __CLASS__, __FUNCTION__); self::_logMsg('pageSize: ' . $pageSize, __CLASS__, __FUNCTION__); self::_logMsg('ProductQtyLogId: ' . $productQtyLog->getId(), __CLASS__, __FUNCTION__); } $totalReceivedQty += $productQtyLog->getStockOnHandVar(); if ($totalReceivedQty >= $product->getStockOnHand()) { return $productQtyLog; } } } return null; }