コード例 #1
0
 /**
  * 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;
     }
 }