示例#1
0
 /**
  * Fills a new order with the same articles
  *
  * @return void
  */
 function redo()
 {
     $this->load();
     $order = new CProductOrder();
     $order->societe_id = $this->societe_id;
     $order->group_id = $this->group_id;
     $order->locked = 0;
     $order->cancelled = 0;
     $order->order_number = uniqid(rand());
     $order->store();
     $order->order_number = $order->getUniqueNumber();
     $order->store();
     $this->loadRefsOrderItems();
     foreach ($this->_ref_order_items as $item) {
         $item->loadRefs();
         $new_item = new CProductOrderItem();
         $new_item->reference_id = $item->reference_id;
         $new_item->order_id = $order->order_id;
         $new_item->quantity = $item->quantity;
         $new_item->unit_price = $item->_ref_reference->price;
         $new_item->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();