public function checkEnoughProduct($orderDetailList, $productQtyList, $customizationIds, $customizationQtyInput) { $order = new JeproshopOrderModelOrder((int) $this->order_id); if (!JeproshopValidate::isLoadedObject($order, 'order_id')) { die(Tools::displayError()); } $products = $order->getProducts(); /* Products already returned */ $order_returns = JeproshopOrderReturnModelOrderReturn::getOrdersReturn($order->customer_id, $order->order_id, true); foreach ($order_returns as $order_return) { $order_return_products = JeproshopOrderReturnModelOrderReturn::getOrdersReturnProducts($order_return->order_return_id, $order); foreach ($order_return_products as $key => $orp) { $products[$key]->product_quantity -= (int) $orp->product_quantity; } } /* Quantity check */ if ($orderDetailList) { foreach (array_keys($orderDetailList) as $key) { if ($qty = (int) $productQtyList[$key]) { if ($products[$key]->product_quantity - $qty < 0) { return false; } } } } /* Customization quantity check */ if ($customizationIds) { $orderedCustomizations = JeproshopCustomization::getOrderedCustomizations((int) $order->cart_id); foreach ($customizationIds as $customizations) { foreach ($customizations as $customizationId) { $customizationId = (int) $customizationId; if (!isset($orderedCustomizations[$customizationId])) { return false; } $quantity = isset($customizationQtyInput[$customizationId]) ? (int) $customizationQtyInput[$customizationId] : 0; if ((int) $orderedCustomizations[$customizationId]->quantity - $quantity < 0) { return false; } } } } return true; }