<?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->query (
					'REPLACE INTO reference_rate (moneda_id, date, rate)
						VALUES (2, TIMESTAMPADD(DAY, 1, #date), #rate)',
					$params
				);
			}
		}  

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

