/**
  * 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();
     }
 }
            $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");
        $order->store();
    }
    $_POST["order_id"] = $order->_id;
}
$do->doIt();