Skip to content

Commit

Permalink
Add czech national bank importer.
Browse files Browse the repository at this point in the history
  • Loading branch information
divaska committed Jul 13, 2016
1 parent 3ba417e commit 5587b9e
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
<parameter key="sylius.currency_importer.european_central_bank.class">Sylius\Component\Currency\Importer\EuropeanCentralBankImporter</parameter>
<parameter key="sylius.currency_importer.open_exchange_rates.class">Sylius\Component\Currency\Importer\OpenExchangeRatesImporter</parameter>

<parameter key="sylius.currency_importer.cnb.class">Sylius\Component\Currency\Importer\CzechNationalBankImporter</parameter>

<parameter key="sylius.form.type_extension.money.class">Sylius\Bundle\CurrencyBundle\Form\Extension\MoneyTypeExtension</parameter>
<parameter key="sylius.form.type.currency_choice.class">Sylius\Bundle\CurrencyBundle\Form\Type\CurrencyChoiceType</parameter>
</parameters>
Expand Down Expand Up @@ -60,6 +62,11 @@
</service>
<service id="sylius.currency_importer.ecb" alias="sylius.currency_importer.european_central_bank" />

<service id="sylius.currency_importer.cnb" class="%sylius.currency_importer.cnb.class%">
<argument type="service" id="sylius.manager.currency" />
<argument type="service" id="sylius.repository.currency" />
</service>

<service id="sylius.currency_importer.open_exchange_rates" class="%sylius.currency_importer.open_exchange_rates.class%">
<argument type="service" id="sylius.manager.currency" />
<argument type="service" id="sylius.repository.currency" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php

namespace Sylius\Component\Currency\Importer;


use DateTime;

class CzechNationalBankImporter extends AbstractImporter
{
private $url = 'http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.xml?date=';

/**
* {@inheritdoc}
*/
public function configure(array $options = array())
{

}

/**
* {@inheritdoc}
*/
public function import(array $managedCurrencies = array())
{
$date = new DateTime('now');
$fullUrl = $this->url . $date->format('d.m.Y');

$xml = @simplexml_load_file($fullUrl);

if ($xml instanceof \SimpleXMLElement) {

$data = $xml->xpath('/kurzy/tabulka/*');

foreach ($data as $row) {

$currency = (string)$row->attributes()->kod;

$rate = str_replace(',', '.', $row->attributes()->kurz);
$ammount = (int)$row->attributes()->mnozstvi;
$rateToCZK = floatval($ammount/$rate);

echo ($ammount/$ammount) . ' ' . 'CZK' . ' == ' . $rateToCZK . ' ' . $currency . "\n";

$this->updateOrCreate($managedCurrencies, (string) $currency, $rateToCZK);
}

$this->manager->flush();
}
}
}

0 comments on commit 5587b9e

Please sign in to comment.