<?php 

/*
Файл обновления валют на текущий день по курсу ЦБ.
Внимание!
Текущей валютой должен быть установлен рубль с коэффициентом пересчета 1.
*/

// Подключаем основные классы
require_once(dirname(__FILE__) . '/../' . 'main_classes.php');

$kernel = & singleton('kernel');

$kernel->LoadModules(); // Загрузка модулей

// Инициализация CURRENT_SITE и констант
$admin = new Admin();
$admin->admin_init();

/*
Массив идентификаторов валют магазина, укажите в данном массиве
перечень валют по приведенной схеме с их идентификаторами.
*/
$CurrenciesID = array();
$CurrenciesID['USD'] = 3;
$CurrenciesID['EUR'] = 2;

// Локаль
setlocale(LC_NUMERIC, 'POSIX');

$parser = new XMLparser();

$link = 'http://www.cbr.ru/scripts/XML_daily.asp';

function GetCurrencyByName($valute_mas)
{
	$currencies = array();
	foreach ($valute_mas as $val)
	{
		if (floatval($val['value']['Nominal'][0]['value']) >= 1)
		{
			$val['value']['Value'][0]['value'] = str_replace(',', '.', $val['value']['Value'][0]['value']);
			$val['value']['Nominal'][0]['value'] = str_replace(',', '.', $val['value']['Nominal'][0]['value']);

			if ($val['value']['Value'][0]['value'] > 0)
			{
				$key_cur = $val['value']['CharCode'][0]['value'];
				$currencies[$key_cur] = $val['value']['Value'][0]['value'] / $val['value']['Nominal'][0]['value'];
			}
		}
	}

	return $currencies;
}

if (class_exists('shop'))
{
	$Shop = & singleton('shop');

	if ($xml = file_get_contents($link))
	{
		$tags = $parser->ParseValue($xml);

		$count = count($tags['ValCurs'][0]['value']['Valute']);
		$valute = $tags['ValCurs'][0]['value']['Valute'];
		$currencies = GetCurrencyByName($valute);

		// Просматриваем все полученные курсы валют
		foreach ($CurrenciesID as $key => $val)
		{
			// Если эту валюту нужно обновлять в нашем магазине
			if (isset($currencies[$key]))
			{
				$param = array();
				$param['id'] = $val;
				$param['value_in_basic_currency'] = $currencies[$key];

				// Обновляем валюту
				$Shop->UpdateCurrency($param);
			}
		}
	}
	else
	{
		show_error_message("Не удалось открыть файл");
	}
}
else
{
	show_error_message("Модуль магазина не найден");
}

?>