Your IP : 3.12.136.222


Current Path : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/components/bitrix/crm.invoice/
Upload File :
Current File : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/components/bitrix/crm.invoice/component.php

<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();

if (!CModule::IncludeModule('crm'))
{
	ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED'));
	return;
}

if(!CAllCrmInvoice::installExternalEntities())
	return;
if(!CCrmQuote::LocalComponentCausedUpdater())
	return;

if (!CModule::IncludeModule('currency'))
{
	ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED_CURRENCY'));
	return;
}
if (!CModule::IncludeModule('catalog'))
{
	ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED_CATALOG'));
	return;
}
if (!CModule::IncludeModule('sale'))
{
	ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED_SALE'));
	return;
}

$showRecurring = \Bitrix\Crm\Recurring\Manager::isAllowedExpose(\Bitrix\Crm\Recurring\Manager::INVOICE);

global $APPLICATION;
use Bitrix\Crm;

$arDefaultUrlTemplates404 = array(
	'index' => 'index.php',
	'list' => 'list/',
	'recur' => 'recur/',
	'edit' => 'edit/#invoice_id#/',
	'recur_edit' => 'recur/edit/#invoice_id#/',
	'recur_show' => 'recur/show/#invoice_id#/',
	'recur_expose' => 'recur/edit/#invoice_id#/?expose=Y',
	'show' => 'show/#invoice_id#/',
	'payment' => 'payment/#invoice_id#/',
	'widget' => 'widget/',
	'kanban' => 'kanban/'
);

$arDefaultVariableAliases404 = array(

);
$arDefaultVariableAliases = array();
$componentPage = '';
$arComponentVariables = array('invoice_id');

$arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE']) ? CSite::GetNameFormat(false) : str_replace(array("#NOBR#","#/NOBR#"), array("",""), $arParams["NAME_TEMPLATE"]);

if ($arParams['SEF_MODE'] == 'Y')
{
	$arVariables = array();
	$arUrlTemplates = CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404, $arParams['SEF_URL_TEMPLATES']);
	$arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404, $arParams['VARIABLE_ALIASES']);
	$componentPage = CComponentEngine::ParseComponentPath($arParams['SEF_FOLDER'], $arUrlTemplates, $arVariables);

	if ($showRecurring && in_array($componentPage, array("recur", "recur_edit", "recur_expose", "recur_show")))
		$arResult['IS_RECURRING'] = 'Y';

	if ($componentPage == "recur")
	{
		$componentPage = 'list';
	}
	elseif (($componentPage == "recur_edit" || $componentPage == "recur_expose"))
	{
		$componentPage = 'edit';
	}
	elseif ($componentPage == "recur_show")
	{
		$componentPage = 'show';
	}

	if (empty($componentPage) || (!array_key_exists($componentPage, $arDefaultUrlTemplates404)))
		$componentPage = 'index';

	CComponentEngine::InitComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, $arVariables);

	foreach ($arUrlTemplates as $url => $value)
	{
		if($arParams['PATH_TO_INVOICE_'.mb_strtoupper($url)] == '')
			$arResult['PATH_TO_INVOICE_'.mb_strtoupper($url)] = $arParams['SEF_FOLDER'].$value;
		else
			$arResult['PATH_TO_INVOICE_'.mb_strtoupper($url)] = $arParams['PATH_TO_'.mb_strtoupper($url)];
	}
}
else
{
	$arComponentVariables[] = $arParams['VARIABLE_ALIASES']['invoice_id'];

	$arVariables = array();
	$arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases, $arParams['VARIABLE_ALIASES']);
	CComponentEngine::InitComponentVariables(false, $arComponentVariables, $arVariableAliases, $arVariables);

	$componentPage = 'index';
	if (isset($_REQUEST['recur']) && isset($_REQUEST['edit']) && $showRecurring)
	{
		$componentPage = 'edit';
		$arResult['IS_RECURRING'] = 'Y';
	}
	else if (isset($_REQUEST['edit']))
		$componentPage = 'edit';
	else if (isset($_REQUEST['copy']))
		$componentPage = 'edit';
	else if (isset($_REQUEST['recur']) && isset($_REQUEST['show']) && $showRecurring)
	{
		$componentPage = 'show';
		$arResult['IS_RECURRING'] = 'Y';
	}
	else if (isset($_REQUEST['show']))
		$componentPage = 'show';
	else if (isset($_REQUEST['payment']))
		$componentPage = 'payment';
	else if (isset($_REQUEST['recur']))
	{
		$componentPage = 'list';
		if ($showRecurring)
			$arResult['IS_RECURRING'] = 'Y';
	}	

	$curPage = $APPLICATION->GetCurPage();
	$arResult['PATH_TO_INVOICE_LIST'] = $curPage;
	$arResult['PATH_TO_INVOICE_SHOW'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&show";
	$arResult['PATH_TO_INVOICE_EDIT'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&edit";
	$arResult['PATH_TO_INVOICE_RECUR_EDIT'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&edit&recur";
	$arResult['PATH_TO_INVOICE_RECUR_SHOW'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&show&recur";
	$arResult['PATH_TO_INVOICE_RECUR_EXPOSE'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&edit&recur&expose=Y";
	$arResult['PATH_TO_INVOICE_PAYMENT'] = $curPage."?$arVariableAliases[invoice_id]=#invoice_id#&payment";
	$arResult['PATH_TO_PRODUCT_EDIT'] = $curPage."?$arVariableAliases[product_id]=#product_id#&edit";
	$arResult['PATH_TO_PRODUCT_SHOW'] = $curPage."?$arVariableAliases[product_id]=#product_id#&show";
	$arResult['PATH_TO_INVOICE_WIDGET'] = $curPage."?widget";
	$arResult['PATH_TO_INVOICE_RECUR'] = $curPage."?recur";
	$arResult['PATH_TO_INVOICE_KANBAN'] = $curPage."?kanban";
}

$arResult = array_merge(
	array(
		'VARIABLES' => $arVariables,
		'ALIASES' => $arParams['SEF_MODE'] == 'Y'? array(): $arVariableAliases,
		'ELEMENT_ID' => $arParams['ELEMENT_ID'],
		'PATH_TO_LEAD_CONVERT' => $arParams['PATH_TO_LEAD_CONVERT'],
		'PATH_TO_LEAD_EDIT' => $arParams['PATH_TO_LEAD_EDIT'],
		'PATH_TO_LEAD_SHOW' => $arParams['PATH_TO_LEAD_SHOW'],
		'PATH_TO_DEAL_SHOW' => $arParams['PATH_TO_DEAL_SHOW'],
		'PATH_TO_QUOTE_SHOW' => $arParams['PATH_TO_QUOTE_SHOW'],
		'PATH_TO_CONTACT_EDIT' => $arParams['PATH_TO_CONTACT_EDIT'],
		'PATH_TO_CONTACT_SHOW' => $arParams['PATH_TO_CONTACT_SHOW'],
		'PATH_TO_COMPANY_EDIT' => $arParams['PATH_TO_COMPANY_EDIT'],
		'PATH_TO_COMPANY_SHOW' => $arParams['PATH_TO_COMPANY_SHOW'],
		'PATH_TO_USER_PROFILE' => $arParams['PATH_TO_USER_PROFILE'],
		'PATH_TO_PRODUCT_EDIT' => $arParams['PATH_TO_PRODUCT_EDIT'],
		'PATH_TO_PRODUCT_SHOW' => $arParams['PATH_TO_PRODUCT_SHOW'],
	),
	$arResult
);

if(isset($_GET['redirect_to']))
{
	$viewName = mb_strtoupper(trim($_GET['redirect_to']));
	if($viewName === '')
	{
		$viewName = Crm\Settings\EntityViewSettings::resolveName(
			Crm\Settings\InvoiceSettings::getCurrent()->getCurrentListViewID()
		);
	}
	$pathKey = "PATH_TO_INVOICE_{$viewName}";
	if(isset($arResult[$pathKey]))
	{
		$redirectUrl = CHTTP::urlAddParams(
			$arResult[$pathKey],
			array_diff_key($_GET, array_flip(array('redirect_to'))),
			array('encode' => true)
		);
		LocalRedirect($redirectUrl);
	}
}

$arResult['NAVIGATION_CONTEXT_ID'] = 'INVOICE';
if($componentPage === 'index')
{
	$componentPage = 'list';
}
$this->IncludeComponentTemplate($componentPage);
?>