/** * Load orders * * @return void */ function loadRefOrders() { // Verifies wether there are pending orders for this stock $where = array(); $where['date_ordered'] = 'IS NOT NULL'; $where[] = 'deleted IS NULL OR deleted = 0'; $orderby = 'date_ordered ASC'; $order = new CProductOrder(); /** @var CProductOrder[] $list_orders */ $list_orders = $order->loadList($where, $orderby); $this->_orders = array(); foreach ($list_orders as $order) { if (!$order->_received && !$order->cancelled) { $done = false; foreach ($order->_ref_order_items as $item) { $item->loadRefsFwd(); $item->_ref_reference->loadRefsFwd(); $item->_ref_order->loadRefsFwd(); if ($item->_ref_reference->_ref_product && $this->_ref_product && $item->_ref_reference->_ref_product->_id == $this->_ref_product->_id) { $this->_ordered_count += $item->quantity; $this->_ordered_last = max(array($item->_ref_order->date_ordered, $this->_ordered_last)); if (!$done) { $this->_orders[] = $order; $done = true; } } } } } $future_quantity = $this->quantity + $this->_ordered_count; if ($future_quantity <= $this->order_threshold_critical) { $this->_zone_future = 0; } elseif ($future_quantity <= $this->order_threshold_min) { $this->_zone_future = 1; } elseif ($future_quantity <= $this->order_threshold_optimum) { $this->_zone_future = 2; } else { $this->_zone_future = 3; } }