$leftjoin['product_order_item'] = 'product_order_item.reference_id = product_reference.reference_id'; // reference to order item $leftjoin['product_order'] = 'product_order.order_id = product_order_item.order_id'; // order item to order $where[] = 'product_order_item.order_item_id NOT IN ( SELECT product_order_item.order_item_id FROM product_order_item LEFT JOIN product_order_item_reception ON product_order_item_reception.order_item_id = product_order_item.order_item_id LEFT JOIN product_order ON product_order.order_id = product_order_item.order_id WHERE product_order.deleted = 0 AND product_order.cancelled = 0 HAVING SUM(product_order_item_reception.quantity) < product_order_item.quantity )'; } $pagination_size = CAppUI::conf("dPstock CProductStockGroup pagination_size"); $stock = new CProductStockGroup(); $list_stocks = $stock->loadList($where, 'product.name ASC', intval($start) . ",{$pagination_size}", "product_stock_group.stock_id", $leftjoin); foreach ($list_stocks as $_stock) { $_stock->_ref_product->getPendingOrderItems(false); } if (!$only_ordered_stocks) { $list_stocks_count = $stock->countList($where, null, $leftjoin); } else { $list_stocks_count = count($stock->loadList($where, null, null, "product_stock_group.stock_id", $leftjoin)); } // Smarty template $smarty = new CSmartyDP(); $smarty->assign('stock', $stock); $smarty->assign('stock_id', $stock_id); $smarty->assign('list_stocks', $list_stocks); $smarty->assign('list_stocks_count', $list_stocks_count); $smarty->assign('start', $start); $smarty->display('inc_stocks_list.tpl');