Your IP : 3.149.248.43


Current Path : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/components/bitrix/crm.order.product.details/
Upload File :
Current File : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/components/bitrix/crm.order.product.details/ajax.php

<?php

define('NO_KEEP_STATISTIC', 'Y');
define('NO_AGENT_STATISTIC','Y');
define('NO_AGENT_CHECK', true);
define('DisableEventsCheck', true);

require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
if (!CModule::IncludeModule('crm') && !CModule::IncludeModule('sale'))
{
	return;
}
/*
 * ONLY 'POST' METHOD SUPPORTED
 * SUPPORTED ACTIONS:
 * 'SAVE'
 */
global $DB, $APPLICATION;
\Bitrix\Main\Localization\Loc::loadMessages(__FILE__);
if(!function_exists('__CrmOrderProductDetailsEndJsonResponse'))
{
	function __CrmOrderProductDetailsEndJsonResponse($result)
	{
		$GLOBALS['APPLICATION']->RestartBuffer();
		Header('Content-Type: application/x-javascript; charset='.LANG_CHARSET);
		if(!empty($result))
		{
			echo CUtil::PhpToJSObject($result);
		}
		if(!defined('PUBLIC_AJAX_MODE'))
		{
			define('PUBLIC_AJAX_MODE', true);
		}
		require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');
		die();
	}
}

if (!CCrmSecurityHelper::IsAuthorized() || !check_bitrix_sessid() || $_SERVER['REQUEST_METHOD'] != 'POST')
{
	return;
}

CUtil::JSPostUnescape();
$APPLICATION->RestartBuffer();
Header('Content-Type: application/x-javascript; charset='.LANG_CHARSET);

$currentUserID = CCrmSecurityHelper::GetCurrentUserID();
$currentUserPermissions =  CCrmPerms::GetCurrentUserPermissions();

$action = isset($_POST['ACTION']) ? $_POST['ACTION'] : '';
if($action === '' && isset($_POST['MODE']))
{
	$action = $_POST['MODE'];
}
if($action === '')
{
	__CrmOrderProductDetailsEndJsonResponse(array('ERROR'=>'ACTION IS NOT DEFINED!'));
}

if($action === 'SAVE')
{
	$ID = isset($_POST['ACTION_ENTITY_ID']) ? max((int)$_POST['ACTION_ENTITY_ID'], 0) : 0;
	if ($ID > 0 && !\Bitrix\Crm\Order\Permissions\Order::checkUpdatePermission($ID, $currentUserPermissions))
	{
		__CrmOrderProductDetailsEndJsonResponse(array('ERROR' => 'ACCESS_DENIED'));
	}

	$params = isset($_POST['PARAMS']) && is_array($_POST['PARAMS']) ? $_POST['PARAMS'] : array();

	if (empty($_POST['NAME']))
	{
		__CrmOrderProductDetailsEndJsonResponse(array('ERROR' => GetMessage('CRM_PRODUCT_NAME_EMPTY')));
	}
	if (empty($_POST['QUANTITY']))
	{
		__CrmOrderProductDetailsEndJsonResponse(array('ERROR' => GetMessage('CRM_PRODUCT_QUANTITY_EMPTY')));
	}
	if (empty($_POST['PRICE']))
	{
		__CrmOrderProductDetailsEndJsonResponse(array('ERROR' => GetMessage('CRM_PRODUCT_PRICE_EMPTY')));
	}
	if (empty($_POST['CURRENCY']))
	{
		__CrmOrderProductDetailsEndJsonResponse(array('ERROR' => GetMessage('CRM_PRODUCT_CURRENCY_EMPTY')));
	}

	$fields = array_intersect_key($_POST, array_flip(\Bitrix\Crm\Order\BasketItem::getAvailableFields()));
	if ((int)($_POST['MEASURE']) > 0)
	{
		$measures = \Bitrix\Crm\Measure::getMeasures(100);
		if (isset($measures[(int)$_POST['MEASURE']]))
		{
			$measure = $measures[(int)$_POST['MEASURE']];
			$fields['MEASURE_NAME'] = $measure['SYMBOL'];
			$fields['MEASURE_CODE'] = $measure['CODE'];
		}
	}
	if (isset($_POST['PROPERTY']) && is_array($_POST['PROPERTY']))
	{
		$fields['PROPS'] = $_POST['PROPERTY'];
	}
	$productId = max((int)$_POST['CODE'], 1);
	$fields['PRODUCT_ID'] = $productId;
	$fields['ORDER_ID'] = $ID;

	__CrmOrderProductDetailsEndJsonResponse(array('ENTITY_DATA' => $fields, 'ENTITY_ID' => $productId));
}
if($action === 'GET_FORMATTED_SUM')
{
	$sum = isset($_POST['SUM']) ? $_POST['SUM'] : 0.0;
	$currencyID = isset($_POST['CURRENCY_ID']) ? $_POST['CURRENCY_ID'] : '';
	if($currencyID === '')
	{
		$currencyID = CCrmCurrency::GetBaseCurrencyID();
	}

	__CrmOrderProductDetailsEndJsonResponse(
		array(
			'FORMATTED_SUM' => CCrmCurrency::MoneyToString($sum, $currencyID, '#'),
			'FORMATTED_SUM_WITH_CURRENCY' => CCrmCurrency::MoneyToString($sum, $currencyID, '')
		)
	);
}