*/ 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'); } }