38 $this->
_init(
'directory_currency',
'currency_code');
39 $this->_currencyRateTable = $this->
getTable(
'directory_currency_rate');
49 public function getRate($currencyFrom, $currencyTo)
52 $currencyFrom = $currencyFrom->getCode();
56 $currencyTo = $currencyTo->getCode();
59 if ($currencyFrom == $currencyTo) {
63 if (!isset(self::$_rateCache[$currencyFrom][$currencyTo])) {
65 $bind = [
':currency_from' => strtoupper($currencyFrom),
':currency_to' => strtoupper($currencyTo)];
67 $this->_currencyRateTable,
70 'currency_from = :currency_from' 72 'currency_to = :currency_to' 78 return self::$_rateCache[$currencyFrom][$currencyTo];
91 $currencyFrom = $currencyFrom->getCode();
95 $currencyTo = $currencyTo->getCode();
98 if ($currencyFrom == $currencyTo) {
102 if (!isset(self::$_rateCache[$currencyFrom][$currencyTo])) {
104 $bind = [
':currency_from' => strtoupper($currencyFrom),
':currency_to' => strtoupper($currencyTo)];
106 $this->_currencyRateTable,
109 'currency_from = :currency_from' 111 'currency_to = :currency_to' 115 if (
$rate ===
false) {
117 $this->_currencyRateTable,
120 'currency_to = :currency_from' 122 'currency_from = :currency_to' 126 self::$_rateCache[$currencyFrom][$currencyTo] =
$rate;
129 return self::$_rateCache[$currencyFrom][$currencyTo];
150 $data[] = [
'currency_from' => $currencyCode,
'currency_to' => $currencyTo,
'rate' =>
$value];
157 throw new \Magento\Framework\Exception\LocalizedException(
__(
'Please correct the rates received'));
174 $bind = [
':config_path' =>
$path];
178 foreach ($rowSet as
$row) {
196 if (is_array($currency)) {
197 foreach ($currency as
$code) {
217 $bind = [
':currency_from' =>
$code];
219 $this->
getTable(
'directory_currency_rate'),
220 [
'currency_to',
'rate']
222 'currency_from = :currency_from' 230 foreach ($rowSet as
$row) {
getRate($currencyFrom, $currencyTo)
_init($mainTable, $idFieldName)
getConfigCurrencies($model, $path)
getAnyRate($currencyFrom, $currencyTo)
getCurrencyRates($currency, $toCurrencies=null)
_getRatesByCode($code, $toCurrencies=null)