コード例 #1
0
ファイル: OrderReturn.php プロジェクト: jpodracky/dogs
 public function checkEnoughProduct($order_detail_list, $product_qty_list, $customization_ids, $customization_qty_input)
 {
     $order = new Order((int) $this->id_order);
     if (!Validate::isLoadedObject($order)) {
         die(Tools::displayError());
     }
     $products = $order->getProducts();
     /* Products already returned */
     $order_return = OrderReturn::getOrdersReturn($order->id_customer, $order->id, true);
     foreach ($order_return as $or) {
         $order_return_products = OrderReturn::getOrdersReturnProducts($or['id_order_return'], $order);
         foreach ($order_return_products as $key => $orp) {
             $products[$key]['product_quantity'] -= (int) $orp['product_quantity'];
         }
     }
     /* Quantity check */
     if ($order_detail_list) {
         foreach (array_keys($order_detail_list) as $key) {
             if ($qty = (int) $product_qty_list[$key]) {
                 if ($products[$key]['product_quantity'] - $qty < 0) {
                     return false;
                 }
             }
         }
     }
     /* Customization quantity check */
     if ($customization_ids) {
         $ordered_customizations = Customization::getOrderedCustomizations((int) $order->id_cart);
         foreach ($customization_ids as $customizations) {
             foreach ($customizations as $customization_id) {
                 $customization_id = (int) $customization_id;
                 if (!isset($ordered_customizations[$customization_id])) {
                     return false;
                 }
                 $quantity = isset($customization_qty_input[$customization_id]) ? (int) $customization_qty_input[$customization_id] : 0;
                 if ((int) $ordered_customizations[$customization_id]['quantity'] - $quantity < 0) {
                     return false;
                 }
             }
         }
     }
     return true;
 }
コード例 #2
0
ファイル: OrderReturn.php プロジェクト: Bruno-2M/prestashop
 public function checkEnoughProduct($orderDetailList, $productQtyList, $customizationIds, $customizationQtyInput)
 {
     $order = new Order(intval($this->id_order));
     if (!Validate::isLoadedObject($order)) {
         die(Tools::displayError());
     }
     $products = $order->getProducts();
     /* Products already returned */
     $order_return = self::getOrdersReturn($order->id_customer, $order->id, true);
     foreach ($order_return as $or) {
         $order_return_products = self::getOrdersReturnProducts($or['id_order_return'], $order);
         foreach ($order_return_products as $key => $orp) {
             $products[$key]['product_quantity'] -= intval($orp['product_quantity']);
         }
     }
     /* Quantity check */
     if ($orderDetailList) {
         foreach ($orderDetailList as $key => $orderDetail) {
             if ($qty = intval($productQtyList[$key])) {
                 if ($products[$key]['product_quantity'] - $qty < 0) {
                     return false;
                 }
             }
         }
     }
     /* Customization quantity check */
     if ($customizationIds) {
         $orderedCustomizations = Customization::getOrderedCustomizations(intval($order->id_cart));
         foreach ($customizationIds as $productId => $customizations) {
             foreach ($customizations as $customizationId) {
                 $customizationId = intval($customizationId);
                 if (!isset($orderedCustomizations[$customizationId])) {
                     return false;
                 }
                 $quantity = (isset($returnedCustomizations[$customizationId]) ? $returnedCustomizations[$customizationId]['product_quantity'] : 0) + (isset($customizationQtyInput[$customizationId]) ? intval($customizationQtyInput[$customizationId]) : 0);
                 if (intval($orderedCustomizations[$customizationId]['quantity']) - $quantity < 0) {
                     return false;
                 }
             }
         }
     }
     return true;
 }