// clean code
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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`)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user