| @@ 38-54 (lines=17) @@ | ||
| 35 | $now = new \DateTime('now'); |
|
| 36 | $this->url = $this->url.$now->format('d.m.Y').'.xml'; |
|
| 37 | $xml = simplexml_load_file($this->url); |
|
| 38 | if ($xml instanceof \SimpleXMLElement) { |
|
| 39 | // base currency: AZN |
|
| 40 | $this->updateOrCreate($managedCurrencies, $this->baseCurrency, 1.00); |
|
| 41 | ||
| 42 | $data = $xml->xpath('//ValCurs/*[1]'); |
|
| 43 | // divides 1.00 by current exchange rate to get the reverse rate, |
|
| 44 | // because CBAR provides only inverse rate |
|
| 45 | foreach ($data[0]->children() as $child) { |
|
| 46 | $this->updateOrCreate( |
|
| 47 | $managedCurrencies, |
|
| 48 | (string) $child->attributes()->Code, |
|
| 49 | 1.00 / (float) $child->children()->Value |
|
| 50 | ); |
|
| 51 | } |
|
| 52 | ||
| 53 | $this->manager->flush(); |
|
| 54 | } |
|
| 55 | } |
|
| 56 | } |
|
| 57 | ||
| @@ 35-45 (lines=11) @@ | ||
| 32 | public function import(array $managedCurrencies = array()) |
|
| 33 | { |
|
| 34 | $xml = simplexml_load_file($this->url); |
|
| 35 | if ($xml instanceof \SimpleXMLElement) { |
|
| 36 | // base currency: euro |
|
| 37 | $this->updateOrCreate($managedCurrencies, $this->baseCurrency, 1.00); |
|
| 38 | ||
| 39 | $data = $xml->xpath('//gesmes:Envelope/*[3]/*'); |
|
| 40 | foreach ($data[0]->children() as $child) { |
|
| 41 | $this->updateOrCreate($managedCurrencies, (string) $child->attributes()->currency, (float) $child->attributes()->rate); |
|
| 42 | } |
|
| 43 | ||
| 44 | $this->manager->flush(); |
|
| 45 | } |
|
| 46 | } |
|
| 47 | ||
| 48 | public function setBaseCurrency($baseCurrency = null) |
|