$sql->addLJoin(array("product_reference" => "product_reference.reference_id = product_order_item.reference_id", "product_order" => "product_order.order_id = product_order_item.order_id")); $sql->addWhere("\r\n product_order.cancelled = '0' \r\n AND (product_reference.cancelled = '0' OR product_reference.cancelled IS NULL)\r\n AND product_reference.price != product_order_item.unit_price\r\n AND (\r\n product_order_item.unit_price > product_reference.price*{$ratio} OR \r\n product_reference.price > product_order_item.unit_price*{$ratio}\r\n )"); $sql->addOrder("product_reference.code"); $changes = $this->_spec->ds->loadList($sql->makeSelect()); $changes_struct = array(); $references = array(); $references_cahpp = array(); foreach ($changes as $_change) { if (!isset($references[$_change["reference_id"]])) { $_reference = new CProductReference(); $_reference->load($_change["reference_id"]); $references[$_reference->_id] = $_reference; $article = new CCAHPPArticle(); $where = array("reference_fournisseur" => $article->_spec->ds->prepare("=%", $_reference->supplier_code)); if (!$article->loadObject($where)) { $where = array("cip" => $article->_spec->ds->prepare("=%", $_reference->loadRefProduct()->code)); $article->loadObject($where); } $references_cahpp[$_reference->_id] = $article; } $_order_item = new CProductOrderItem(); $_order_item->load($_change["order_item_id"]); $_order_item->loadOrder(); $_change["order_item"] = $_order_item; $changes_struct[$_change["reference_id"]][] = $_change; } $order_item = new CProductOrderItem(); $total_order_items = $order_item->countList(); // Smarty template $smarty = new CSmartyDP(); $smarty->assign('changes', $changes);
} // If no order found if (count($orders) == 0) { if ($context_guid) { $context = CMbObject::loadFromGuid($context_guid); $order->setObject($context); $order->locked = 1; } $comments = CValue::read($_POST, "_comments"); $order->societe_id = $reference->societe_id; $order->group_id = CProductStockGroup::getHostGroup(); $order->comments = $comments; if (strpos(CProductOrder::$_return_form_label, $comments) === 0) { $order->locked = 1; } $product = $reference->loadRefProduct(); $count_dmi = $product->countBackRefs("dmis"); $order->_context_bl = $count_dmi > 0; $order->_septic = $septic; if ($msg = $order->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); } $order->order_number = $order->getUniqueNumber(); if ($msg = $order->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); } } else { $order = reset($orders); } if ($order->_id && !$order->bill_number) { $order->bill_number = CValue::post("_bill_number");