<?php 
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2008 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Обработчик применения новой цены.
 * 
 * Файл: /admin/shop/action/accept_new_price.php
 * 
 * @author Hostmake LLC
 * @version 5.2
 */
// Идентификатор группы, в которую следует вернутся после отработки скрипта
$shop_group_id = to_int($_REQUEST['shop_group_id']);

// Идентификатор магазина
$shop_shops_id = to_int($_REQUEST['shop_shops_id']);

// Идентификатор группы, с которой производить изменение цены
$shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

// Идентификатор скидки, которую следует применить к товару, если равен 0 - скидка не применяется
$shop_discount_id = to_int($_REQUEST['shop_discount_id']);

// Велечина изменения
$type_of_change_text = to_float($_REQUEST['type_of_change_text']);

// Тип изменения (0 - умножение, 1 - добавление)
$type_of_change = to_int($_REQUEST['type_of_change']);

// Запрос на получение данных о товарах для всех категориях
$query = "SELECT * FROM `shop_items_catalog_table` WHERE `shop_shops_id`='$shop_shops_id'";

// Ограничиваем по подгруппам только тогда, когда родительская группа не корневая, иначе просто будут выбираться все группы без ограничения
if ($shop_groups_parent_id != 0)
{
	$my_own_mass = $shop->GetGroupsTree($shop_groups_parent_id,$shop_shops_id);

	// Получаем список групп, для которых требуется произвести изменение цены
	$array_of_groups = $shop->GetGroupsTree($shop_groups_parent_id, $shop_shops_id);

	$array_of_items = array();

	$array_of_groups_id = array();

	foreach ($array_of_groups AS $parent_group_id => $array_of_child_groups)
	{
		if (!in_array($parent_group_id, $array_of_groups_id))
		{
			$array_of_groups_id[] = $parent_group_id;
		}

		foreach ($array_of_child_groups AS /*$child_group_id =>*/ $child_data)
		{
			$child_group_id = $child_data['shop_groups_id'];

			if (!in_array($child_group_id, $array_of_groups_id))
			{
				$array_of_groups_id[] = $child_group_id;
			}

			if (!in_array($child_data['shop_groups_id'], $array_of_groups_id))
			{
				$array_of_groups_id[] = $child_data['shop_groups_id'];
			}
		}
	}

	if (count($array_of_groups_id) > 0)
	{
		$query .= " AND shop_groups_id IN (".implode(', ', $array_of_groups_id).") ";
	}
}

//echo $query;

$DataBase = & singleton('DataBase');

$items_data_res = $DataBase->query($query);

$item_was_not_changed = false;

// Определяем режим доступа пользователя и принадлежит ли объект пользователю
$user_access = new user_access();

$array_of_aborted_items_id = array();

while ($items_data_row = mysql_fetch_assoc($items_data_res))
{
	$shop_items_catalog_item_id = $items_data_row['shop_items_catalog_item_id'];

	$shop_items_catalog_price = to_float($items_data_row['shop_items_catalog_price']);

	// Добавление
	if ($type_of_change)
	{
		$shop_items_catalog_price += $type_of_change_text;
	}
	// Умножение
	else
	{
		$shop_items_catalog_price *= $type_of_change_text;
	}

	// Проверка на допуск к текущему товару текущего пользователя
	$object_user_id = $items_data_row['users_id'];

	if ($user_access->IssetUserAccessForObject($object_user_id))
	{
		// Обновляем информацию для товара
		$shop->InsertItem(array('item_id' => $shop_items_catalog_item_id, 'price' => $shop_items_catalog_price, 'shops_id' => $shop_shops_id, 'weight' => $items_data_row['shop_items_catalog_weight'], 'order' => $items_data_row['shop_items_catalog_order'], 'is_active' => $items_data_row['shop_items_catalog_is_active'], 'indexation' => $items_data_row['shop_items_catalog_indexation'], 'name' => $items_data_row['shop_items_catalog_name'], 'search_event_indexation' => false));

		// Если была выбрана скидка, добавляем ее
		if ($shop_discount_id)
		{
			$shop->InsertItemDiscount(array('item_catalog_id' => $shop_items_catalog_item_id, 'shop_discount_id' => $shop_discount_id));
		}
	}
	else
	{
		$item_was_not_changed = true;

		$array_of_aborted_items_id[] = $shop_items_catalog_item_id;
	}
}

if ($item_was_not_changed)
{
	show_error_message(sprintf($GLOBALS['MSG_shops']['error_message_attention'], implode(', ', $array_of_aborted_items_id)));
}
else
{
	show_message($GLOBALS['MSG_shops']['accepted_prices']);
}

?>