// WAOW ! Adding change currency feature in AdminOrdersController ! It's amaizing :D Wonderful ;)
This commit is contained in:
@@ -19,7 +19,7 @@
|
|||||||
*
|
*
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2011 PrestaShop SA
|
* @copyright 2007-2011 PrestaShop SA
|
||||||
* @version Release: $Revision: 10336 $
|
* @version Release: $Revision: 9589 $
|
||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|||||||
@@ -463,7 +463,44 @@ class ToolsCore
|
|||||||
return $price;
|
return $price;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Convert amount from a currency to an other currency automatically
|
||||||
|
* @param float $amount
|
||||||
|
* @param Currency $currency_from if null we used the default currency
|
||||||
|
* @param Currency $currency_to if null we used the default currency
|
||||||
|
*/
|
||||||
|
public static function convertPriceFull($amount, Currency $currency_from = null, Currency $currency_to = null)
|
||||||
|
{
|
||||||
|
if ($currency_from == $currency_to)
|
||||||
|
return $amount;
|
||||||
|
|
||||||
|
if ($currency_from === null)
|
||||||
|
{
|
||||||
|
$currency_from = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
|
||||||
|
$default_currency = $currency_from;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($currency_to === null)
|
||||||
|
{
|
||||||
|
$currency_to = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
|
||||||
|
$default_currency = $currency_to;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($currency_from->id == Configuration::get('PS_CURRENCY_DEFAULT'))
|
||||||
|
$amount *= $currency_to->conversion_rate;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!isset($default_currency))
|
||||||
|
$default_currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
|
||||||
|
|
||||||
|
// Convert amount to default currency
|
||||||
|
$amount = Tools::ps_round($amount / $default_currency->conversion_rate, 2);
|
||||||
|
// Convert to new currency
|
||||||
|
$amount *= $currency_to->conversion_rate;
|
||||||
|
}
|
||||||
|
return Tools::ps_round($amount, 2);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display date regarding to language preferences
|
* Display date regarding to language preferences
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2011 PrestaShop SA
|
* @copyright 2007-2011 PrestaShop SA
|
||||||
* @version Release: $Revision: 10418 $
|
* @version Release: $Revision: 6844 $
|
||||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*/
|
*/
|
||||||
@@ -384,4 +384,4 @@ class OrderInvoiceCore extends ObjectModel
|
|||||||
AND `id_order_invoice` = '.(int)$this->id
|
AND `id_order_invoice` = '.(int)$this->id
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*
|
*
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2011 PrestaShop SA
|
* @copyright 2007-2011 PrestaShop SA
|
||||||
* @version Release: $Revision: 10336 $
|
* @version Release: $Revision: 6844 $
|
||||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -435,7 +435,7 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$reinjectableQuantity = (int)($orderDetail->product_quantity) - (int)($orderDetail->product_quantity_reinjected);
|
$reinjectableQuantity = (int)($orderDetail->product_quantity) - (int)($orderDetail->product_quantity_reinjected);
|
||||||
$quantityToReinject = $qtyCancelProduct > $reinjectableQuantity ? $reinjectableQuantity : $qtyCancelProduct;
|
$quantityToReinject = $qtyCancelProduct > $reinjectableQuantity ? $reinjectableQuantity : $qtyCancelProduct;
|
||||||
// TODO (Denis) : fix reinject quantities
|
// TODO (Denis) : fix reinject quantities
|
||||||
// if (!Product::reinjectQuantities($orderDetail, $quantityToReinject))
|
// if (!Product::reinjectQuantities($orderDetail, $quantityToReinject))
|
||||||
// $this->_errors[] = Tools::displayError('Cannot re-stock product').' <span class="bold">'.$orderDetail->product_name.'</span>';
|
// $this->_errors[] = Tools::displayError('Cannot re-stock product').' <span class="bold">'.$orderDetail->product_name.'</span>';
|
||||||
// else
|
// else
|
||||||
@@ -598,13 +598,91 @@ 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'))
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
$old_currency = new Currency($order->id_currency);
|
||||||
|
$currency = new Currency(Tools::getValue('new_currency'));
|
||||||
|
if (!Validate::isLoadedObject($currency))
|
||||||
|
throw new PrestashopException('Can\'t load Currency object');
|
||||||
|
|
||||||
|
// Update order detail amount
|
||||||
|
foreach($order->getOrderDetailList() as $row)
|
||||||
|
{
|
||||||
|
$order_detail = new OrderDetail($row['id_order_detail']);
|
||||||
|
$order_detail->product_price = Tools::convertPriceFull($order_detail->product_price, $old_currency, $currency);
|
||||||
|
$order_detail->reduction_amount = Tools::convertPriceFull($order_detail->reduction_amount, $old_currency, $currency);
|
||||||
|
$order_detail->unit_price_tax_incl = Tools::convertPriceFull($order_detail->unit_price_tax_incl, $old_currency, $currency);
|
||||||
|
$order_detail->unit_price_tax_excl = Tools::convertPriceFull($order_detail->unit_price_tax_excl, $old_currency, $currency);
|
||||||
|
$order_detail->total_price_tax_incl = Tools::convertPriceFull($order_detail->product_price, $old_currency, $currency);
|
||||||
|
$order_detail->total_price_tax_excl = Tools::convertPriceFull($order_detail->product_price, $old_currency, $currency);
|
||||||
|
$order_detail->group_reduction = Tools::convertPriceFull($order_detail->product_price, $old_currency, $currency);
|
||||||
|
$order_detail->product_quantity_discount = Tools::convertPriceFull($order_detail->product_price, $old_currency, $currency);
|
||||||
|
|
||||||
|
$order_detail->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update order payment amount
|
||||||
|
foreach($order->getOrderPaymentCollection() as $payment)
|
||||||
|
{
|
||||||
|
$payment->id_currency = (int)$currency->id;
|
||||||
|
$payment->amount = Tools::convertPriceFull((float)$payment->amount, $old_currency, $currency);
|
||||||
|
$payment->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
$order_carrier = Db::getInstance()->executeS('
|
||||||
|
SELECT *
|
||||||
|
FROM `'._DB_PREFIX_.'order_carrier`
|
||||||
|
WHERE `id_order` = '.(int)$order->id);
|
||||||
|
// Update order carrier amount
|
||||||
|
Db::getInstance()->execute('
|
||||||
|
UPDATE `'._DB_PREFIX_.'order_carrier`
|
||||||
|
SET `shipping_cost_tax_excl` = '.(float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_excl'], $old_currency, $currency).',
|
||||||
|
`shipping_cost_tax_incl` = '.(float)Tools::convertPriceFull($order_carrier['shipping_cost_tax_incl'], $old_currency, $currency).'
|
||||||
|
WHERE `id_order` = '.(int)$order->id);
|
||||||
|
|
||||||
|
// Update order amount
|
||||||
|
$order->total_discounts = Tools::convertPriceFull($order->total_discounts, $old_currency, $currency);
|
||||||
|
$order->total_discounts_tax_incl = Tools::convertPriceFull($order->total_discounts_tax_incl, $old_currency, $currency);
|
||||||
|
$order->total_discounts_tax_excl = Tools::convertPriceFull($order->total_discounts_tax_excl, $old_currency, $currency);
|
||||||
|
$order->total_paid = Tools::convertPriceFull($order->total_paid, $old_currency, $currency);
|
||||||
|
$order->total_paid_tax_incl = Tools::convertPriceFull($order->total_paid_tax_incl, $old_currency, $currency);
|
||||||
|
$order->total_paid_tax_excl = Tools::convertPriceFull($order->total_discounts_tax_excl, $old_currency, $currency);
|
||||||
|
$order->total_paid_real = Tools::convertPriceFull($order->total_paid_real, $old_currency, $currency);
|
||||||
|
$order->total_products = Tools::convertPriceFull($order->total_products, $old_currency, $currency);
|
||||||
|
$order->total_products_wt = Tools::convertPriceFull($order->total_products_wt, $old_currency, $currency);
|
||||||
|
$order->total_shipping = Tools::convertPriceFull($order->total_shipping, $old_currency, $currency);
|
||||||
|
$order->total_shipping_tax_incl = Tools::convertPriceFull($order->total_shipping_tax_incl, $old_currency, $currency);
|
||||||
|
$order->total_shipping_tax_excl = Tools::convertPriceFull($order->total_shipping_tax_excl, $old_currency, $currency);
|
||||||
|
$order->total_wrapping = Tools::convertPriceFull($order->total_wrapping, $old_currency, $currency);
|
||||||
|
$order->total_wrapping_tax_incl = Tools::convertPriceFull($order->total_wrapping_tax_incl, $old_currency, $currency);
|
||||||
|
$order->total_wrapping_tax_excl = Tools::convertPriceFull($order->total_wrapping_tax_excl, $old_currency, $currency);
|
||||||
|
|
||||||
|
// Update currency in order
|
||||||
|
$order->id_currency = $currency->id;
|
||||||
|
|
||||||
|
$order->update();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$this->_errors[] = Tools::displayError('You can\'t change the currency');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$this->_errors[] = Tools::displayError('You do not have permission to edit here.');
|
||||||
|
}
|
||||||
|
|
||||||
parent::postProcess();
|
parent::postProcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function initView()
|
public function initView()
|
||||||
{
|
{
|
||||||
$order = $this->loadObject();
|
$order = new Order(Tools::getValue('id_order'));
|
||||||
if (!Validate::isLoadedObject($order))
|
if (!Validate::isLoadedObject($order))
|
||||||
throw new PrestashopException('object can\'t be loaded');
|
throw new PrestashopException('object can\'t be loaded');
|
||||||
|
|
||||||
@@ -847,7 +925,7 @@ class AdminOrdersControllerCore extends AdminController
|
|||||||
$cart_rule->add();
|
$cart_rule->add();
|
||||||
|
|
||||||
$cart->addCartRule($cart_rule->id);
|
$cart->addCartRule($cart_rule->id);
|
||||||
//$order->addCartRule($cart_rule->id, $cart_rule->name, $cart_rule->getContextualValue(true));
|
$order->addCartRule($cart_rule->id, $cart_rule->name, $cart_rule->getContextualValue(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
// If order is valid, we can create a new invoice or edit an existing invoice
|
// If order is valid, we can create a new invoice or edit an existing invoice
|
||||||
|
|||||||
+12
-69
@@ -19,7 +19,7 @@
|
|||||||
*
|
*
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2011 PrestaShop SA
|
* @copyright 2007-2011 PrestaShop SA
|
||||||
* @version Release: $Revision: 10575 $
|
* @version Release: $Revision: 7310 $
|
||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*/
|
*/
|
||||||
@@ -216,22 +216,22 @@ $(document).ready(function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.edit_shipping_number_link').click(function() {
|
$('#edit_shipping_number_link').click(function() {
|
||||||
$(this).parent().find('.shipping_number_show').hide();
|
$('#shipping_number_show').hide();
|
||||||
$(this).parent().find('.shipping_number_edit').show();
|
$('#shipping_number_edit').show();
|
||||||
|
|
||||||
$(this).parent().find('.edit_shipping_number_link').hide();
|
$('#edit_shipping_number_link').hide();
|
||||||
$(this).parent().find('.cancel_shipping_number_link').show();
|
$('#cancel_shipping_number_link').show();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.cancel_shipping_number_link').click(function() {
|
$('#cancel_shipping_number_link').click(function() {
|
||||||
$(this).parent().find('.shipping_number_show').show();
|
$('#shipping_number_show').show();
|
||||||
$(this).parent().find('.shipping_number_edit').hide();
|
$('#shipping_number_edit').hide();
|
||||||
|
|
||||||
$(this).parent().find('.edit_shipping_number_link').show();
|
$('#edit_shipping_number_link').show();
|
||||||
$(this).parent().find('.cancel_shipping_number_link').hide();
|
$('#cancel_shipping_number_link').hide();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
@@ -574,61 +574,4 @@ function closeAddProduct()
|
|||||||
$('#add_product_product_attribute_area').hide();
|
$('#add_product_product_attribute_area').hide();
|
||||||
$('#add_product_product_stock').html('0');
|
$('#add_product_product_stock').html('0');
|
||||||
current_product = null;
|
current_product = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Refund system script */
|
|
||||||
var flagRefund = '';
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('.standard_refund').click(function() {
|
|
||||||
|
|
||||||
$.scrollTo('#refundForm', 1200, {offset: -100});
|
|
||||||
|
|
||||||
if (flagRefund == 'standard')
|
|
||||||
{
|
|
||||||
flagRefund = '';
|
|
||||||
$('.partial_refund_fields').hide();
|
|
||||||
$('.standard_refund_fields').hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flagRefund = 'standard';
|
|
||||||
$('.partial_refund_fields').hide();
|
|
||||||
$('.standard_refund_fields').fadeIn();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.partial_refund').click(function() {
|
|
||||||
|
|
||||||
$.scrollTo('#refundForm', 1200, {offset: -100});
|
|
||||||
|
|
||||||
if (flagRefund == 'partial')
|
|
||||||
{
|
|
||||||
flagRefund = '';
|
|
||||||
$('.partial_refund_fields').hide();
|
|
||||||
$('.standard_refund_fields').hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
flagRefund = 'partial';
|
|
||||||
$('.standard_refund_fields').hide();
|
|
||||||
$('.partial_refund_fields').fadeIn();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user