diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 52071b672fe..4859412f692 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -302,6 +302,348 @@ if (empty($reshook)) {
$uploaddir = $conf->commande->multidir_output[$conf->entity];
$triggersendname = 'ORDER_SENTBYMAIL';
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
+
+ if ($massaction == 'confirm_createbills') { // Create bills from orders.
+ $orders = GETPOST('toselect', 'array');
+ $createbills_onebythird = GETPOST('createbills_onebythird', 'int');
+ $validate_invoices = GETPOST('validate_invoices', 'int');
+
+ $errors = array();
+
+ $TFact = array();
+ $TFactThird = array();
+ $TFactThirdNbLines = array();
+
+ $nb_bills_created = 0;
+ $lastid= 0;
+ $lastref = '';
+
+ $db->begin();
+
+ foreach ($orders as $id_order) {
+ $cmd = new Commande($db);
+ if ($cmd->fetch($id_order) <= 0) {
+ continue;
+ }
+ $cmd->fetch_thirdparty();
+
+ $objecttmp = new Facture($db);
+ if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
+ // If option "one bill per third" is set, and an invoice for this thirdparty was already created, we re-use it.
+ $objecttmp = $TFactThird[$cmd->socid];
+ } else {
+ // If we want one invoice per order or if there is no first invoice yet for this thirdparty.
+ $objecttmp->socid = $cmd->socid;
+ $objecttmp->thirdparty = $cmd->thirdparty;
+
+ $objecttmp->type = $objecttmp::TYPE_STANDARD;
+ $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id;
+ $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id;
+
+ $objecttmp->fk_project = $cmd->fk_project;
+ $objecttmp->multicurrency_code = $cmd->multicurrency_code;
+ if (empty($createbills_onebythird)) {
+ $objecttmp->ref_client = $cmd->ref_client;
+ }
+
+ $datefacture = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
+ if (empty($datefacture)) {
+ $datefacture = dol_now();
+ }
+
+ $objecttmp->date = $datefacture;
+ $objecttmp->origin = 'commande';
+ $objecttmp->origin_id = $id_order;
+
+ $objecttmp->array_options = $cmd->array_options; // Copy extrafields
+
+ $res = $objecttmp->create($user);
+
+ if ($res > 0) {
+ $nb_bills_created++;
+ $lastref = $objecttmp->ref;
+ $lastid = $objecttmp->id;
+
+ $TFactThird[$cmd->socid] = $objecttmp;
+ $TFactThirdNbLines[$cmd->socid] = 0; //init nblines to have lines ordered by expedition and rang
+ } else {
+ $langs->load("errors");
+ $errors[] = $cmd->ref.' : '.$langs->trans($objecttmp->error);
+ $error++;
+ }
+ }
+
+ if ($objecttmp->id > 0) {
+ $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order);
+
+ if ($res == 0) {
+ $errors[] = $objecttmp->error;
+ $error++;
+ }
+
+ if (!$error) {
+ $lines = $cmd->lines;
+ if (empty($lines) && method_exists($cmd, 'fetch_lines')) {
+ $cmd->fetch_lines();
+ $lines = $cmd->lines;
+ }
+
+ $fk_parent_line = 0;
+ $num = count($lines);
+
+ for ($i = 0; $i < $num; $i++) {
+ $desc = ($lines[$i]->desc ? $lines[$i]->desc : '');
+ // If we build one invoice for several orders, we must put the ref of order on the invoice line
+ if (!empty($createbills_onebythird)) {
+ $desc = dol_concatdesc($desc, $langs->trans("Order").' '.$cmd->ref.' - '.dol_print_date($cmd->date, 'day'));
+ }
+
+ if ($lines[$i]->subprice < 0) {
+ // Negative line, we create a discount line
+ $discount = new DiscountAbsolute($db);
+ $discount->fk_soc = $objecttmp->socid;
+ $discount->amount_ht = abs($lines[$i]->total_ht);
+ $discount->amount_tva = abs($lines[$i]->total_tva);
+ $discount->amount_ttc = abs($lines[$i]->total_ttc);
+ $discount->tva_tx = $lines[$i]->tva_tx;
+ $discount->fk_user = $user->id;
+ $discount->description = $desc;
+ $discountid = $discount->create($user);
+ if ($discountid > 0) {
+ $result = $objecttmp->insert_discount($discountid);
+ //$result=$discount->link_to_invoice($lineid,$id);
+ } else {
+ setEventMessages($discount->error, $discount->errors, 'errors');
+ $error++;
+ break;
+ }
+ } else {
+ // Positive line
+ $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
+ // Date start
+ $date_start = false;
+ if ($lines[$i]->date_debut_prevue) {
+ $date_start = $lines[$i]->date_debut_prevue;
+ }
+ if ($lines[$i]->date_debut_reel) {
+ $date_start = $lines[$i]->date_debut_reel;
+ }
+ if ($lines[$i]->date_start) {
+ $date_start = $lines[$i]->date_start;
+ }
+ //Date end
+ $date_end = false;
+ if ($lines[$i]->date_fin_prevue) {
+ $date_end = $lines[$i]->date_fin_prevue;
+ }
+ if ($lines[$i]->date_fin_reel) {
+ $date_end = $lines[$i]->date_fin_reel;
+ }
+ if ($lines[$i]->date_end) {
+ $date_end = $lines[$i]->date_end;
+ }
+ // Reset fk_parent_line for no child products and special product
+ if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
+ $fk_parent_line = 0;
+ }
+
+ // Extrafields
+ if (method_exists($lines[$i], 'fetch_optionals')) {
+ $lines[$i]->fetch_optionals();
+ $array_options = $lines[$i]->array_options;
+ }
+
+ $objecttmp->context['createfromclone'];
+
+ $rang = $lines[$i]->rang;
+ //there may already be rows from previous orders
+ if (!empty($createbills_onebythird))
+ $rang = $TFactThirdNbLines[$cmd->socid];
+
+ $result = $objecttmp->addline(
+ $desc,
+ $lines[$i]->subprice,
+ $lines[$i]->qty,
+ $lines[$i]->tva_tx,
+ $lines[$i]->localtax1_tx,
+ $lines[$i]->localtax2_tx,
+ $lines[$i]->fk_product,
+ $lines[$i]->remise_percent,
+ $date_start,
+ $date_end,
+ 0,
+ $lines[$i]->info_bits,
+ $lines[$i]->fk_remise_except,
+ 'HT',
+ 0,
+ $product_type,
+ $rang,
+ $lines[$i]->special_code,
+ $objecttmp->origin,
+ $lines[$i]->rowid,
+ $fk_parent_line,
+ $lines[$i]->fk_fournprice,
+ $lines[$i]->pa_ht,
+ $lines[$i]->label,
+ $array_options,
+ 100,
+ 0,
+ $lines[$i]->fk_unit
+ );
+ if ($result > 0) {
+ $lineid = $result;
+ if (!empty($createbills_onebythird)) //increment rang to keep order
+ $TFactThirdNbLines[$rcp->socid]++;
+ } else {
+ $lineid = 0;
+ $error++;
+ break;
+ }
+ // Defined the new fk_parent_line
+ if ($result > 0 && $lines[$i]->product_type == 9) {
+ $fk_parent_line = $result;
+ }
+ }
+ }
+ }
+ }
+
+ //$cmd->classifyBilled($user); // Disabled. This behavior must be set or not using the workflow module.
+
+ if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
+ $TFactThird[$cmd->socid] = $objecttmp;
+ } else {
+ $TFact[$objecttmp->id] = $objecttmp;
+ }
+ }
+
+ // Build doc with all invoices
+ $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
+ $toselect = array();
+
+ if (!$error && $validate_invoices) {
+ $massaction = $action = 'builddoc';
+
+ foreach ($TAllFact as &$objecttmp) {
+ $result = $objecttmp->validate($user);
+ if ($result <= 0) {
+ $error++;
+ setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
+ break;
+ }
+
+ $id = $objecttmp->id; // For builddoc action
+
+ // Builddoc
+ $donotredirect = 1;
+ $upload_dir = $conf->facture->dir_output;
+ $permissiontoadd = $user->rights->facture->creer;
+
+ // Call action to build doc
+ $savobject = $object;
+ $object = $objecttmp;
+ include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
+ $object = $savobject;
+ }
+
+ $massaction = $action = 'confirm_createbills';
+ }
+
+ if (!$error) {
+ $db->commit();
+
+ if ($nb_bills_created == 1) {
+ $texttoshow = $langs->trans('BillXCreated', '{s1}');
+ $texttoshow = str_replace('{s1}', ''.$lastref.'', $texttoshow);
+ setEventMessages($texttoshow, null, 'mesgs');
+ } else {
+ setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs');
+ }
+
+ // Make a redirect to avoid to bill twice if we make a refresh or back
+ $param = '';
+ if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
+ $param .= '&contextpage='.urlencode($contextpage);
+ }
+ if ($limit > 0 && $limit != $conf->liste_limit) {
+ $param .= '&limit='.urlencode($limit);
+ }
+ if ($sall) {
+ $param .= '&sall='.urlencode($sall);
+ }
+ if ($socid > 0) {
+ $param .= '&socid='.urlencode($socid);
+ }
+ if ($search_status != '') {
+ $param .= '&search_status='.urlencode($search_status);
+ }
+ if ($search_orderday) {
+ $param .= '&search_orderday='.urlencode($search_orderday);
+ }
+ if ($search_ordermonth) {
+ $param .= '&search_ordermonth='.urlencode($search_ordermonth);
+ }
+ if ($search_orderyear) {
+ $param .= '&search_orderyear='.urlencode($search_orderyear);
+ }
+ if ($search_deliveryday) {
+ $param .= '&search_deliveryday='.urlencode($search_deliveryday);
+ }
+ if ($search_deliverymonth) {
+ $param .= '&search_deliverymonth='.urlencode($search_deliverymonth);
+ }
+ if ($search_deliveryyear) {
+ $param .= '&search_deliveryyear='.urlencode($search_deliveryyear);
+ }
+ if ($search_ref) {
+ $param .= '&search_ref='.urlencode($search_ref);
+ }
+ if ($search_company) {
+ $param .= '&search_company='.urlencode($search_company);
+ }
+ if ($search_ref_customer) {
+ $param .= '&search_ref_customer='.urlencode($search_ref_customer);
+ }
+ if ($search_user > 0) {
+ $param .= '&search_user='.urlencode($search_user);
+ }
+ if ($search_sale > 0) {
+ $param .= '&search_sale='.urlencode($search_sale);
+ }
+ if ($search_total_ht != '') {
+ $param .= '&search_total_ht='.urlencode($search_total_ht);
+ }
+ if ($search_total_vat != '') {
+ $param .= '&search_total_vat='.urlencode($search_total_vat);
+ }
+ if ($search_total_ttc != '') {
+ $param .= '&search_total_ttc='.urlencode($search_total_ttc);
+ }
+ if ($search_project_ref >= 0) {
+ $param .= "&search_project_ref=".urlencode($search_project_ref);
+ }
+ if ($show_files) {
+ $param .= '&show_files='.urlencode($show_files);
+ }
+ if ($optioncss != '') {
+ $param .= '&optioncss='.urlencode($optioncss);
+ }
+ if ($billed != '') {
+ $param .= '&billed='.urlencode($billed);
+ }
+
+ header("Location: ".$_SERVER['PHP_SELF'].'?'.$param);
+ exit;
+ } else {
+ $db->rollback();
+
+ $action = 'create';
+ $_GET["origin"] = $_POST["origin"];
+ $_GET["originid"] = $_POST["originid"];
+ setEventMessages("Error", null, 'errors');
+ $error++;
+ }
+ }
}
if ($action == 'validate' && $permissiontoadd) {
if (GETPOST('confirm') == 'yes') {
diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php
index 5ec011f5017..c0a35947b9d 100644
--- a/htdocs/core/actions_massactions.inc.php
+++ b/htdocs/core/actions_massactions.inc.php
@@ -625,349 +625,6 @@ if (!$error && $massaction == 'confirm_presend') {
}
}
-// TODO Move this action into commande/list.php if called only by this page.
-if ($massaction == 'confirm_createbills') { // Create bills from orders.
- $orders = GETPOST('toselect', 'array');
- $createbills_onebythird = GETPOST('createbills_onebythird', 'int');
- $validate_invoices = GETPOST('validate_invoices', 'int');
-
- $errors = array();
-
- $TFact = array();
- $TFactThird = array();
- $TFactThirdNbLines = array();
-
- $nb_bills_created = 0;
- $lastid= 0;
- $lastref = '';
-
- $db->begin();
-
- foreach ($orders as $id_order) {
- $cmd = new Commande($db);
- if ($cmd->fetch($id_order) <= 0) {
- continue;
- }
- $cmd->fetch_thirdparty();
-
- $objecttmp = new Facture($db);
- if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
- // If option "one bill per third" is set, and an invoice for this thirdparty was already created, we re-use it.
- $objecttmp = $TFactThird[$cmd->socid];
- } else {
- // If we want one invoice per order or if there is no first invoice yet for this thirdparty.
- $objecttmp->socid = $cmd->socid;
- $objecttmp->thirdparty = $cmd->thirdparty;
-
- $objecttmp->type = $objecttmp::TYPE_STANDARD;
- $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id;
- $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id;
-
- $objecttmp->fk_project = $cmd->fk_project;
- $objecttmp->multicurrency_code = $cmd->multicurrency_code;
- if (empty($createbills_onebythird)) {
- $objecttmp->ref_client = $cmd->ref_client;
- }
-
- $datefacture = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
- if (empty($datefacture)) {
- $datefacture = dol_now();
- }
-
- $objecttmp->date = $datefacture;
- $objecttmp->origin = 'commande';
- $objecttmp->origin_id = $id_order;
-
- $objecttmp->array_options = $cmd->array_options; // Copy extrafields
-
- $res = $objecttmp->create($user);
-
- if ($res > 0) {
- $nb_bills_created++;
- $lastref = $objecttmp->ref;
- $lastid = $objecttmp->id;
-
- $TFactThird[$cmd->socid] = $objecttmp;
- $TFactThirdNbLines[$cmd->socid] = 0; //init nblines to have lines ordered by expedition and rang
- } else {
- $langs->load("errors");
- $errors[] = $cmd->ref.' : '.$langs->trans($objecttmp->error);
- $error++;
- }
- }
-
- if ($objecttmp->id > 0) {
- $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order);
-
- if ($res == 0) {
- $errors[] = $objecttmp->error;
- $error++;
- }
-
- if (!$error) {
- $lines = $cmd->lines;
- if (empty($lines) && method_exists($cmd, 'fetch_lines')) {
- $cmd->fetch_lines();
- $lines = $cmd->lines;
- }
-
- $fk_parent_line = 0;
- $num = count($lines);
-
- for ($i = 0; $i < $num; $i++) {
- $desc = ($lines[$i]->desc ? $lines[$i]->desc : '');
- // If we build one invoice for several orders, we must put the ref of order on the invoice line
- if (!empty($createbills_onebythird)) {
- $desc = dol_concatdesc($desc, $langs->trans("Order").' '.$cmd->ref.' - '.dol_print_date($cmd->date, 'day'));
- }
-
- if ($lines[$i]->subprice < 0) {
- // Negative line, we create a discount line
- $discount = new DiscountAbsolute($db);
- $discount->fk_soc = $objecttmp->socid;
- $discount->amount_ht = abs($lines[$i]->total_ht);
- $discount->amount_tva = abs($lines[$i]->total_tva);
- $discount->amount_ttc = abs($lines[$i]->total_ttc);
- $discount->tva_tx = $lines[$i]->tva_tx;
- $discount->fk_user = $user->id;
- $discount->description = $desc;
- $discountid = $discount->create($user);
- if ($discountid > 0) {
- $result = $objecttmp->insert_discount($discountid);
- //$result=$discount->link_to_invoice($lineid,$id);
- } else {
- setEventMessages($discount->error, $discount->errors, 'errors');
- $error++;
- break;
- }
- } else {
- // Positive line
- $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
- // Date start
- $date_start = false;
- if ($lines[$i]->date_debut_prevue) {
- $date_start = $lines[$i]->date_debut_prevue;
- }
- if ($lines[$i]->date_debut_reel) {
- $date_start = $lines[$i]->date_debut_reel;
- }
- if ($lines[$i]->date_start) {
- $date_start = $lines[$i]->date_start;
- }
- //Date end
- $date_end = false;
- if ($lines[$i]->date_fin_prevue) {
- $date_end = $lines[$i]->date_fin_prevue;
- }
- if ($lines[$i]->date_fin_reel) {
- $date_end = $lines[$i]->date_fin_reel;
- }
- if ($lines[$i]->date_end) {
- $date_end = $lines[$i]->date_end;
- }
- // Reset fk_parent_line for no child products and special product
- if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
- $fk_parent_line = 0;
- }
-
- // Extrafields
- if (method_exists($lines[$i], 'fetch_optionals')) {
- $lines[$i]->fetch_optionals();
- $array_options = $lines[$i]->array_options;
- }
-
- $objecttmp->context['createfromclone'];
-
- $rang = $lines[$i]->rang;
- //there may already be rows from previous orders
- if (!empty($createbills_onebythird))
- $rang = $TFactThirdNbLines[$cmd->socid];
-
- $result = $objecttmp->addline(
- $desc,
- $lines[$i]->subprice,
- $lines[$i]->qty,
- $lines[$i]->tva_tx,
- $lines[$i]->localtax1_tx,
- $lines[$i]->localtax2_tx,
- $lines[$i]->fk_product,
- $lines[$i]->remise_percent,
- $date_start,
- $date_end,
- 0,
- $lines[$i]->info_bits,
- $lines[$i]->fk_remise_except,
- 'HT',
- 0,
- $product_type,
- $rang,
- $lines[$i]->special_code,
- $objecttmp->origin,
- $lines[$i]->rowid,
- $fk_parent_line,
- $lines[$i]->fk_fournprice,
- $lines[$i]->pa_ht,
- $lines[$i]->label,
- $array_options,
- 100,
- 0,
- $lines[$i]->fk_unit
- );
- if ($result > 0) {
- $lineid = $result;
- if (!empty($createbills_onebythird)) //increment rang to keep order
- $TFactThirdNbLines[$rcp->socid]++;
- } else {
- $lineid = 0;
- $error++;
- break;
- }
- // Defined the new fk_parent_line
- if ($result > 0 && $lines[$i]->product_type == 9) {
- $fk_parent_line = $result;
- }
- }
- }
- }
- }
-
- //$cmd->classifyBilled($user); // Disabled. This behavior must be set or not using the workflow module.
-
- if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
- $TFactThird[$cmd->socid] = $objecttmp;
- } else {
- $TFact[$objecttmp->id] = $objecttmp;
- }
- }
-
- // Build doc with all invoices
- $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
- $toselect = array();
-
- if (!$error && $validate_invoices) {
- $massaction = $action = 'builddoc';
-
- foreach ($TAllFact as &$objecttmp) {
- $result = $objecttmp->validate($user);
- if ($result <= 0) {
- $error++;
- setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
- break;
- }
-
- $id = $objecttmp->id; // For builddoc action
-
- // Builddoc
- $donotredirect = 1;
- $upload_dir = $conf->facture->dir_output;
- $permissiontoadd = $user->rights->facture->creer;
-
- // Call action to build doc
- $savobject = $object;
- $object = $objecttmp;
- include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
- $object = $savobject;
- }
-
- $massaction = $action = 'confirm_createbills';
- }
-
- if (!$error) {
- $db->commit();
-
- if ($nb_bills_created == 1) {
- $texttoshow = $langs->trans('BillXCreated', '{s1}');
- $texttoshow = str_replace('{s1}', ''.$lastref.'', $texttoshow);
- setEventMessages($texttoshow, null, 'mesgs');
- } else {
- setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs');
- }
-
- // Make a redirect to avoid to bill twice if we make a refresh or back
- $param = '';
- if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
- $param .= '&contextpage='.urlencode($contextpage);
- }
- if ($limit > 0 && $limit != $conf->liste_limit) {
- $param .= '&limit='.urlencode($limit);
- }
- if ($sall) {
- $param .= '&sall='.urlencode($sall);
- }
- if ($socid > 0) {
- $param .= '&socid='.urlencode($socid);
- }
- if ($search_status != '') {
- $param .= '&search_status='.urlencode($search_status);
- }
- if ($search_orderday) {
- $param .= '&search_orderday='.urlencode($search_orderday);
- }
- if ($search_ordermonth) {
- $param .= '&search_ordermonth='.urlencode($search_ordermonth);
- }
- if ($search_orderyear) {
- $param .= '&search_orderyear='.urlencode($search_orderyear);
- }
- if ($search_deliveryday) {
- $param .= '&search_deliveryday='.urlencode($search_deliveryday);
- }
- if ($search_deliverymonth) {
- $param .= '&search_deliverymonth='.urlencode($search_deliverymonth);
- }
- if ($search_deliveryyear) {
- $param .= '&search_deliveryyear='.urlencode($search_deliveryyear);
- }
- if ($search_ref) {
- $param .= '&search_ref='.urlencode($search_ref);
- }
- if ($search_company) {
- $param .= '&search_company='.urlencode($search_company);
- }
- if ($search_ref_customer) {
- $param .= '&search_ref_customer='.urlencode($search_ref_customer);
- }
- if ($search_user > 0) {
- $param .= '&search_user='.urlencode($search_user);
- }
- if ($search_sale > 0) {
- $param .= '&search_sale='.urlencode($search_sale);
- }
- if ($search_total_ht != '') {
- $param .= '&search_total_ht='.urlencode($search_total_ht);
- }
- if ($search_total_vat != '') {
- $param .= '&search_total_vat='.urlencode($search_total_vat);
- }
- if ($search_total_ttc != '') {
- $param .= '&search_total_ttc='.urlencode($search_total_ttc);
- }
- if ($search_project_ref >= 0) {
- $param .= "&search_project_ref=".urlencode($search_project_ref);
- }
- if ($show_files) {
- $param .= '&show_files='.urlencode($show_files);
- }
- if ($optioncss != '') {
- $param .= '&optioncss='.urlencode($optioncss);
- }
- if ($billed != '') {
- $param .= '&billed='.urlencode($billed);
- }
-
- header("Location: ".$_SERVER['PHP_SELF'].'?'.$param);
- exit;
- } else {
- $db->rollback();
-
- $action = 'create';
- $_GET["origin"] = $_POST["origin"];
- $_GET["originid"] = $_POST["originid"];
- setEventMessages("Error", null, 'errors');
- $error++;
- }
-}
-
if (!$error && $massaction == 'cancelorders') {
$db->begin();