Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

NEW! Complete Order Editing Tool!


jhilgeman

Recommended Posts

Or maybe change XMLHttpRequest to another ajax library.

For example - JsHttpRequest - http://dklab.ru/lib/JsHttpRequest/

Russian documentation (maybe use babelfish.altavista.com to translate) - http://dklab.ru/lib/JsHttpRequest/manual.html

Short english documentation - http://dklab.ru/lib/JsHttpRequest/protocol.html

 

But this way is too hard, i think.

 

On second thought, it too relies on iconv:

I will repeat again: if you want to use JsHttpRequest library with encodings that differ from windows-1251 and koi8-r (e.g. with UTF-8), you must have PHP extension iconv installed on the server. Most of popular hostings have that module, but if you will see that it's absent, it won't be very difficult for hosting to install that module.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Fatal error: Call to undefined function: tep_hide_session_id() in /***/admin/orders.php on line ***

 

Easiest was to get rid of the error which occurred by my editing the orders.php file (so it isn't limited to uploading the copy included in the package) was to DELETE both references to tep_hide_session_id in the material pasted into the file. And now, Perfection. Great editing tool.

Link to comment
Share on other sites

Or maybe change XMLHttpRequest to another ajax library.

For example - JsHttpRequest - http://dklab.ru/lib/JsHttpRequest/

Russian documentation (maybe use babelfish.altavista.com to translate) - http://dklab.ru/lib/JsHttpRequest/manual.html

Short english documentation - http://dklab.ru/lib/JsHttpRequest/protocol.html

 

But this way is too hard, i think.

 

That library is pretty easy to get up and running but the results for me were exactly the same as without it. It can only natively translate two characters sets; for the rest it supposedly relies on iconv. In my testing it worked exactly the same as the more conventional XMLHttpRequest.

 

iconv by itself, however, despite my earlier reservations, has real promise, and it's easy to implement as long as it's compiled on the server.

 

To check to see if it's on your server go to Admin->Tools->Server Info->near the top in the 'Configure Command' box, look for 'with iconv', and if you find it, then you have it.

 

If you're not sure, ask your webhost; it's a free add-on and from what I understand easy to compile. If you have PHP 5.x, then you have it already, no need to ask.

 

If you have it you can try this fix to alleviate the UTF-8 bug (strange characters appearing in comments, order totals, etc):

 

Find in admin/edit_orders_ajax.php

  if ($action == 'update_order_field') {
   tep_db_query("UPDATE " . TABLE_ORDERS . " SET " . $_GET['field'] . " = '" . tep_db_input(tep_db_prepare_input($_GET['new_value'])) . "' WHERE orders_id = '" . $_GET['oID'] . "'");

and change it to

  if ($action == 'update_order_field') {
   tep_db_query("UPDATE " . TABLE_ORDERS . " SET " . $_GET['field'] . " = '" . iconv('UTF-8', CHARSET . '//TRANSLIT', $_GET['new_value']) . "' WHERE orders_id = '" . $_GET['oID'] . "'");

 

Next find

	  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . " SET " . $_GET['field'] . " = '" . tep_db_input(tep_db_prepare_input($_GET['new_value'])) . "' WHERE orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");

and change it to

	  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . " SET " . $_GET['field'] . " = '" . iconv("UTF-8", CHARSET . '//TRANSLIT', $_GET['new_value']) . "' WHERE orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");

 

Next find

	  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " SET " . $_GET['field'] . " = '" . tep_db_input(tep_db_prepare_input($_GET['new_value'])) . "' WHERE orders_products_attributes_id = '" . $_GET['aid'] . "' AND orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");

and change it to

	  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " SET " . $_GET['field'] . " = '" . iconv("UTF-8", CHARSET . '//TRANSLIT', $_GET['new_value']) . "' WHERE orders_products_attributes_id = '" . $_GET['aid'] . "' AND orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");

 

Next find

	  tep_db_query("UPDATE " . TABLE_ORDERS_STATUS_HISTORY . " SET comments = '" . tep_db_input(tep_db_prepare_input($_GET['comment'])) . "' WHERE orders_status_history_id = '" . $_GET['cID'] . "' AND orders_id = '" . $_GET['oID'] . "'");

and change it to

	  tep_db_query("UPDATE " . TABLE_ORDERS_STATUS_HISTORY . " SET comments = '" . iconv('UTF-8', CHARSET . '//TRANSLIT', $_GET['comment']) . "' WHERE orders_status_history_id = '" . $_GET['cID'] . "' AND orders_id = '" . $_GET['oID'] . "'");

 

Next find

				$notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $_GET['comments']) . "\n\n";

and change it to

			   $notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, iconv("UTF-8", CHARSET . '//TRANSLIT', $_GET['comments'])) . "\n\n";

 

Next find

				'" . tep_db_input(tep_db_prepare_input($_GET['comments']))  . "')");

and change it to

				'" . iconv("UTF-8", CHARSET . '//TRANSLIT', $_GET['comments'])  . "')");

 

This seems to cover everything except the shipping title; I haven't gotten ahold of that one yet. Whoever tries this out, please post your results in this thread.

 

Thanks

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

An addendum to my last post, here's the possible fix for the shipping title- find in admin/edit_orders_ajax.php

'title' => $new_order_totals[$i]['title'],

and change it to

'title' => iconv('UTF-8', CHARSET . '//TRANSLIT', $new_order_totals[$i]['title']),

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

djmonkey1

 

Thanks!

And last advice.

 

Maybe use something like this (for users don't have iconv support on they servers):

if (function_exist('iconv')) {
....

Edited by VaM
Link to comment
Share on other sites

djmonkey1

 

That library is pretty easy to get up and running but the results for me were exactly the same as without it. It can only natively translate two characters sets; for the rest it supposedly relies on iconv. In my testing it worked exactly the same as the more conventional XMLHttpRequest.

 

JsHTTPRequest support all encodings and more crossbrowser than XMLHttpRequest.

To set encoding you can use:

	$JsHttpRequest->setEncoding(CHARSET);

Link to comment
Share on other sites

An addendum to my last post, here's the possible fix for the shipping title- find in admin/edit_orders_ajax.php

'title' => $new_order_totals[$i]['title'],

and change it to

'title' => iconv('UTF-8', CHARSET . '//TRANSLIT', $new_order_totals[$i]['title']),

 

Maybe make this code more simple?

For example, use this function (you cad add it to /admin/includes/functions/general.php):

function tep_iconv($text) {
if (function_exists('iconv')) {
   return iconv('UTF-8', CHARSET, $text); 
	} else {
  return $text;
}
 }

And this code:

'title' => $new_order_totals[$i]['title'],

Change to:

'title' => tep_iconv($new_order_totals[$i]['title']),

Edited by VaM
Link to comment
Share on other sites

djmonkey1

 

Thanks!

And last advice.

 

Maybe use something like this (for users don't have iconv support on they servers):

if (function_exist('iconv')) {
....

 

For the finished product, yes, I intended to do it like this. The code I posted is a quick and dirty solution for individuals to test. The tep_iconv function is also a good idea also, thanks.

 

I take it iconv is working out for you?

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

djmonkey1

 

JsHTTPRequest support all encodings and more crossbrowser than XMLHttpRequest.

To set encoding you can use:

	$JsHttpRequest->setEncoding(CHARSET);

 

I set the encoding that way and it didn't seem to matter. In any case, as it uses iconv to translate the character sets, it made more sense to me to go straight to the source.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

After a little more research into iconv(), I found that it was actually added to PHP as of version 4.0.5. However it behaves differently on different servers due to the various libraries that exist to support it and the fact that different servers will have different libraries compiled, different versions of those libraries, etc. But, since I only use $_POST, $_GET, etc, and those were introduced in PHP 4.1, I no longer have any concerns about the availability of the function. I will, however, adopt an internal function to check for the existence of the iconv function, just in case.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

As it turns out, tep_hide_session_id() is used in admin/orders.php at lines 334 and 337 of the stock file (must be new for RC1 or I just missed it before).

 

If you just installed osC you must be using RC1; if you're not using RC1 you should upgrade before you make any other changes.

 

The function tep_hide_session_id() is defined on the admin side at admin/includes/functions/html_output.php at about line 294:

////
// Hide form elements
  function tep_hide_session_id() {
 $string = '';

 if (defined('SID') && tep_not_null(SID)) {
   $string = tep_draw_hidden_field(tep_session_name(), tep_session_id());
 }

 return $string;
  }

////

 

Based on what i've seen so far it appears the conflict you and jimmy have described occurs when dropping the files included with the contribution into a brand new osC install that is pre-RC1.

 

Yah, I reinstalled osCommerce 2.2 RC1 and order editor.

Now it works fine.

Many thanks!

Link to comment
Share on other sites

Hello,

 

I have updated to 5.0.3

 

Great contribution, great update....things can only get better.

 

I have a small issue. I use SPPC also and when a wholesale client makes an order, the initial order subtotal is always without tax....which is correct. But if I edit the order and add items etc to this order, the newly calculated subtotal is the value with the tax included.

 

Any way round this ? For the wholesale client I would like to maintain the subtotal as the total of the values without the tax , then the other fields have VAT etc and then there is the TOTAL which has the tax etc included.

 

Any help will be highly appreciated.

 

dca

Link to comment
Share on other sites

Hello,

 

I have updated to 5.0.3

 

Great contribution, great update....things can only get better.

 

I have a small issue. I use SPPC also and when a wholesale client makes an order, the initial order subtotal is always without tax....which is correct. But if I edit the order and add items etc to this order, the newly calculated subtotal is the value with the tax included.

 

Any way round this ? For the wholesale client I would like to maintain the subtotal as the total of the values without the tax , then the other fields have VAT etc and then there is the TOTAL which has the tax etc included.

 

Any help will be highly appreciated.

 

dca

 

I believe you would have to edit the Order Editor order class file admin/order_editor/order.php in ways similar to the manner in which SPPC modifies the catalog side order class file catalog/includes/classes/order.php. You may also have to re-create variables and or information within Order Editor for the modified order class to use in order to determine the customer group tax setting.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

I just upgraded to the newest version 5.0.3

I had to roll back my admin/orders.php to the original version osC v2.2 rc1 to figure out what might be wrong.

My "admin/orders.php" file from the latest google checkout mod if working perfectly fine however when I installed this application the system failed to open "admin/orders.php"

 

I kept getting the error:

Fatal error: Call to undefined function: tep_hide_session_id() in /***/admin/orders.php on line 333

 

I got rid of it by removing:

<?php echo tep_hide_session_id(); ?>

Again, this is in the "admin/orders.php" file extracted from osC v2.2 rc1

 

Which gave me part of another error

Fatal error: Call to undefined function: tep_hide_session_id() in /***/admin/orders.php on line 337

 

So again I removed it again from that line

<?php echo tep_hide_session_id(); ?>

Again, this is in the "admin/orders.php" file extracted from osC v2.2 rc1

 

because it appeared twice.

 

Everything is worked fine again however I could not actually edit any orders.......

 

I've replaced the file with my google-checkout-oscommerse-v1.4b

 

and still in the same place as the "admin/orders.php" file extracted from osC v2.2 rc1.

 

Considering Google Checkout is becoming an industry standard, any assistance configuring the following would be appreciated.

 

<?php
/*
 $Id: orders.php,v 1.112 2003/06/29 22:50:52 hpdl Exp $
 $Id: orders.php,v 1.112 2007/06/19 22:50:52 Ropu - added Google Checkout (v1.4) $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');

/* ** GOOGLE CHECKOUT **/
 define('STATE_PENDING', "1");
 define('STATE_PROCESSING', "2");
 define('STATE_DELIVERED', "3");

  function google_checkout_state_change($check_status, $status, $oID, 
										  $cust_notify, $notify_comments) {
global $messageStack,$carrier_select, $tracking_number;

define('API_CALLBACK_ERROR_LOG', 
				 DIR_FS_CATALOG. "/googlecheckout/logs/response_error.log");
define('API_CALLBACK_MESSAGE_LOG',
				 DIR_FS_CATALOG . "/googlecheckout/logs/response_message.log");

include_once(DIR_FS_CATALOG.'/includes/modules/payment/googlecheckout.php');
include_once(DIR_FS_CATALOG.'/googlecheckout/library/googlerequest.php');

$googlepayment = new googlecheckout();

$Grequest = new GoogleRequest($googlepayment->merchantid, 
							  $googlepayment->merchantkey, 
							  MODULE_PAYMENT_GOOGLECHECKOUT_MODE==
								'https://sandbox.google.com/checkout/'
								?"sandbox":"production",
							  DEFAULT_CURRENCY);
$Grequest->SetLogFiles(API_CALLBACK_ERROR_LOG, API_CALLBACK_MESSAGE_LOG);

$google_answer = tep_db_fetch_array(tep_db_query("select google_order_number," .
						   " order_amount from " . $googlepayment->table_order . 
						   " where orders_id = " . (int)$oID ));
$google_order = $google_answer['google_order_number'];  
$amount = $google_answer['order_amount'];

// If status update is from Pending -> Processing on the Admin UI
// this invokes the processing-order and charge-order commands
// 1->Pending, 2-> Processing
if($check_status['orders_status'] == STATE_PENDING 
		   && $status == STATE_PROCESSING && $google_order != '') {
  list($status,) = $Grequest->SendMerchantOrderNumber($google_order, $oID);
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MERCHANT_ORDER_NUMBER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MERCHANT_ORDER_NUMBER, 'success');		  
  }
  list($status,) = $Grequest->SendChargeOrder($google_order, $amount);
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_CHARGE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_CHARGE_ORDER, 'success');		  
  }
  list($status,) = $Grequest->SendProcessOrder($google_order);
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_PROCESS_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_PROCESS_ORDER, 'success');		  
  }
}

// If status update is from Processing -> Delivered on the Admin UI
// this invokes the deliver-order and archive-order commands
// 2->Processing, 3-> Delivered
if($check_status['orders_status'] == STATE_PROCESSING 
				&& $status == STATE_DELIVERED && $google_order != '') {
  $carrier = $tracking_no = "";
  // Add tracking Data
  if(isset($carrier_select) &&  ($carrier_select != 'select') 
	  && isset($tracking_number) && !empty($tracking_number)) {
	$carrier = $carrier_select;
	$tracking_no = $tracking_number;
	$comments = GOOGLECHECKOUT_STATE_STRING_TRACKING ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_CARRIER . $carrier_select ."\n" .
				GOOGLECHECKOUT_STATE_STRING_TRACKING_NUMBER . $tracking_number . "";
	tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " " .
				  "(orders_id, orders_status_id, date_added, customer_notified, comments)" .
				  " values ('" . (int)$oID . "', 
				  '" . tep_db_input($status) . 
				  "', now(), '" . 
				  tep_db_input($cust_notify) . "', '" . 
				  tep_db_input($comments)  . "')");
  }

  list($status,) = $Grequest->SendDeliverOrder($google_order, $carrier,
						  $tracking_no, ($cust_notify==1)?"true":"false");
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_DELIVER_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_DELIVER_ORDER, 'success');		  
  }
  list($status,) = $Grequest->SendArchiveOrder($google_order);
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_ARCHIVE_ORDER, 'error');
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_ARCHIVE_ORDER, 'success');		  
  }
}

// Send Buyer's message
if($cust_notify==1 && isset($notify_comments) && !empty($notify_comments)) {
  list($status,) = $Grequest->sendBuyerMessage($google_order, 
					   $notify_comments, "true");
  if($status != 200) {
	$messageStack->add_session(GOOGLECHECKOUT_ERR_SEND_MESSAGE_ORDER, 'error');
	$cust_notify_ok = '0';
  }
  else {
	$messageStack->add_session(GOOGLECHECKOUT_SUCCESS_SEND_MESSAGE_ORDER, 'success');		  
	$cust_notify_ok = '1';
  }
  if(strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH) {
	$messageStack->add_session(
	sprintf(GOOGLECHECKOUT_WARNING_CHUNK_MESSAGE, GOOGLE_MESSAGE_LENGTH), 'warning');		  
  }
  // Cust notified
  return $cust_notify_ok;
}
// Cust notified
return '0';
 }

 // ** END GOOGLE CHECKOUT ** 

 require(DIR_WS_CLASSES . 'currencies.php');
 $currencies = new currencies();

 $orders_statuses = array();
 $orders_status_array = array();
 $orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "'");
 while ($orders_status = tep_db_fetch_array($orders_status_query)) {
$orders_statuses[] = array('id' => $orders_status['orders_status_id'],
						   'text' => $orders_status['orders_status_name']);
$orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
 }

 $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');

 if (tep_not_null($action)) {
switch ($action) {
  case 'update_order':
	$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);
	$status = tep_db_prepare_input($HTTP_POST_VARS['status']);
	$comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);

	$order_updated = false;
	$check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");
	$check_status = tep_db_fetch_array($check_status_query);

	if ( ($check_status['orders_status'] != $status) || tep_not_null($comments)) {
	  tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$oID . "'");

// ** GOOGLE CHECKOUT **
	  chdir("./..");
	  require_once(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/payment/googlecheckout.php');
	  $payment_value= MODULE_PAYMENT_GOOGLECHECKOUT_TEXT_TITLE;
	  $num_rows = tep_db_num_rows(tep_db_query("select google_order_number from google_orders where orders_id= ". (int)$oID));

	  if($num_rows != 0) {
		$customer_notified = google_checkout_state_change($check_status, $status, $oID, 
						   (@$_POST['notify']=='on'?1:0), 
						   (@$_POST['notify_comments']=='on'?$comments:''));
	  }
	  $customer_notified = isset($customer_notified)?$customer_notified:'0';
// ** END GOOGLE CHECKOUT **
	  if (isset($HTTP_POST_VARS['notify']) && ($HTTP_POST_VARS['notify'] == 'on')) {
		$notify_comments = '';
		if (isset($HTTP_POST_VARS['notify_comments']) && ($HTTP_POST_VARS['notify_comments'] == 'on')) {
		  $notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $comments) . "\n\n";
			$customer_notified = '1';
		}
		// ** GOOGLE CHECKOUT **
		$force_email = false;
		if($num_rows != 0 && (strlen(htmlentities(strip_tags($notify_comments))) > GOOGLE_MESSAGE_LENGTH && MODULE_PAYMENT_GOOGLECHECKOUT_USE_CART_MESSAGING == 'True')) {
		  $force_email = true;
		  $messageStack->add_session(GOOGLECHECKOUT_WARNING_SYSTEM_EMAIL_SENT, 'warning');		  
		}
		if($num_rows == 0 || $force_email) {
		  $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);
		  tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
		}
	  }
	  tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments)  . "')");

	  $order_updated = true;
	}

	if ($order_updated == true) {
	 $messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success');
	} else {
	  $messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning');
	}

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=edit'));
	break;
  case 'deleteconfirm':
	$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

	tep_remove_order($oID, $HTTP_POST_VARS['restock']);

	tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action'))));
	break;
}
 }

 if (($action == 'edit') && isset($HTTP_GET_VARS['oID'])) {
$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);

$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");
$order_exists = true;
if (!tep_db_num_rows($orders_query)) {
  $order_exists = false;
  $messageStack->add(sprintf(ERROR_ORDER_DOES_NOT_EXIST, $oID), 'error');
}
 }

 include(DIR_WS_CLASSES . 'order.php');
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<!-- header //-->
<?php
 require(DIR_WS_INCLUDES . 'header.php');
?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
 <tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 if (($action == 'edit') && ($order_exists == true)) {
$order = new order($oID);
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table width="100%" border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td colspan="3"><?php echo tep_draw_separator(); ?></td>
	  </tr>
	  <tr>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_CUSTOMER; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>'); ?></td>
		  </tr>
		  <tr>
			<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_TELEPHONE_NUMBER; ?></b></td>
			<td class="main"><?php echo $order->customer['telephone']; ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td>
			<td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '"><u>' . $order->customer['email_address'] . '</u></a>'; ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_SHIPPING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
		<td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main" valign="top"><b><?php echo ENTRY_BILLING_ADDRESS; ?></b></td>
			<td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, '', '<br>'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo ENTRY_PAYMENT_METHOD; ?></b></td>
		<td class="main"><?php echo $order->info['payment_method']; ?></td>
	  </tr>
<?php
if (tep_not_null($order->info['cc_type']) || tep_not_null($order->info['cc_owner']) || tep_not_null($order->info['cc_number'])) {
?>
	  <tr>
		<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_TYPE; ?></td>
		<td class="main"><?php echo $order->info['cc_type']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_OWNER; ?></td>
		<td class="main"><?php echo $order->info['cc_owner']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_NUMBER; ?></td>
		<td class="main"><?php echo $order->info['cc_number']; ?></td>
	  </tr>
	  <tr>
		<td class="main"><?php echo ENTRY_CREDIT_CARD_EXPIRES; ?></td>
		<td class="main"><?php echo $order->info['cc_expires']; ?></td>
	  </tr>
<?php
}
?>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr class="dataTableHeadingRow">
		<td class="dataTableHeadingContent" colspan="2"><?php echo TABLE_HEADING_PRODUCTS; ?></td>
		<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS_MODEL; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_INCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_EXCLUDING_TAX; ?></td>
		<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_INCLUDING_TAX; ?></td>
	  </tr>
<?php
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
  echo '		  <tr class="dataTableRow">' . "\n" .
	   '			<td class="dataTableContent" valign="top" align="right">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['name'];

  if (isset($order->products[$i]['attributes']) && (sizeof($order->products[$i]['attributes']) > 0)) {
	for ($j = 0, $k = sizeof($order->products[$i]['attributes']); $j < $k; $j++) {
	  echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];
	  if ($order->products[$i]['attributes'][$j]['price'] != '0') echo ' (' . $order->products[$i]['attributes'][$j]['prefix'] . $currencies->format($order->products[$i]['attributes'][$j]['price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . ')';
	  echo '</i></small></nobr>';
	}
  }

  echo '			</td>' . "\n" .
	   '			<td class="dataTableContent" valign="top">' . $order->products[$i]['model'] . '</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" .
	   '			<td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n";
  echo '		  </tr>' . "\n";
}
?>
	  <tr>
		<td align="right" colspan="8"><table border="0" cellspacing="0" cellpadding="2">
<?php
for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {
  echo '			  <tr>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" .
	   '				<td align="right" class="smallText">' . $order->totals[$i]['text'] . '</td>' . "\n" .
	   '			  </tr>' . "\n";
}
?>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td class="main"><table border="1" cellspacing="0" cellpadding="5">
	  <tr>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_DATE_ADDED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_CUSTOMER_NOTIFIED; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_STATUS; ?></b></td>
		<td class="smallText" align="center"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
	  </tr>
<?php
$orders_history_query = tep_db_query("select orders_status_id, date_added, customer_notified, comments from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . tep_db_input($oID) . "' order by date_added");
if (tep_db_num_rows($orders_history_query)) {
  while ($orders_history = tep_db_fetch_array($orders_history_query)) {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" align="center">' . tep_datetime_short($orders_history['date_added']) . '</td>' . "\n" .
		 '			<td class="smallText" align="center">';
	if ($orders_history['customer_notified'] == '1') {
	  echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK) . "</td>\n";
	} else {
	  echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS) . "</td>\n";
	}
	echo '			<td class="smallText">' . $orders_status_array[$orders_history['orders_status_id']] . '</td>' . "\n" .
		 '			<td class="smallText">' . nl2br(tep_db_output($orders_history['comments'])) . ' </td>' . "\n" .
		 '		  </tr>' . "\n";
  }
} else {
	echo '		  <tr>' . "\n" .
		 '			<td class="smallText" colspan="5">' . TEXT_NO_ORDER_HISTORY . '</td>' . "\n" .
		 '		  </tr>' . "\n";
}
?>
	</table></td>
  </tr>
  <tr>
	<td class="main"><br><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td>
  </tr>
  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=update_order'); ?>
	<td class="main"><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" cellspacing="0" cellpadding="2">
	  <tr>
		<td><table border="0" cellspacing="0" cellpadding="2">
		  <tr>
			<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo tep_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>
		  </tr>
		  <tr>
			<td class="main"><b><?php echo ENTRY_NOTIFY_CUSTOMER; ?></b> <?php echo tep_draw_checkbox_field('notify', '', true); ?></td>
			<td class="main"><b><?php echo ENTRY_NOTIFY_COMMENTS; ?></b> <?php echo tep_draw_checkbox_field('notify_comments', '', true); ?></td>
		  </tr>
		</table></td>
		<td valign="top"><?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?></td>
<!-- googlecheckout Tracking Number -->
<?php 
// orders_status == STATE_PROCESSING -> Processing before delivery
if($order->info['payment_method'] == 'Google Checkout' && $order->info['orders_status'] == STATE_PROCESSING){
		echo '<td><table border="0" cellpadding="3" cellspacing="0" width="100%">   
			<tbody>
				<tr>  
					<td style="border-top: 2px solid rgb(255, 255, 255); border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap" colspan="2">
							<b>Shipping Information</b>  
					</td>  
				</tr>
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Tracking:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255); border-bottom: 2px solid rgb(255, 255, 255);" nowrap="nowrap">   
						<input name="tracking_number" style="color: rgb(0, 0, 0);" id="trackingBox" size="20" type="text">   
					</td>  
				</tr>  
				<tr>  
					<td nowrap="nowrap" valign="middle" width="1%">  
						<font size="2">  
							<b>Carrier:</b>  
						</font>  
					</td>  
					<td style="border-right: 2px solid rgb(255, 255, 255);" nowrap="nowrap">  
						<select name="carrier_select" style="color: rgb(0, 0, 0);" id="carrierSelect">  
							<option value="select" selected="selected">
							 Select ...  
							</option>   
							<option value="USPS">
							 USPS  
							</option>   
							<option value="DHL">
							 DHL  
							</option>   
							<option value="UPS">
							 UPS  
							</option>   
							<option value="Other">
							 Other  
							</option>   
							<option value="FedEx">
							 FedEx  
							</option>   
						</select>  
					</td>  
				</tr>	 
			</tbody> 
		</table></td>';

}
?>
<!-- end googlecheckout Tracking Number -->
	  </tr>
	</table></td>
  </form></tr>
  <tr>
	<td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td>
  </tr>
<?php
 } else {
?>
  <tr>
	<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td>
		<td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr><?php echo tep_draw_form('orders', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('oID', '', 'size="12"') . tep_draw_hidden_field('action', 'edit'); ?></td>
		  </form></tr>
		  <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, '', 'get'); ?>
			<td class="smallText" align="right"><?php echo HEADING_TITLE_STATUS . ' ' . tep_draw_pull_down_menu('status', array_merge(array(array('id' => '', 'text' => TEXT_ALL_ORDERS)), $orders_statuses), '', 'onChange="this.form.submit();"'); ?></td>
		  </form></tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr class="dataTableHeadingRow">
			<td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td>
			<td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td>
			<td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td>
		  </tr>
<?php
if (isset($HTTP_GET_VARS['cID'])) {
  $cID = tep_db_prepare_input($HTTP_GET_VARS['cID']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";
} elseif (isset($HTTP_GET_VARS['status']) && is_numeric($HTTP_GET_VARS['status']) && ($HTTP_GET_VARS['status'] > 0)) {
  $status = tep_db_prepare_input($HTTP_GET_VARS['status']);
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";
} else {
  $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
}
$orders_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_query_raw, $orders_query_numrows);
$orders_query = tep_db_query($orders_query_raw);
while ($orders = tep_db_fetch_array($orders_query)) {
if ((!isset($HTTP_GET_VARS['oID']) || (isset($HTTP_GET_VARS['oID']) && ($HTTP_GET_VARS['oID'] == $orders['orders_id']))) && !isset($oInfo)) {
	$oInfo = new objectInfo($orders);
  }

  if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) {
	echo '			  <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n";
  } else {
	echo '			  <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n";
  }
?>
			<td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $orders['customers_name']; ?></td>
			<td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td>
			<td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td>
			<td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td>
			<td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td>
		  </tr>
<?php
}
?>
		  <tr>
			<td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="smallText" valign="top"><?php echo $orders_split->display_count($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ORDERS); ?></td>
				<td class="smallText" align="right"><?php echo $orders_split->display_links($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], tep_get_all_get_params(array('page', 'oID', 'action'))); ?></td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
<?php
 $heading = array();
 $contents = array();

 switch ($action) {
case 'delete':
  $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_ORDER . '</b>');

  $contents = array('form' => tep_draw_form('orders', FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=deleteconfirm'));
  $contents[] = array('text' => TEXT_INFO_DELETE_INTRO . '<br><br><b>' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>');
  $contents[] = array('text' => '<br>' . tep_draw_checkbox_field('restock') . ' ' . TEXT_INFO_RESTOCK_PRODUCT_QUANTITY);
  $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>');
  break;
default:
  if (isset($oInfo) && is_object($oInfo)) {
	$heading[] = array('text' => '<b>[' . $oInfo->orders_id . ']  ' . tep_datetime_short($oInfo->date_purchased) . '</b>');

	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>');
	$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a>');
	$contents[] = array('text' => '<br>' . TEXT_DATE_ORDER_CREATED . ' ' . tep_date_short($oInfo->date_purchased));
	if (tep_not_null($oInfo->last_modified)) $contents[] = array('text' => TEXT_DATE_ORDER_LAST_MODIFIED . ' ' . tep_date_short($oInfo->last_modified));
	$contents[] = array('text' => '<br>' . TEXT_INFO_PAYMENT_METHOD . ' '  . $oInfo->payment_method);
  }
  break;
 }

 if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
echo '			<td width="25%" valign="top">' . "\n";

$box = new box;
echo $box->infoBox($heading, $contents);

echo '			</td>' . "\n";
 }
?>
	  </tr>
	</table></td>
  </tr>
<?php
 }
?>
</table></td>
<!-- body_text_eof //-->
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Link to comment
Share on other sites

I just upgraded to the newest version 5.0.3

I had to roll back my admin/orders.php to the original version osC v2.2 rc1 to figure out what might be wrong.

My "admin/orders.php" file from the latest google checkout mod if working perfectly fine however when I installed this application the system failed to open "admin/orders.php"

 

The installation instructions come with line-by-line instructions on how to modify the file admin/orders.php; nowhere in those instructions does the function tep_hide_session_id() appear.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Hi,

 

i make it but my trouble with language is some.

 

All on edit_page.php before edit is OK.

ADD PRODUCT is ok after added

i have problem when select shipping in left side in table is all OK, but in table with price after select is bad charset.

This problem is in history too.

 

Thank you

 

David

 

 

Thank you for pointing out these problems. As VaM has suggested, change in /admin/edit_order_ajax.php

  // output a response header
  header('Content-type: text/html; charset=ISO-8859-1');

  require('includes/application_top.php');

to:

  require('includes/application_top.php');

  // output a response header
  header('Content-type: text/html; charset='.CHARSET.'');

 

After that, I have the same question for you: what happens if you change your Charset to UTF-8?

Link to comment
Share on other sites

Hi,

 

i make it but my trouble with language is some.

 

All on edit_page.php before edit is OK.

ADD PRODUCT is ok after added

i have problem when select shipping in left side in table is all OK, but in table with price after select is bad charset.

This problem is in history too.

 

Thank you

 

David

 

Change your CHARSET back to whatever it was before. Then follow the instructions in posts #2433 and #2434 for using the function iconv() to convert the AJAX generated characters from UTF-8 back to your CHARSET.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

This contrib is amazingly helpful and easy to use. Love it.

 

Does anybody know how to modify the orders.php or edit_orders.php pages so that the manufacturer's name is displayed as well as the product's name?

 

Please be more specific. Where is it that you want to see the manufacturer's name?

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

I am going to try the install of this contrib again as I see some bugs have been worked out! I was wondering if any body has tried to implement this with separate pricing per customer. We have retail and dealers. If I make a dealer order it needs to reflect dealer prices.

 

Anyhelp would be great!

Mark

Link to comment
Share on other sites

DUH!

 

 

I mistyped before. what i meant was of those of you using the manual create account, is there a way to make the account a dealer in the setup stage?

 

Mark

Link to comment
Share on other sites

I mistyped before. what i meant was of those of you using the manual create account, is there a way to make the account a dealer in the setup stage?

 

Mark

 

You could add in the code to do that or you could just go to customers.php and adjust it the usual SPPC way.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...