$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);
Esempio n. 2
0
 }
 // 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");