// clean code

This commit is contained in:
aFolletete
2012-01-05 16:34:01 +00:00
parent 7ab341914b
commit 76a26bedb4
3 changed files with 130 additions and 129 deletions
@@ -58,8 +58,9 @@
<td> <td>
<span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span> <span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span>
{if $line.can_edit} {if $line.can_edit}
<form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}&id_order_invoice={if $line.id_order_invoice}{$line.id_order_invoice|escape:'htmlall':'UTF-8'}{else}0{/if}&id_carrier={if $line.id_carrier}{$line.id_carrier|escape:'htmlall':'UTF-8'}{else}0{/if}"> <form style="display: inline;" method="POST" action="{$link->getAdminLink('AdminOrders')}&vieworder&id_order={$smarty.get.id_order|escape:'htmlall':'UTF-8'}">
<span class="shipping_number_edit" style="display:none;"> <span class="shipping_number_edit" style="display:none;">
<input type="text" name="id_order_carrier" value="{$line.id_order_carrier}" />
<input type="text" name="tracking_number" value="{$line.tracking_number}" /> <input type="text" name="tracking_number" value="{$line.tracking_number}" />
<input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" /> <input type="submit" class="button" name="submitShippingNumber" value="{l s='Update'}" />
</span> </span>
+1 -1
View File
@@ -1449,7 +1449,7 @@ class OrderCore extends ObjectModel
public function getShipping() public function getShipping()
{ {
return Db::getInstance()->ExecuteS(' return Db::getInstance()->ExecuteS('
SELECT DISTINCT oc.`id_order_invoice`, oc.`weight`, oc.`shipping_cost_tax_excl`, oc.`shipping_cost_tax_incl`, c.`url`, oc.`id_carrier`, c.`name` as `state_name`, oc.`date_add`, "Delivery" as `type`, "true" as `can_edit`, oc.`tracking_number` SELECT DISTINCT oc.`id_order_invoice`, oc.`weight`, oc.`shipping_cost_tax_excl`, oc.`shipping_cost_tax_incl`, c.`url`, oc.`id_carrier`, c.`name` as `state_name`, oc.`date_add`, "Delivery" as `type`, "true" as `can_edit`, oc.`tracking_number`, oc.`id_order_carrier`
FROM `'._DB_PREFIX_.'orders` o FROM `'._DB_PREFIX_.'orders` o
LEFT JOIN `'._DB_PREFIX_.'order_history` oh LEFT JOIN `'._DB_PREFIX_.'order_history` oh
ON (o.`id_order` = oh.`id_order`) ON (o.`id_order` = oh.`id_order`)
+127 -127
View File
@@ -167,31 +167,36 @@ class AdminOrdersControllerCore extends AdminController
public function postProcess() public function postProcess()
{ {
// If id_order is sent, we instanciate a new Order object
if (Tools::isSubmit('id_order'))
{
$order = new Order(Tools::getValue('id_order'));
if (!Validate::isLoadedObject($order))
throw new PrestaShopException('Can\'t load Order object');
}
/* Update shipping number */ /* Update shipping number */
if (Tools::isSubmit('submitShippingNumber') AND ($id_order = (int)Tools::getValue('id_order')) AND Validate::isLoadedObject($order = new Order($id_order))) if (Tools::isSubmit('submitShippingNumber') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
if (Validate::isUrl(Tools::getValue('tracking_number'))) $order_carrier = new OrderCarrier(Tools::getValue('id_order_carrier'));
if (!Validate::isLoadedObject($order_carrier))
$this->_errors[] = Tools::displayError('Order carrier ID is invalid');
elseif (!Validate::isUrl(Tools::getValue('tracking_number')))
$this->_errors[] = Tools::displayError('Tracking number is incorrect');
else
{ {
// update shipping number // update shipping number
// Keep these two following lines for backward compatibility, remove on 1.6 version
$order->shipping_number = Tools::getValue('tracking_number'); $order->shipping_number = Tools::getValue('tracking_number');
if ($order->update()) $order->update();
{
// Update order_carrier
$id_order_invoice = Tools::getValue('id_order_invoice');
$id_carrier = Tools::getValue('id_carrier');
$id_order_carrier = Db::getInstance()->getValue('
SELECT `id_order_carrier`
FROM `'._DB_PREFIX_.'order_carrier`
WHERE `id_order` = '.(int)$order->id.
' AND `id_carrier` = '.(int)$id_carrier.
($id_order_invoice ? ' AND `id_order_invoice` = '.(int)$id_order_invoice : ''));
$order_carrier = new OrderCarrier($id_order_carrier);
$order_carrier->tracking_number = pSQL(Tools::getValue('tracking_number'));
$order_carrier->update();
global $_LANGMAIL; // Update order_carrier
$order_carrier->tracking_number = pSQL(Tools::getValue('tracking_number'));
if ($order_carrier->update())
{
// Send mail to customer
$customer = new Customer((int)$order->id_customer); $customer = new Customer((int)$order->id_customer);
$carrier = new Carrier((int)$order->id_carrier); $carrier = new Carrier((int)$order->id_carrier);
if (!Validate::isLoadedObject($customer)) if (!Validate::isLoadedObject($customer))
@@ -202,53 +207,56 @@ class AdminOrdersControllerCore extends AdminController
'{followup}' => str_replace('@', $order->shipping_number, $carrier->url), '{followup}' => str_replace('@', $order->shipping_number, $carrier->url),
'{firstname}' => $customer->firstname, '{firstname}' => $customer->firstname,
'{lastname}' => $customer->lastname, '{lastname}' => $customer->lastname,
'{id_order}' => (int)$order->id '{id_order}' => $order->id
); );
@Mail::Send((int)$order->id_lang, 'in_transit', Mail::l('Package in transit', (int)$order->id_lang), $templateVars, @Mail::Send((int)$order->id_lang, 'in_transit', Mail::l('Package in transit', (int)$order->id_lang), $templateVars,
$customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, NULL, NULL, $customer->email, $customer->firstname.' '.$customer->lastname, null, null, null, null,
_PS_MAIL_DIR_, true); _PS_MAIL_DIR_, true);
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token);
} }
else else
$this->_errors[] = Tools::displayError('An error occured on updating of order'); $this->_errors[] = Tools::displayError('Order carrier can\'t be updated');
} }
else
$this->_errors[] = Tools::displayError('Shipping number is incorrect');
} }
else else
$this->_errors[] = Tools::displayError('You do not have permission to edit here.'); $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
} }
/* Change order state, add a new entry in order history and send an e-mail to the customer if needed */ /* Change order state, add a new entry in order history and send an e-mail to the customer if needed */
elseif (Tools::isSubmit('submitState') AND ($id_order = (int)(Tools::getValue('id_order'))) AND Validate::isLoadedObject($order = new Order($id_order))) elseif (Tools::isSubmit('submitState') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
$_GET['view'.$this->table] = true; $order_state = new OrderState(Tools::getValue('id_order_state'));
if (!$newOrderStatusId = (int)(Tools::getValue('id_order_state')))
if (!Validate::isLoadedObject($order_state))
$this->_errors[] = Tools::displayError('Invalid new order status'); $this->_errors[] = Tools::displayError('Invalid new order status');
else else
{ {
// Create new OrderHistory
$history = new OrderHistory(); $history = new OrderHistory();
$history->id_order = (int)$id_order; $history->id_order = $order->id;
$history->id_employee = (int)$this->context->employee->id; $history->id_employee = (int)$this->context->employee->id;
$history->changeIdOrderState((int)($newOrderStatusId), (int)($id_order)); $history->changeIdOrderState($order_state->id, $order->id);
$order = new Order((int)$order->id);
$carrier = new Carrier((int)($order->id_carrier), (int)($order->id_lang)); $carrier = new Carrier($order->id_carrier, $order->id_lang);
$templateVars = array(); $templateVars = array();
if ($history->id_order_state == Configuration::get('PS_OS_SHIPPING') AND $order->shipping_number) if ($history->id_order_state == Configuration::get('PS_OS_SHIPPING') && $order->shipping_number)
$templateVars = array('{followup}' => str_replace('@', $order->shipping_number, $carrier->url)); $templateVars = array('{followup}' => str_replace('@', $order->shipping_number, $carrier->url));
else if ($history->id_order_state == Configuration::get('PS_OS_CHEQUE')) elseif ($history->id_order_state == Configuration::get('PS_OS_CHEQUE'))
$templateVars = array( $templateVars = array(
'{cheque_name}' => (Configuration::get('CHEQUE_NAME') ? Configuration::get('CHEQUE_NAME') : ''), '{cheque_name}' => (Configuration::get('CHEQUE_NAME') ? Configuration::get('CHEQUE_NAME') : ''),
'{cheque_address_html}' => (Configuration::get('CHEQUE_ADDRESS') ? nl2br(Configuration::get('CHEQUE_ADDRESS')) : '')); '{cheque_address_html}' => (Configuration::get('CHEQUE_ADDRESS') ? nl2br(Configuration::get('CHEQUE_ADDRESS')) : '')
);
elseif ($history->id_order_state == Configuration::get('PS_OS_BANKWIRE')) elseif ($history->id_order_state == Configuration::get('PS_OS_BANKWIRE'))
$templateVars = array( $templateVars = array(
'{bankwire_owner}' => (Configuration::get('BANK_WIRE_OWNER') ? Configuration::get('BANK_WIRE_OWNER') : ''), '{bankwire_owner}' => (Configuration::get('BANK_WIRE_OWNER') ? Configuration::get('BANK_WIRE_OWNER') : ''),
'{bankwire_details}' => (Configuration::get('BANK_WIRE_DETAILS') ? nl2br(Configuration::get('BANK_WIRE_DETAILS')) : ''), '{bankwire_details}' => (Configuration::get('BANK_WIRE_DETAILS') ? nl2br(Configuration::get('BANK_WIRE_DETAILS')) : ''),
'{bankwire_address}' => (Configuration::get('BANK_WIRE_ADDRESS') ? nl2br(Configuration::get('BANK_WIRE_ADDRESS')) : '')); '{bankwire_address}' => (Configuration::get('BANK_WIRE_ADDRESS') ? nl2br(Configuration::get('BANK_WIRE_ADDRESS')) : '')
);
// Save all changes
if ($history->addWithemail(true, $templateVars)) if ($history->addWithemail(true, $templateVars))
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$id_order.'&vieworder'.'&token='.$this->token); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder'.'&token='.$this->token);
$this->_errors[] = Tools::displayError('An error occurred while changing the status or was unable to send e-mail to the customer.'); $this->_errors[] = Tools::displayError('An error occurred while changing the status or was unable to send e-mail to the customer.');
} }
} }
@@ -257,18 +265,19 @@ class AdminOrdersControllerCore extends AdminController
} }
/* Add a new message for the current order and send an e-mail to the customer if needed */ /* Add a new message for the current order and send an e-mail to the customer if needed */
elseif (isset($_POST['submitMessage'])) elseif (Tools::isSubmit('submitMessage') && isset($order))
{ {
$_GET['view'.$this->table] = true;
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
if (!($id_order = (int)(Tools::getValue('id_order'))) OR !($id_customer = (int)(Tools::getValue('id_customer')))) $customer = new Customer(Tools::getValue('id_customer'));
$this->_errors[] = Tools::displayError('An error occurred before sending message'); if (!Validate::isLoadedObject($customer))
$this->_errors[] = Tools::displayError('Customer is invalid');
elseif (!Tools::getValue('message')) elseif (!Tools::getValue('message'))
$this->_errors[] = Tools::displayError('Message cannot be blank'); $this->_errors[] = Tools::displayError('Message cannot be blank');
else else
{ {
/* Get message rules and and check fields validity */ /* Get message rules and and check fields validity */
// TODO review
$rules = call_user_func(array('Message', 'getValidationRules'), 'Message'); $rules = call_user_func(array('Message', 'getValidationRules'), 'Message');
foreach ($rules['required'] AS $field) foreach ($rules['required'] AS $field)
if (($value = Tools::getValue($field)) == false AND (string)$value != '0') if (($value = Tools::getValue($field)) == false AND (string)$value != '0')
@@ -281,51 +290,51 @@ class AdminOrdersControllerCore extends AdminController
if (Tools::getValue($field)) if (Tools::getValue($field))
if (!Validate::$function(htmlentities(Tools::getValue($field), ENT_COMPAT, 'UTF-8'))) if (!Validate::$function(htmlentities(Tools::getValue($field), ENT_COMPAT, 'UTF-8')))
$this->_errors[] = Tools::displayError('field').' <b>'.$field.'</b> '.Tools::displayError('is invalid.'); $this->_errors[] = Tools::displayError('field').' <b>'.$field.'</b> '.Tools::displayError('is invalid.');
if (!sizeof($this->_errors)) if (!sizeof($this->_errors))
{ {
$order = new Order((int)(Tools::getValue('id_order')));
$customer = new Customer((int)$order->id_customer);
//check if a thread already exist //check if a thread already exist
$id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($customer->email, $order->id); $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($customer->email, $order->id);
$cm = new CustomerMessage();
if (!$id_customer_thread) if (!$id_customer_thread)
{ {
$ct = new CustomerThread(); $customer_thread = new CustomerThread();
$ct->id_contact = 0; $customer_thread->id_contact = 0;
$ct->id_customer = (int)$order->id_customer; $customer_thread->id_customer = (int)$order->id_customer;
$ct->id_shop = (int)$this->context->shop->getId(true); $customer_thread->id_shop = (int)$this->context->shop->getId(true);
$ct->id_order = (int)$order->id; $customer_thread->id_order = (int)$order->id;
$ct->id_lang = (int)$this->context->language->id; $customer_thread->id_lang = (int)$this->context->language->id;
$ct->email = $customer->email; $customer_thread->email = $customer->email;
$ct->status = 'open'; $customer_thread->status = 'open';
$ct->token = Tools::passwdGen(12); $customer_thread->token = Tools::passwdGen(12);
$ct->add(); $customer_thread->add();
} }
else else
$ct = new CustomerThread((int)$id_customer_thread); $customer_thread = new CustomerThread((int)$id_customer_thread);
$cm->id_customer_thread = $ct->id; $customer_message = new CustomerMessage();
$cm->id_employee = (int)$this->context->employee->id; $customer_message->id_customer_thread = $customer_thread->id;
$cm->message = htmlentities(Tools::getValue('message'), ENT_COMPAT, 'UTF-8'); $customer_message->id_employee = (int)$this->context->employee->id;
$cm->private = Tools::getValue('visibility'); $customer_message->message = htmlentities(Tools::getValue('message'), ENT_COMPAT, 'UTF-8');
if (!$cm->add()) $customer_message->private = Tools::getValue('visibility');
if (!$customer_message->add())
$this->_errors[] = Tools::displayError('An error occurred while sending message.'); $this->_errors[] = Tools::displayError('An error occurred while sending message.');
elseif ($cm->private) elseif ($customer_message->private)
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$id_order.'&vieworder&conf=11'.'&token='.$this->token); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=11'.'&token='.$this->token);
elseif (Validate::isLoadedObject($customer = new Customer($id_customer))) else
{ {
if (Validate::isLoadedObject($order)) $message = $customer_message->message;
{ if (Configuration::get('PS_MAIL_TYPE') != 2)
$varsTpl = array( $message = Tools::nl2br($customer_message->message);
'{lastname}' => $customer->lastname,
'{firstname}' => $customer->firstname, $varsTpl = array(
'{id_order}' => $order->id, '{lastname}' => $customer->lastname,
'{message}' => (Configuration::get('PS_MAIL_TYPE') == 2 ? $cm->message : Tools::nl2br($cm->message)) '{firstname}' => $customer->firstname,
); '{id_order}' => $order->id,
if (@Mail::Send((int)$order->id_lang, 'order_merchant_comment', '{message}' => $message
Mail::l('New message regarding your order', (int)$order->id_lang), $varsTpl, $customer->email, );
$customer->firstname.' '.$customer->lastname, NULL, NULL, NULL, NULL, _PS_MAIL_DIR_, true)) if (@Mail::Send((int)$order->id_lang, 'order_merchant_comment',
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$id_order.'&vieworder&conf=11'.'&token='.$this->token); Mail::l('New message regarding your order', (int)$order->id_lang), $varsTpl, $customer->email,
} $customer->firstname.' '.$customer->lastname, null, null, null, null, _PS_MAIL_DIR_, true))
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=11'.'&token='.$this->token);
} }
$this->_errors[] = Tools::displayError('An error occurred while sending e-mail to customer.'); $this->_errors[] = Tools::displayError('An error occurred while sending e-mail to customer.');
} }
@@ -336,36 +345,41 @@ class AdminOrdersControllerCore extends AdminController
} }
/* Partial refund from order */ /* Partial refund from order */
elseif (Tools::isSubmit('partialRefund') AND Validate::isLoadedObject($order = new Order((int)(Tools::getValue('id_order'))))) elseif (Tools::isSubmit('partialRefund') && isset($order))
{ {
$amount = 0; if ($this->tabAccess['edit'] == '1')
$order_detail_list = array();
foreach ($_POST['partialRefundProduct'] as $id_order_detail => $amount_detail)
if (isset($amount_detail) && !empty($amount_detail))
{
$amount += $amount_detail;
$order_detail_list[$id_order_detail]['quantity'] = (int)$_POST['partialRefundProductQuantity'][$id_order_detail];
$order_detail_list[$id_order_detail]['amount'] = (float)$amount_detail;
}
$shipping_cost_amount = (float)(Tools::getValue('partialRefundShippingCost'));
if ($shipping_cost_amount > 0)
$amount += $shipping_cost_amount;
if ($amount > 0)
{ {
if (!OrderSlip::createPartialOrderSlip($order, $amount, $shipping_cost_amount, $order_detail_list)) $amount = 0;
$this->_errors[] = Tools::displayError('Cannot generate partial credit slip'); $order_detail_list = array();
foreach ($_POST['partialRefundProduct'] as $id_order_detail => $amount_detail)
if (isset($amount_detail) && !empty($amount_detail))
{
$amount += $amount_detail;
$order_detail_list[$id_order_detail]['quantity'] = (int)$_POST['partialRefundProductQuantity'][$id_order_detail];
$order_detail_list[$id_order_detail]['amount'] = (float)$amount_detail;
}
$shipping_cost_amount = (float)Tools::getValue('partialRefundShippingCost');
if ($shipping_cost_amount > 0)
$amount += $shipping_cost_amount;
if ($amount > 0)
{
if (!OrderSlip::createPartialOrderSlip($order, $amount, $shipping_cost_amount, $order_detail_list))
$this->_errors[] = Tools::displayError('Cannot generate partial credit slip');
}
else
$this->_errors[] = Tools::displayError('You have to write an amount if you want to do a partial credit slip');
// Redirect if no errors
if (!sizeof($this->_errors))
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=24&token='.$this->token);
} }
else else
$this->_errors[] = Tools::displayError('You have to write an amount if you want to do a partial credit slip'); $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
// Redirect if no errors
if (!sizeof($this->_errors))
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=24&token='.$this->token);
} }
/* Cancel product from order */ /* Cancel product from order */
elseif (Tools::isSubmit('cancelProduct') AND Validate::isLoadedObject($order = new Order((int)(Tools::getValue('id_order'))))) elseif (Tools::isSubmit('cancelProduct') && isset($order))
{ {
if ($this->tabAccess['delete'] === '1') if ($this->tabAccess['delete'] === '1')
{ {
@@ -378,13 +392,11 @@ class AdminOrdersControllerCore extends AdminController
$full_quantity_list = $qtyList; $full_quantity_list = $qtyList;
if ($customizationList) if ($customizationList)
{
foreach ($customizationList as $key => $id_order_detail) foreach ($customizationList as $key => $id_order_detail)
{ {
$full_product_list[$id_order_detail] = $id_order_detail; $full_product_list[$id_order_detail] = $id_order_detail;
$full_quantity_list[$id_order_detail] = $customizationQtyList[$key]; $full_quantity_list[$id_order_detail] = $customizationQtyList[$key];
} }
}
if ($productList OR $customizationList) if ($productList OR $customizationList)
{ {
@@ -403,7 +415,7 @@ class AdminOrdersControllerCore extends AdminController
$order_detail = new OrderDetail($id_order_detail); $order_detail = new OrderDetail($id_order_detail);
$customization_quantity = 0; $customization_quantity = 0;
if (array_key_exists($order_detail->product_id, $customization_quantities) && array_key_exists($order_detail->product_attribute_id, $customization_quantities[$order_detail->product_id])) if (array_key_exists($order_detail->product_id, $customization_quantities) && array_key_exists($order_detail->product_attribute_id, $customization_quantities[$order_detail->product_id]))
$customization_quantity = (int) $customization_quantities[$order_detail->product_id][$order_detail->product_attribute_id]; $customization_quantity = (int)$customization_quantities[$order_detail->product_id][$order_detail->product_attribute_id];
if (($order_detail->product_quantity - $customization_quantity - $order_detail->product_quantity_refunded - $order_detail->product_quantity_return) < $qtyCancelProduct) if (($order_detail->product_quantity - $customization_quantity - $order_detail->product_quantity_refunded - $order_detail->product_quantity_return) < $qtyCancelProduct)
$this->_errors[] = Tools::displayError('Invalid quantity selected for product.'); $this->_errors[] = Tools::displayError('Invalid quantity selected for product.');
@@ -453,7 +465,8 @@ class AdminOrdersControllerCore extends AdminController
$order_detail->id_order, $order_detail->id_order,
$order_detail->product_id, $order_detail->product_id,
$order_detail->product_attribute_id, $order_detail->product_attribute_id,
$quantity_to_reinject); $quantity_to_reinject
);
foreach ($mvts as $mvt) foreach ($mvts as $mvt)
{ {
@@ -471,10 +484,12 @@ class AdminOrdersControllerCore extends AdminController
} }
else if ($order_detail->id_warehouse == 0) else if ($order_detail->id_warehouse == 0)
{ {
StockAvailable::updateQuantity($order_detail->product_id, StockAvailable::updateQuantity(
$order_detail->product_attribute_id, $order_detail->product_id,
$quantity_to_reinject, $order_detail->product_attribute_id,
$order->id_shop); $quantity_to_reinject,
$order->id_shop
);
} }
else else
$this->_errors[] = Tools::displayError('Cannot re-stock product'); $this->_errors[] = Tools::displayError('Cannot re-stock product');
@@ -544,13 +559,12 @@ class AdminOrdersControllerCore extends AdminController
else else
$this->_errors[] = Tools::displayError('You do not have permission to delete here.'); $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
} }
elseif (isset($_GET['messageReaded'])) elseif (Tools::isSubmit('messageReaded'))
Message::markAsReaded($_GET['messageReaded'], $this->context->employee->id); Message::markAsReaded($_GET['messageReaded'], $this->context->employee->id);
else if (Tools::isSubmit('submitAddPayment')) else if (Tools::isSubmit('submitAddPayment') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
$order = new Order(Tools::getValue('id_order'));
$amount = str_replace(',', '.', Tools::getValue('payment_amount')); $amount = str_replace(',', '.', Tools::getValue('payment_amount'));
$currency = new Currency(Tools::getValue('payment_currency')); $currency = new Currency(Tools::getValue('payment_currency'));
if ($order->hasInvoice()) if ($order->hasInvoice())
@@ -616,7 +630,7 @@ class AdminOrdersControllerCore extends AdminController
else else
$this->_errors[] = Tools::displayError('You do not have permission to add here.'); $this->_errors[] = Tools::displayError('You do not have permission to add here.');
} }
elseif (Tools::isSubmit('submitAddressShipping') || Tools::isSubmit('submitAddressInvoice')) elseif ((Tools::isSubmit('submitAddressShipping') || Tools::isSubmit('submitAddressInvoice')) && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
@@ -624,7 +638,6 @@ class AdminOrdersControllerCore extends AdminController
if (Validate::isLoadedObject($address)) if (Validate::isLoadedObject($address))
{ {
// Update the address on order // Update the address on order
$order = new Order(Tools::getValue('id_order'));
if (Tools::isSubmit('submitAddressShipping')) if (Tools::isSubmit('submitAddressShipping'))
$order->id_address_delivery = $address->id; $order->id_address_delivery = $address->id;
elseif (Tools::isSubmit('submitAddressInvoice')) elseif (Tools::isSubmit('submitAddressInvoice'))
@@ -638,14 +651,10 @@ class AdminOrdersControllerCore extends AdminController
else else
$this->_errors[] = Tools::displayError('You do not have permission to edit here.'); $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
} }
elseif (Tools::isSubmit('submitChangeCurrency')) elseif (Tools::isSubmit('submitChangeCurrency') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
$order = new Order(Tools::getValue('id_order'));
if (!Validate::isLoadedObject($order))
throw new PrestaShopException('Con\'t load Order object');
if (Tools::getValue('new_currency') != $order->id_currency && !$order->valid) if (Tools::getValue('new_currency') != $order->id_currency && !$order->valid)
{ {
$old_currency = new Currency($order->id_currency); $old_currency = new Currency($order->id_currency);
@@ -714,12 +723,8 @@ class AdminOrdersControllerCore extends AdminController
else else
$this->_errors[] = Tools::displayError('You do not have permission to edit here.'); $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
} }
elseif (Tools::isSubmit('submitGenerateInvoice')) elseif (Tools::isSubmit('submitGenerateInvoice') && isset($order))
{ {
$order = new Order(Tools::getValue('id_order'));
if (!Validate::isLoadedObject($order))
throw new PrestaShopException('Order can\'t be loaded');
if ($order->hasInvoice()) if ($order->hasInvoice())
$this->_errors[] = Tools::displayError('This order has already invoice'); $this->_errors[] = Tools::displayError('This order has already invoice');
else else
@@ -728,13 +733,12 @@ class AdminOrdersControllerCore extends AdminController
Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token);
} }
} }
elseif (Tools::isSubmit('submitDeleteVoucher')) elseif (Tools::isSubmit('submitDeleteVoucher') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
$order_cart_rule = new OrderCartRule(Tools::getValue('id_order_cart_rule')); $order_cart_rule = new OrderCartRule(Tools::getValue('id_order_cart_rule'));
$order = new Order(Tools::getValue('id_order')); if (Validate::isLoadedObject($order_cart_rule) && $order_cart_rule->id_order == $order->id)
if (Validate::isLoadedObject($order_cart_rule) && Validate::isLoadedObject($order) && $order_cart_rule->id_order == $order->id)
{ {
if ($order_cart_rule->id_order_invoice) if ($order_cart_rule->id_order_invoice)
{ {
@@ -773,7 +777,7 @@ class AdminOrdersControllerCore extends AdminController
else else
$this->_errors[] = Tools::displayError('You do not have permission to edit here.'); $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
} }
elseif (Tools::getValue('submitNewVoucher')) elseif (Tools::getValue('submitNewVoucher') && isset($order))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
{ {
@@ -781,10 +785,6 @@ class AdminOrdersControllerCore extends AdminController
$this->_errors[] = Tools::displayError('You must specify a name in order to create a new discount'); $this->_errors[] = Tools::displayError('You must specify a name in order to create a new discount');
else else
{ {
$order = new Order(Tools::getValue('id_order'));
if (!Validate::isLoadedObject($order))
throw new PrestaShopException('Can\'t load Order object');
if ($order->hasInvoice()) if ($order->hasInvoice())
{ {
// If the discount is for only one invoice // If the discount is for only one invoice