Your IP : 3.135.194.164


Current Path : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/catalog/admin/
Upload File :
Current File : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/catalog/admin/cat_contractor_list.php

<?
/** @global CDatabase $DB */
/** @global CUser $USER */
/** @global CMain $APPLICATION */
use Bitrix\Main\Loader;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/prolog.php");

/** @global CAdminPage $adminPage */
global $adminPage;
/** @global CAdminSidePanelHelper $adminSidePanelHelper */
global $adminSidePanelHelper;

$selfFolderUrl = $adminPage->getSelfFolderUrl();
$publicMode = $adminPage->publicMode;

if (!($USER->CanDoOperation('catalog_read') || $USER->CanDoOperation('catalog_store')))
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
Loader::includeModule('catalog');
$bReadOnly = !$USER->CanDoOperation('catalog_store');

IncludeModuleLangFile(__FILE__);

$bExport = (isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'excel');

$typeList = array(
	CONTRACTOR_INDIVIDUAL => GetMessage('CONTRACTOR_INDIVIDUAL'),
	CONTRACTOR_JURIDICAL => GetMessage('CONTRACTOR_JURIDICAL')
);

if ($ex = $APPLICATION->GetException())
{
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
	ShowError($ex->GetString());
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
	die();
}

$sTableID = "b_catalog_contractor";
$oSort = new CAdminUiSorting($sTableID, "ID", "ASC");
$lAdmin = new CAdminUiList($sTableID, $oSort);

$filterFields = array(
	array(
		"id" => "PERSON_TYPE",
		"name" => "ID",
		"type" => "list",
		"items" => $typeList,
		"filterable" => "",
		"default" => true
	),
	array(
		"id" => "PERSON_NAME",
		"name" => GetMessage("CONTRACTOR_PERSON_NAME"),
		"filterable" => "%",
		"quickSearch" => "%"
	),
	array(
		"id" => "COMPANY",
		"name" => GetMessage("CONTRACTOR_COMPANY"),
		"filterable" => "%"
	),
	array(
		"id" => "PHONE",
		"name" => GetMessage("CONTRACTOR_PHONE"),
		"filterable" => ""
	),
	array(
		"id" => "EMAIL",
		"name" => GetMessage("CONTRACTOR_EMAIL"),
		"filterable" => ""
	),
	array(
		"id" => "INN",
		"name" => GetMessage("CONTRACTOR_INN"),
		"filterable" => ""
	),
	array(
		"id" => "KPP",
		"name" => GetMessage("CONTRACTOR_KPP"),
		"filterable" => "%"
	),
);

$arFilter = array();

$lAdmin->AddFilter($filterFields, $arFilter);

if ($lAdmin->EditAction() && !$bReadOnly)
{
	foreach ($_POST['FIELDS'] as $ID => $arFields)
	{
		$ID = (int)$ID;
		if ($ID <= 0 || !$lAdmin->IsUpdated($ID))
			continue;

		$DB->StartTransaction();
		if (!CCatalogContractor::Update($ID, $arFields))
		{
			if ($ex = $APPLICATION->GetException())
				$lAdmin->AddUpdateError($ex->GetString(), $ID);
			else
				$lAdmin->AddUpdateError(GetMessage("ERROR_UPDATING_REC")." (".$arFields["ID"].", ".$arFields["TITLE"].", ".$arFields["SORT"].")", $ID);

			$DB->Rollback();
		}
		else
		{
			$DB->Commit();
		}
	}
}

if (($arID = $lAdmin->GroupAction()) && !$bReadOnly)
{
	if ($_REQUEST['action_target']=='selected')
	{
		$arID = array();
		$dbResultList = CCatalogContractor::GetList(array(), $arFilter, false, false, array('ID'));
		while ($arResult = $dbResultList->Fetch())
			$arID[] = $arResult['ID'];
	}

	foreach ($arID as $ID)
	{
		if (strlen($ID) <= 0)
			continue;

		switch ($_REQUEST['action'])
		{
			case "delete":
				@set_time_limit(0);
				$DB->StartTransaction();
				if (!CCatalogContractor::Delete($ID))
				{
					$DB->Rollback();

					if ($ex = $APPLICATION->GetException())
						$lAdmin->AddGroupError($ex->GetString(), $ID);
					else
						$lAdmin->AddGroupError(GetMessage("ERROR_DELETING_TYPE"), $ID);
				}
				else
				{
					$DB->Commit();
				}
				break;
		}
	}

	if ($lAdmin->hasGroupErrors())
	{
		$adminSidePanelHelper->sendJsonErrorResponse($lAdmin->getGroupErrors());
	}
	else
	{
		$adminSidePanelHelper->sendSuccessResponse();
	}
}

$arSelect = array(
	"ID",
	"PERSON_TYPE",
	"PERSON_NAME",
	"EMAIL",
	"PHONE",
	"POST_INDEX",
	"COUNTRY",
	"CITY",
	"COMPANY",
	"INN",
	"KPP",
	"ADDRESS",
);

$arNavParams = (
	isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'excel'
	? false
	: array("nPageSize" => CAdminUiResult::GetNavSize($sTableID))
);
global $by, $order;
if (!isset($by))
	$by = 'ID';
if (!isset($order))
	$order = 'ASC';

$dbResultList = CCatalogContractor::GetList(
	array($by => $order),
	$arFilter,
	false,
	$arNavParams,
	$arSelect
);

$dbResultList = new CAdminUiResult($dbResultList, $sTableID);
$dbResultList->NavStart();
$lAdmin->SetNavigationParams($dbResultList, array("BASE_LINK" => $selfFolderUrl."cat_contractor_list.php"));

$arHeaders = array(
	array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true),
	array('id' => 'PERSON_TYPE', 'content' => GetMessage('CONTRACTOR_TYPE'), 'sort' => 'PERSON_TYPE', 'default' => true),
	array('id' => 'PERSON_NAME', 'content' => GetMessage('CONTRACTOR_PERSON_TITLE'), 'sort' => 'PERSON_NAME', 'default' => true),
	array("id" => "COMPANY", "content" => GetMessage("CONTRACTOR_COMPANY"),  "sort" => "COMPANY", "default" => true),
	array("id" => "EMAIL", "content" => GetMessage("CONTRACTOR_EMAIL"),  "sort" => "EMAIL", "default" => true),
	array("id" => "PHONE", "content" => GetMessage("CONTRACTOR_PHONE"),  "sort" => "PHONE", "default" => false),
	array("id" => "POST_INDEX", "content" => GetMessage("CONTRACTOR_POST_INDEX"),  "sort" => "POST_INDEX", "default" => false),
	array("id" => "INN", "content" => GetMessage("CONTRACTOR_INN"),  "sort" => "INN", "default" => false),
);
if(trim(GetMessage("CONTRACTOR_KPP")) != '')
	$arHeaders[] = array("id" => "KPP", "content" => GetMessage("CONTRACTOR_KPP"),  "sort" => "KPP", "default" => false);

$arHeaders[] = 	array("id" => "ADDRESS", "content" => GetMessage("CONTRACTOR_ADDRESS"),  "sort" => "ADDRESS", "default" => true);

$lAdmin->AddHeaders($arHeaders);

$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();
while ($arResultContractor = $dbResultList->Fetch())
{
	$row =& $lAdmin->AddRow($arResultContractor['ID'], $arResultContractor, "cat_contractor_edit.php?ID=".$arResultContractor['ID']."&lang=".LANGUAGE_ID);
	$row->AddField('ID', $arResultContractor['ID']);
	$row->AddViewField('PERSON_TYPE', $typeList[$arResultContractor['PERSON_TYPE']]);
	$row->AddInputField('PERSON_NAME', false);
	$row->AddInputField('COMPANY', false);
	if($bReadOnly)
	{
		$row->AddInputField('EMAIL', false);
		$row->AddInputField('PHONE', false);
		$row->AddInputField('ADDRESS', false);
	}
	else
	{
		$row->AddInputField('EMAIL', array('size' => 30));
		$row->AddInputField('PHONE', array('size' => 25));
		$row->AddInputField('ADDRESS', array('size' => 40));
	}

	$arActions = array();
	$editUrl = $selfFolderUrl."cat_contractor_edit.php?ID=".$arResultContractor['ID']."&lang=".LANGUAGE_ID;
	$editUrl = $adminSidePanelHelper->editUrlToPublicPage($editUrl);
	$arActions[] = array(
		"ICON" => "edit",
		"TEXT" => GetMessage("EDIT_CONTRACTOR_ALT"),
		"LINK" => $editUrl,
		"DEFAULT" => true
	);

	if (!$bReadOnly)
	{
		$arActions[] = array(
			"ICON" => "delete",
			"TEXT" => GetMessage("DELETE_CONTRACTOR_ALT"),
			"ACTION" => "if(confirm('".GetMessage('DELETE_CONTRACTOR_CONFIRM')."')) ".$lAdmin->ActionDoGroup($arResultContractor['ID'], "delete")
		);
	}

	$row->AddActions($arActions);
}

if(!$bReadOnly)
{
	$lAdmin->AddGroupActionTable(
		array(
			"delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
		)
	);
}

if (!$bReadOnly)
{
	$addUrl = $selfFolderUrl."cat_contractor_edit.php?lang=".LANGUAGE_ID;
	$addUrl = $adminSidePanelHelper->editUrlToPublicPage($addUrl);
	$aContext = array(
		array(
			"TEXT" => GetMessage("CONTRACTOR_ADD_NEW"),
			"ICON" => "btn_new",
			"LINK" => $addUrl,
			"TITLE" => GetMessage("CONTRACTOR_ADD_NEW_ALT")
		),
	);
	$lAdmin->setContextSettings(array("pagePath" => $selfFolderUrl."cat_contractor_list.php"));
	$lAdmin->AddAdminContextMenu($aContext);
}

$lAdmin->CheckListMode();

$APPLICATION->SetTitle(GetMessage("CONTRACTOR_PAGE_TITLE"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

$lAdmin->DisplayFilter($filterFields);
$lAdmin->DisplayList();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");