|
|
<?php |
|
|
|
|
|
namespace Kanboard\Model; |
|
|
|
|
|
use Kanboard\Core\Base; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CurrencyModel extends Base |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const TABLE = 'currencies'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getCurrencies() |
|
|
{ |
|
|
return array( |
|
|
'ARS' => t('ARS - Argentine Peso'), |
|
|
'AUD' => t('AUD - Australian Dollar'), |
|
|
'BAM' => t('BAM - Konvertible Mark'), |
|
|
'BRL' => t('BRL - Brazilian Real'), |
|
|
'CAD' => t('CAD - Canadian Dollar'), |
|
|
'CHF' => t('CHF - Swiss Francs'), |
|
|
'CNY' => t('CNY - Chinese Yuan'), |
|
|
'COP' => t('COP - Colombian Peso'), |
|
|
'DKK' => t('DKK - Danish Krona'), |
|
|
'EUR' => t('EUR - Euro'), |
|
|
'GBP' => t('GBP - British Pound'), |
|
|
'HRK' => t('HRK - Kuna'), |
|
|
'HUF' => t('HUF - Hungarian Forint'), |
|
|
'INR' => t('INR - Indian Rupee'), |
|
|
'JPY' => t('JPY - Japanese Yen'), |
|
|
'MXN' => t('MXN - Mexican Peso'), |
|
|
'NOK' => t('NOK - Norwegian Krone'), |
|
|
'NZD' => t('NZD - New Zealand Dollar'), |
|
|
'RSD' => t('RSD - Serbian dinar'), |
|
|
'RUB' => t('RUB - Russian Ruble'), |
|
|
'SEK' => t('SEK - Swedish Krona'), |
|
|
'TRL' => t('TRL - Turkish Lira'), |
|
|
'USD' => t('USD - US Dollar'), |
|
|
'VBL' => t('VES - Venezuelan Bolívar'), |
|
|
'XBT' => t('XBT - Bitcoin'), |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getAll() |
|
|
{ |
|
|
return $this->db->table(self::TABLE)->findAll(); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getPrice($currency, $price) |
|
|
{ |
|
|
static $rates = null; |
|
|
$reference = $this->configModel->get('application_currency', 'USD'); |
|
|
|
|
|
if ($reference !== $currency) { |
|
|
$rates = $rates === null ? $this->db->hashtable(self::TABLE)->getAll('currency', 'rate') : $rates; |
|
|
$rate = isset($rates[$currency]) ? $rates[$currency] : 1; |
|
|
|
|
|
return $rate * $price; |
|
|
} |
|
|
|
|
|
return $price; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function create($currency, $rate) |
|
|
{ |
|
|
if ($this->db->table(self::TABLE)->eq('currency', $currency)->exists()) { |
|
|
return $this->update($currency, $rate); |
|
|
} |
|
|
|
|
|
return $this->db->table(self::TABLE)->insert(array('currency' => $currency, 'rate' => $rate)); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function update($currency, $rate) |
|
|
{ |
|
|
return $this->db->table(self::TABLE)->eq('currency', $currency)->update(array('rate' => $rate)); |
|
|
} |
|
|
} |
|
|
|