<?php

/**
 * Ejemplo:
 * <Cube><Cube time="2010-12-10"><Cube currency="USD" rate="1.3244"/>
 */
class ExchangeRate extends Vn\Lib\Method {
	function run($db) {
		$db->selectDb('vn2008');

		// Indica la URL del archivo

		$xml = new SimpleXMLElement(
			'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml', 0, TRUE);

		$date = $db->getValue("SELECT MAX(date) fecha FROM reference_rate");
		$maxDate = $date ? DateTime::createFromFormat('Y-m-d', $date) : NULL;

		foreach ($xml->Cube[0]->Cube as $cube) {
			$xmlDate = new DateTime($cube['time']);

			// Si existen datos más recientes de la máxima fecha los añade

			if ($maxDate <= $xmlDate)
			foreach ($cube->Cube as $subCube)
			if ($subCube['currency'] == 'USD') {
				$params = [
					'date' => $xmlDate,
					'rate' => $subCube['rate']
				];
				$db->query(
					'REPLACE INTO reference_rate(moneda_id, date, rate)
						VALUES(2, #date, #rate)',
					$params
				);
			}
		}  

		$db->queryFromFile(__DIR__.'/exrate-add');
	}
}