Beispiel #1
0
 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;
 }