<?php /** * $Id$ * * @package Mediboard * @subpackage Stock * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkRead(); $item_id = CValue::get('order_item_id'); // Loads the expected Order Item $item = new CProductOrderItem(); if ($item->load($item_id)) { $item->loadRefs(); $item->_ref_reference->loadRefsFwd(); } $item->_quantity_received = $item->quantity_received; // Smarty template $smarty = new CSmartyDP(); $smarty->assign('curr_item', $item); $smarty->assign('order', $item->_ref_order); $smarty->display('inc_order_item.tpl');
/** * Load order items * * @param object $reception reception * * @return CProductOrderItem[] */ function loadRefsaddItems() { $_reception = new CProductReception(); $where = array(); $where["reference"] = "LIKE '{$this->order_number}-%'"; $receptions = $_reception->loadIds($where); $where = array(); $where[] = "product_order_item_reception.reception_id " . CSQLDataSource::prepareIn(array_values($receptions)) . " OR product_order_item.order_id = '{$this->_id}'"; $ljoin = array(); $ljoin["product_order_item_reception"] = "product_order_item_reception.order_item_id = product_order_item.order_item_id"; $order_item = new CProductOrderItem(); /* @var CProductOrderItem[] $order_items*/ $order_items = $order_item->loadList($where, "order_item_id", null, null, $ljoin); foreach ($order_items as $_order) { if (!$_order->order_id) { $_order->quantity = 0; } $_order->updatePriceTVA(); } return $this->_ref_order_items_add = $order_items; }
/** * Get or count items in pending orders * * @param bool $count Count instead of load * * @return CProductOrderItem[]|int[] */ function getPendingOrderItems($count = true) { $leftjoin = array(); $leftjoin['product_order'] = 'product_order.order_id = product_order_item.order_id'; $leftjoin['product_reference'] = 'product_reference.reference_id = product_order_item.reference_id'; $leftjoin['product'] = 'product.product_id = product_reference.product_id'; $where = array("product.product_id" => "= '{$this->_id}'", "product_order.cancelled" => '= 0', "product_order.deleted" => '= 0', "product_order.date_ordered" => 'IS NOT NULL', "product_order.received" => "= '0'", "product_order_item.renewal" => "= '1'"); /** @var CProductOrderItem[] $list */ $item = new CProductOrderItem(); if ($count) { $list = $item->countList($where, null, $leftjoin); } else { $list = $item->loadList($where, "date_ordered ASC", null, "product_order_item.order_item_id", $leftjoin); } foreach ($list as $_id => $_item) { if ($_item->isReceived()) { unset($list[$_id]); } } $this->_in_order = $list; if ($list) { foreach ($this->_in_order as $_item) { $_item->loadOrder(); } } return $this->_in_order; }
$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); $smarty->assign('changes_struct', $changes_struct); $smarty->assign('references', $references); $smarty->assign('references_cahpp', $references_cahpp); $smarty->assign('total_order_items', $total_order_items); $smarty->assign('ratio', $ratio); $smarty->display('vw_reference_price_changes.tpl');
<?php /** * $Id$ * * @package Mediboard * @subpackage Stock * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkRead(); $order_item_id = CValue::get('order_item_id'); $order_item = new CProductOrderItem(); $order_item->load($order_item_id); // Smarty template $smarty = new CSmartyDP(); $smarty->assign('order_item', $order_item); $smarty->display('inc_edit_order_item_unit_price.tpl');
/** * @see parent::store() */ function store() { $this->completeField("reception_id"); $is_new = !$this->_id; if ($is_new && $this->cancelled === null) { $this->cancelled = 0; } if ($is_new) { $this->loadRefOrderItem(); $this->_ref_order_item->loadOrder(); } if ($is_new && !$this->reception_id) { $order = $this->_ref_order_item->_ref_order; $reception = new CProductReception(); $reception->date = CMbDT::dateTime(); $reception->societe_id = $order->societe_id; $reception->group_id = CProductStockGroup::getHostGroup(); // Recherche de receptions ayant un numero de reception similaire pour gerer l'increment if ($order->order_number) { $where = array("reference" => "LIKE '{$order->order_number}%'"); $number = $reception->countList($where) + 1; $reception->reference = "{$order->order_number}-{$number}"; } if ($msg = $reception->store()) { return $msg; } $this->reception_id = $reception->_id; } if ($is_new) { $this->_ref_order_item->loadRefsFwd(); $this->_ref_order_item->_ref_reference->loadRefsFwd(); $this->_ref_order_item->_ref_reference->_ref_product->loadRefStock(); $product =& $this->_ref_order_item->_ref_reference->_ref_product; $product->updateFormFields(); if ($product->loadRefStock()) { $stock = $product->_ref_stock_group; $stock->quantity += $this->quantity; } else { $qty = $this->quantity; $stock = new CProductStockGroup(); $stock->product_id = $product->_id; $stock->group_id = CProductStockGroup::getHostGroup(); $stock->quantity = $qty; $stock->order_threshold_min = $qty; CAppUI::setMsg("Un nouveau stock a été créé", UI_MSG_OK); //CAppUI::setMsg("Un nouveau stock pour [%s] a été créé", UI_MSG_OK, $product->_view); } if ($msg = $stock->store()) { return $msg; } } if ($msg = parent::store()) { return $msg; } // If the order is received, we set the flag if ($is_new) { $order = $this->_ref_order_item->_ref_order; if (!$order->received) { $count_renewed = $order->countRenewedItems(); $count_received = $order->countReceivedItems() - (count($order->_ref_order_items) - $count_renewed); if ($count_renewed && $count_received >= $count_renewed) { $order->received = 1; $order->store(); } } } return null; }
* @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkEdit(); $reference_id = CValue::getOrSession('reference_id'); $societe_id = CValue::getOrSession('societe_id'); $category_id = CValue::getOrSession('category_id'); $product_id = CValue::getOrSession('product_id'); $keywords = CValue::getOrSession('keywords'); $letter = CValue::getOrSession('letter', "%"); $show_all = CValue::getOrSession('show_all'); $filter = new CProduct(); $filter->societe_id = $societe_id; $filter->category_id = $category_id; CProductOrderItem::$_load_lite = true; // Loads the expected Reference $reference = new CProductReference(); // If a reference ID has been provided, // we load it and its associated product if ($reference->load($reference_id)) { $reference->loadRefsFwd(); $reference->_ref_product->loadRefsFwd(); $reference->loadRefsNotes(); } else { if ($product_id) { $reference->product_id = $product_id; $product = new CProduct(); $product->load($product_id); $reference->_ref_product = $product; } else {
/** * @see parent::store() */ function store() { $this->completeField("order_id", "reference_id", "renewal", "septic"); if (!$this->_id) { if ($this->renewal === null) { $this->renewal = "1"; } if ($this->septic === null) { $this->septic = "0"; } } if ($this->order_id && $this->reference_id && !$this->_id) { $this->loadRefsFwd(); $where = array('order_id' => "= '{$this->order_id}'", 'reference_id' => "= '{$this->reference_id}'", 'renewal' => "= '{$this->renewal}'", 'septic' => "= '{$this->septic}'"); if ($this->lot_id) { $where['lot_id'] = "= '{$this->lot_id}'"; } $duplicateKey = new CProductOrderItem(); if ($duplicateKey->loadObject($where)) { $duplicateKey->loadRefsFwd(); $this->_id = $duplicateKey->_id; $this->quantity += $duplicateKey->quantity; $this->unit_price = $duplicateKey->unit_price; $this->tva = $duplicateKey->tva; } else { $this->unit_price = $this->_ref_reference->price; $this->tva = $this->_ref_reference->tva; } } if ($this->_id && $this->_update_reference) { $ref = $this->loadReference(); $ref->price = $this->unit_price; if ($msg = $ref->store()) { CAppUI::setMsg($msg, UI_MSG_WARNING); } else { CAppUI::setMsg('Prix de la référence mis à jour', UI_MSG_OK); } $this->_update_reference = null; } /*if (!$this->_id && ($stock = $this->getStock())) { $stock->loadRefOrders(); if ($stock->_zone_future > 2) { CAppUI::setMsg("Attention : le stock optimum risque d'être dépassé", UI_MSG_WARNING); } }*/ return parent::store(); }
// If it is a societe id if (!is_numeric($reference_id)) { list($societe_id, $product_id) = explode("-", $reference_id); $societe = new CSociete(); $societe->load($societe_id); $product = new CProduct(); $product->load($product_id); $reference = new CProductReference(); $reference->product_id = $product->_id; $reference->societe_id = $societe->_id; $reference->quantity = 1; $reference->price = 0; $reference->store(); } else { // If it is a reference id $reference = new CProductReference(); $reference->load($reference_id); } if (!$reference->_id) { CAppUI::setMsg("Impossible de créer l'article, la réference n'existe pas", UI_MSG_ERROR); } $order_item = new CProductOrderItem(); $order_item->reference_id = $reference->_id; $order_item->quantity = $quantity; $order_item->unit_price = $reference->price; if ($msg = $order_item->store()) { CAppUI::setMsg($msg); } $_POST["order_item_id"] = $order_item->_id; } $do->doIt();
CApp::setTimeLimit(1200); function append_user_logs(&$all_logs, $logs) { foreach ($logs as $_log) { $all_logs[$_log->date][$_log->_id] = $_log; } } //CSQLDataSource::$trace = true; // --------------------- CProductOrderItemReception::$_load_lite = true; $oir = new CProductOrderItemReception(); $oir_where = array("product_order_item_reception.units_fixed" => "= '0'"); $oir_ljoin = array("product_order_item" => "product_order_item_reception.order_item_id = product_order_item.order_item_id", "product_reference" => "product_order_item.reference_id = product_reference.reference_id", "product" => "product_reference.product_id = product.product_id"); // --------------------- CProductOrderItem::$_load_lite = true; $oi = new CProductOrderItem(); $oi_where = array("product_order_item.units_fixed" => "= '0'"); $oi_ljoin = array("product_reference" => "product_order_item.reference_id = product_reference.reference_id", "product" => "product_reference.product_id = product.product_id", "user_log" => "product_order_item.order_item_id = user_log.object_id AND user_log.object_class = 'CProductOrderItem'"); // --------------------- CProductReference::$_load_lite = true; $ref = new CProductReference(); $ref_where = array("product_reference.units_fixed = '0'"); // --------------------- $references = $ref->loadList($ref_where, null, 50); CAppUI::stepAjax("Correction de " . count($references) . " références"); // Chargement des CProductReference foreach ($references as $_reference) { $_product = $_reference->loadRefProduct(); //mbTrace($_product->_view, " ######################## "); $old_date = CMbDT::dateTime(); $quantity_product = $_product->quantity;