// Supply Orders : prices are now correctly converted, depending on the currency of the order/warehouse
This commit is contained in:
@@ -800,7 +800,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
'filter' => false,
|
'filter' => false,
|
||||||
'search' => false,
|
'search' => false,
|
||||||
),
|
),
|
||||||
'p_name' => array(
|
'name' => array(
|
||||||
'title' => $this->l('Name'),
|
'title' => $this->l('Name'),
|
||||||
'align' => 'center',
|
'align' => 'center',
|
||||||
'width' => 350,
|
'width' => 350,
|
||||||
@@ -865,15 +865,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
a.quantity_received as quantity_received,
|
a.quantity_received as quantity_received,
|
||||||
a.quantity_expected as quantity_expected,
|
a.quantity_expected as quantity_expected,
|
||||||
IF (a.quantity_expected < a.quantity_received, 0, a.quantity_expected - a.quantity_received) as quantity_left,
|
IF (a.quantity_expected < a.quantity_received, 0, a.quantity_expected - a.quantity_received) as quantity_left,
|
||||||
IF (a.quantity_expected < a.quantity_received, 0, a.quantity_expected - a.quantity_received) as quantity_received_today,
|
IF (a.quantity_expected < a.quantity_received, 0, a.quantity_expected - a.quantity_received) as quantity_received_today';
|
||||||
IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.name, \' - \', al.name SEPARATOR \', \')), pl.name) as p_name';
|
|
||||||
|
|
||||||
$this->_join = '
|
|
||||||
INNER JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = a.id_product AND pl.id_lang = '.$lang_id.')
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'product_attribute_combination pac ON (pac.id_product_attribute = a.id_product_attribute)
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'attribute atr ON (atr.id_attribute = pac.id_attribute)
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'attribute_lang al ON (al.id_attribute = atr.id_attribute AND al.id_lang = '.$lang_id.')
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'attribute_group_lang agl ON (agl.id_attribute_group = atr.id_attribute_group AND agl.id_lang = '.$lang_id.')';
|
|
||||||
|
|
||||||
$this->_where = 'AND a.`id_supply_order` = '.(int)$id_supply_order;
|
$this->_where = 'AND a.`id_supply_order` = '.(int)$id_supply_order;
|
||||||
|
|
||||||
@@ -1198,7 +1190,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
|
|
||||||
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
||||||
$redirect = self::$currentIndex.'&token='.$token;
|
$redirect = self::$currentIndex.'&token='.$token;
|
||||||
$this->redirect_after($redirect.'&conf=5');
|
$this->redirect_after = $redirect.'&conf=5';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1282,13 +1274,27 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
$this->_errors[] = Tools::displayError($this->l('Warehouse could not be loaded'));
|
$this->_errors[] = Tools::displayError($this->l('Warehouse could not be loaded'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// converts the unit price to the warehouse currency if needed
|
||||||
|
if ($supply_order->id_currency != $warehouse->id_currency)
|
||||||
|
{
|
||||||
|
// first, converts the price to the default currency
|
||||||
|
$price_converted_to_default_currency = Tools::convertPrice($supply_order_detail->unit_price_te, $supply_order->id_currency, false);
|
||||||
|
|
||||||
|
// then, converts the newly calculated price from the default currency to the needed currency
|
||||||
|
$price = Tools::ps_round(Tools::convertPrice($price_converted_to_default_currency,
|
||||||
|
$warehouse->id_currency,
|
||||||
|
true),
|
||||||
|
6);
|
||||||
|
}
|
||||||
|
|
||||||
$manager = StockManagerFactory::getManager();
|
$manager = StockManagerFactory::getManager();
|
||||||
$res = $manager->addProduct($supply_order_detail->id_product,
|
$res = $manager->addProduct($supply_order_detail->id_product,
|
||||||
$supply_order_detail->id_product_attribute,
|
$supply_order_detail->id_product_attribute,
|
||||||
$warehouse,
|
$warehouse,
|
||||||
(int)$quantity,
|
(int)$quantity,
|
||||||
Configuration::get('PS_STOCK_MVT_SUPPLY_ORDER'),
|
Configuration::get('PS_STOCK_MVT_SUPPLY_ORDER'),
|
||||||
$supply_order_detail->unit_price_te,
|
$price,
|
||||||
true,
|
true,
|
||||||
$supply_order->id);
|
$supply_order->id);
|
||||||
if ($res) // if product has been added
|
if ($res) // if product has been added
|
||||||
@@ -1308,7 +1314,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
// display confirm message
|
// display confirm message
|
||||||
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
||||||
$redirect = self::$currentIndex.'&token='.$token;
|
$redirect = self::$currentIndex.'&token='.$token;
|
||||||
$this->redirect_after($redirect.'&conf=4');
|
$this->redirect_after = $redirect.'&conf=4';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1515,7 +1521,7 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
|||||||
IFNULL(pa.ean13, IFNULL(p.ean13, \'\')) as ean13,
|
IFNULL(pa.ean13, IFNULL(p.ean13, \'\')) as ean13,
|
||||||
IFNULL(pa.upc, IFNULL(p.upc, \'\')) as upc,
|
IFNULL(pa.upc, IFNULL(p.upc, \'\')) as upc,
|
||||||
md5(CONCAT(\''._COOKIE_KEY_.'\', p.id_product, \'_\', IFNULL(pa.id_product_attribute, \'0\'))) as checksum,
|
md5(CONCAT(\''._COOKIE_KEY_.'\', p.id_product, \'_\', IFNULL(pa.id_product_attribute, \'0\'))) as checksum,
|
||||||
IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.name, \' - \', al.name SEPARATOR \', \')), pl.name) as name
|
IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(DISTINCT agl.name, \' - \', al.name SEPARATOR \', \')), pl.name) as name
|
||||||
');
|
');
|
||||||
|
|
||||||
$query->from('product p');
|
$query->from('product p');
|
||||||
|
|||||||
Reference in New Issue
Block a user