Page MenuHomeIn-Portal Phabricator

ecb_currency_rates.php
No OneTemporary

File Metadata

Created
Wed, Sep 24, 10:24 AM

ecb_currency_rates.php

<?php
/**
* @version $Id: ecb_currency_rates.php 16601 2018-04-06 12:07:55Z alex $
* @package In-Commerce
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license Commercial License
* This software is protected by copyright law and international treaties.
* Unauthorized reproduction or unlicensed usage of the code of this program,
* or any portion of it may result in severe civil and criminal penalties,
* and will be prosecuted to the maximum extent possible under the law
* See http://www.in-portal.org/commercial-license for copyright notices and details.
*/
defined('FULL_PATH') or die('restricted access!');
class ECBCurrencyRates extends CurrencyRates {
public function __construct()
{
$this->RateSource = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
parent::__construct();
}
function GetRatesData()
{
$xml_parser = xml_parser_create();
/** @var kCurlHelper $curl_helper */
$curl_helper = $this->Application->recallObject('CurlHelper');
$curl_helper->followLocation = true;
$xml = $curl_helper->Send($this->RateSource);
if ( !$curl_helper->isGoodResponseCode() || strlen($xml) == 0 ) {
return;
}
xml_parse_into_struct($xml_parser, $xml, $struct, $index);
$data_res = Array();
foreach($struct as $element)
{
if(isset($element['attributes']) && isset($element['attributes']['CURRENCY']))
{
$currency = $element['attributes']['CURRENCY'];
$data_res[$currency]['ID'] = $currency;
$data_res[$currency]['TARGET'] = 'EUR';
$data_res[$currency]['UNITS'] = 1;
$data_res[$currency]['RATE'] = ($element['attributes']['RATE'] == 0) ? 0 : 1 / $element['attributes']['RATE'];
}
}
if ( !isset($data_res['EUR']) ) {
$data_res['EUR']['ID'] = 'EUR';
$data_res['EUR']['UNITS'] = 1;
$data_res['EUR']['TARGET'] = 'EUR';
$data_res['EUR']['RATE'] = 1;
}
$this->ExchangeRates = $data_res;
}
}

Event Timeline