403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sale/admin/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/sale/admin/order_payment.php
<?php

use Bitrix\Main\Application;
use Bitrix\Sale\Internals\PaymentTable;
use Bitrix\Sale\Order;
use Bitrix\Main\Loader;

/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */

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

Loader::includeModule('sale');
Loader::includeModule('currency');

$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$bReadOnly = $saleModulePermissions < 'P';

IncludeModuleLangFile(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/prolog.php");

$tableId = "b_sale_order_payment";
$curPage = Application::getInstance()->getContext()->getCurrent()->getRequest()->getRequestUri();
$lang = Application::getInstance()->getContext()->getLanguage();

$arUserGroups = $USER->GetUserGroupArray();

$arAccessibleSites = array();
$dbAccessibleSites = CSaleGroupAccessToSite::GetList(
	array(),
	array("GROUP_ID" => $arUserGroups),
	false,
	false,
	array("SITE_ID")
);
while ($arAccessibleSite = $dbAccessibleSites->Fetch())
{
	if (!in_array($arAccessibleSite["SITE_ID"], $arAccessibleSites))
	{
		$arAccessibleSites[] = $arAccessibleSite["SITE_ID"];
	}
}

$sAdmin = new CAdminSorting($tableId, "ORDER_ID", "DESC");
$lAdmin = new CAdminList($tableId, $sAdmin);
$by = mb_strtoupper($sAdmin->getField());
$order = mb_strtoupper($sAdmin->getOrder());
$sort = [
	$by => $order,
];
if ($by !== 'ID')
{
	$sort['ID'] = 'ASC';
}

$filterFields = [
	'filter_payment_id_from',
	'filter_payment_id_to',
	'filter_order_id_from',
	'filter_order_id_to',
	'filter_date_paid_from',
	'filter_date_paid_to',
	'filter_order_paid',
	'filter_site_id',
	'filter_pay_system_id',
	'filter_company_id',
	'filter_account_num',
	'filter_sum_from',
	'filter_sum_to',
	'filter_currency',
	'filter_pay_voucher_num',
	'filter_user_id',
	'filter_user_login',
	'filter_user_email'
];

$currentFilter = $lAdmin->InitFilter($filterFields);
foreach ($filterFields as $fieldName)
{
	if ($fieldName === 'filter_pay_system_id')
	{
		$currentFilter[$fieldName] ??= [];
		if (!is_array($currentFilter[$fieldName]))
		{
			$currentFilter[$fieldName] = [];
		}
	}
	else
	{
		$currentFilter[$fieldName] = (string)($currentFilter[$fieldName] ?? '');
	}
}

$arFilter = [];
$runtimeFields = [];

$filter_payment_id_from = (int)$currentFilter['filter_payment_id_from'];
$filter_payment_id_to = (int)$currentFilter['filter_payment_id_to'];
if ($filter_payment_id_from > 0 && $filter_payment_id_to > 0)
{
	$arFilter['><ID'] = [
		$filter_payment_id_from,
		$filter_payment_id_to,
	];
}

$filter_order_id_from = (int)($currentFilter['filter_order_id_from']);
$filter_order_id_to = (int)($currentFilter['filter_order_id_to']);
if ($filter_order_id_from > 0 && $filter_order_id_to > 0)
{
	$arFilter['><ORDER_ID'] = [
		$filter_order_id_from,
		$filter_order_id_to,
	];
}

$filter_sum_from = (float)($currentFilter['filter_sum_from']);
$filter_sum_to = (float)($currentFilter['filter_sum_to']);
if ($filter_sum_from > 0)
{
	$arFilter['>=SUM'] = $filter_sum_from;
}
if ($filter_sum_to > 0)
{
	$arFilter['<=SUM'] = $filter_sum_to;
}

if ($currentFilter['filter_order_paid'] !== '' && $currentFilter['filter_order_paid'] !== 'NOT_REF')
{
	$arFilter['PAID'] = $currentFilter['filter_order_paid'];
}
if (
	$currentFilter['filter_site_id'] !== ''
	&& $currentFilter['filter_site_id'] !== 'NOT_REF'
	&& ($saleModulePermissions >= "W" || in_array($currentFilter['filter_site_id'], $arAccessibleSites))
)
{
	$arFilter['ORDER.LID'] = $currentFilter['filter_site_id'];
}
elseif ($saleModulePermissions < "W")
{
	$arFilter['ORDER.LID'] = $arAccessibleSites;
}
if (
	!empty($currentFilter['filter_pay_system_id'])
	&& $currentFilter['filter_pay_system_id'][0] !== 'NOT_REF'
)
{
	$arFilter['PAY_SYSTEM_ID'] = $currentFilter['filter_pay_system_id'];
}
if ($currentFilter['filter_company_id'] !== '' && $currentFilter['filter_company_id'] !== 'NOT_REF')
{
	$arFilter['COMPANY_ID'] = $currentFilter['filter_company_id'];
}
if ($currentFilter['filter_account_num'] !== '')
{
	$arFilter['ORDER.ACCOUNT_NUMBER'] = $currentFilter['filter_account_num'];
}

if ($currentFilter['filter_currency'] !== '' && $currentFilter['filter_currency'] !== 'NOT_REF')
{
	$arFilter['CURRENCY'] = $currentFilter['filter_currency'];
}
if ($currentFilter['filter_pay_voucher_num'] !== '')
{
	$arFilter['PAY_VOUCHER_NUM'] = $currentFilter['filter_pay_voucher_num'];
}
if ($currentFilter['filter_user_login'] !== '')
{
	$arFilter["ORDER.USER.LOGIN"] = $currentFilter['filter_user_login'];
}
if ($currentFilter['filter_user_email'] !== '')
{
	$arFilter["ORDER.USER.EMAIL"] = $currentFilter['filter_user_email'];
}

$filter_user_id = (int)$currentFilter['filter_user_id'];
if ($filter_user_id > 0)
{
	$arFilter["ORDER.USER_ID"] = $filter_user_id;
}
if ($currentFilter['filter_date_paid_from'] !== '')
{
	$arFilter[">=DATE_PAID"] = $currentFilter['filter_date_paid_from'];
}
if ($currentFilter['filter_date_paid_to'] !== '')
{
	if($arDate = ParseDateTime($currentFilter['filter_date_paid_to'], CSite::GetDateFormat("FULL", SITE_ID)))
	{
		if(mb_strlen($currentFilter['filter_date_paid_to']) < 11)
		{
			$arDate["HH"] = 23;
			$arDate["MI"] = 59;
			$arDate["SS"] = 59;
		}

		$currentFilter['filter_date_paid_to'] = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
		$arFilter["<=DATE_PAID"] = $currentFilter['filter_date_paid_to'];
	}
	else
	{
		$currentFilter['filter_date_paid_to'] = '';
	}
}

$allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view'));
$allowedStatusesUpdate = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('update'));

if($saleModulePermissions == "P")
{
	$userCompanyList = \Bitrix\Sale\Services\Company\Manager::getUserCompanyList($USER->GetID());

	$arFilter[] = array(
		'LOGIC' => 'OR',
		'=COMPANY_ID' => $userCompanyList,
		'=ORDER.RESPONSIBLE_ID' => intval($USER->GetID()),
		'=ORDER.COMPANY_ID' => $userCompanyList,
		'=RESPONSIBLE_ID' => intval($USER->GetID())
	);
}


if($saleModulePermissions < "W")
{
	$statusList = array();
	if (!empty($allowedStatusesView) && is_array($allowedStatusesView))
	{
		$statusList = $allowedStatusesView;
	}
	if (!empty($allowedStatusesUpdate) && is_array($allowedStatusesUpdate))
	{
		$statusList = array_merge($statusList, $allowedStatusesUpdate);
	}
	$arFilter["=ORDER.STATUS_ID"] = array_unique($statusList);
}

if (($ids = $lAdmin->GroupAction()) && !$bReadOnly)
{
	$payments = array();

	$select = array(
		'ID', 'ORDER_ID'
	);

	$params = array(
		'select' => $select,
		'filter' => array_merge($arFilter, array('ID' => $ids)),
		'order'  => $sort,
		'limit'  => 1000,
		'runtime' => $runtimeFields
	);

	$dbResultList = PaymentTable::getList($params);

	$payments = $dbResultList->fetchAll();
	foreach ($payments as $item)
	{
		if ($item['ID'] <= 0 || $item['ORDER_ID'] <= 0)
			continue;

		$registry = \Bitrix\Sale\Registry::getInstance(\Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER);

		/** @var Order $orderClass */
		$orderClass = $registry->getOrderClassName();

		/** @var \Bitrix\Sale\Order $currentOrder */
		$currentOrder = $orderClass::load($item['ORDER_ID']);

		/** @var \Bitrix\Sale\PaymentCollection $paymentCollection */
		$paymentCollection = $currentOrder->getPaymentCollection();

		/** @var \Bitrix\Sale\Payment $payment */
		$payment = $paymentCollection->getItemById($item['ID']);
		if (!$payment)
			continue;

		switch ($_REQUEST['action'])
		{
			case "delete":
				@set_time_limit(0);

				$result = $payment->delete();
				if ($result->isSuccess())
					$result = $currentOrder->save();

				if (!$result->isSuccess())
					$lAdmin->AddGroupError(implode('\n', $result->getErrorMessages()));

				break;
			case "paid":
			case "paid_n":
				@set_time_limit(0);
				$paid = $_REQUEST['action'] === 'paid' ? 'Y' : 'N';
				$result = $payment->setPaid($paid);
				if ($result->isSuccess())
					$result = $currentOrder->save();

				if (!$result->isSuccess())
					$lAdmin->AddGroupError(implode('\n', $result->getErrorMessages()));

				break;
		}
	}
}

$headers = array(
	array(
		"id"        => "DATE_PAID",
		"content"   => GetMessage("SALE_ORDER_DATE_PAID"),
		"sort"      => "DATE_PAID",
		"default"   => true
	),
	array(
		"id"        => "ID",
		"content"   => "ID",
		"sort"      => "ID",
		"default"   => true
	),
	array(
		"id"        => "ORDER_ID",
		"content"   => GetMessage("SALE_ORDER_ID"),
		"sort"      => "ORDER_ID",
		"default"   => true
	),
	array(
		"id"        => "ACCOUNT_NUMBER",
		"content"   => GetMessage("SALE_ACCOUNT_NUMBER"),
		"sort"      => "ORDER.ACCOUNT_NUMBER",
		"default"   => false
	),
	array(
		"id"        => "ORDER_USER_NAME",
		"content"   => GetMessage("SALE_ORDER_USER_NAME"),
		"sort"      => "ORDER_USER_NAME",
		"default"   => true
	),
	array(
		"id"        => "PAID",
		"content"   => GetMessage("SALE_ORDER_PAID"),
		"sort"      => "PAID",
		"default"   => true
	),
	array(
		"id"        => "PAY_SYSTEM_NAME",
		"content"   => GetMessage("SALE_ORDER_PAY_SYSTEM_NAME"),
		"sort"      => "PAY_SYSTEM_NAME",
		"default"   => true
	),
	array(
		"id"        => "SUM",
		"content"   => GetMessage("SALE_ORDER_SUM"),
		"sort"      => "SUM",
		"default"   => true
	),
	array(
		"id"        => "COMPANY_BY",
		"content"   => GetMessage("SALE_ORDER_COMPANY_BY"),
		"sort"      => "COMPANY_BY.NAME",
		"default"   => true
	),
	array(
		"id"        => "PAY_VOUCHER_NUM",
		"content"   => GetMessage("SALE_ORDER_PAY_VOUCHER_NUM"),
		"sort"      => "PAY_VOUCHER_NUM",
		"default"   => true
	),
	array(
		"id"        => "RESPONSIBLE_BY",
		"content"   => GetMessage("SALE_ORDER_RESPONSIBLE_BY"),
		"sort"      => "",
		"default"   => true
	),
	array(
		"id"        => "PS_STATUS",
		"content"   => GetMessage("SALE_ORDER_PS_STATUS"),
		"sort"      => "PS_STATUS",
		"default"   => false
	),
	array(
		"id"        => "PS_STATUS_CODE",
		"content"   => GetMessage("SALE_ORDER_PS_STATUS_CODE"),
		"sort"      => "PS_STATUS_CODE",
		"default"   => false
	),
	array(
		"id"        => "PS_STATUS_DESCRIPTION",
		"content"   => GetMessage("SALE_ORDER_PS_STATUS_DESCRIPTION"),
		"sort"      => "PS_STATUS_DESCRIPTION",
		"default"   => false
	),
	array(
		"id"        => "PS_STATUS_MESSAGE",
		"content"   => GetMessage("SALE_ORDER_PS_STATUS_MESSAGE"),
		"sort"      => "PS_STATUS_MESSAGE",
		"default"   => false
	),
	array(
		"id"        => "PS_SUM",
		"content"   => GetMessage("SALE_ORDER_PS_SUM"),
		"sort"      => "PS_SUM",
		"default"   => false
	),
	array(
		"id"        => "PS_CURRENCY",
		"content"   => GetMessage("SALE_ORDER_PS_CURRENCY"),
		"sort"      => "PS_CURRENCY",
		"default"   => false
	),
	array(
		"id"        => "PS_RESPONSE_DATE",
		"content"   => GetMessage("SALE_ORDER_PS_RESPONSE_DATE"),
		"sort"      => "PS_RESPONSE_DATE",
		"default"   => false
	),
	array(
		"id"        => "PAY_VOUCHER_DATE",
		"content"   => GetMessage("SALE_ORDER_PAY_VOUCHER_DATE"),
		"sort"      => "PAY_VOUCHER_DATE",
		"default"   => false
	),
	array(
		"id"        => "DATE_PAY_BEFORE",
		"content"   => GetMessage("SALE_ORDER_DATE_PAY_BEFORE"),
		"sort"      => "DATE_PAY_BEFORE",
		"default"   => false
	),
	array(
		"id"        => "DATE_BILL",
		"content"   => GetMessage("SALE_ORDER_DATE_BILL"),
		"sort"      => "DATE_BILL",
		"default"   => false
	),
	array(
		"id"        => "PAY_SYSTEM_NAME",
		"content"   => GetMessage("SALE_ORDER_PAY_SYSTEM_NAME"),
		"sort"      => "PAY_SYSTEM_NAME",
		"default"   => false
	)
);


$select = array(
	'*',
	'COMPANY_BY_NAME' => 'COMPANY_BY.NAME',
	'RESPONSIBLE_BY_NAME' => 'RESPONSIBLE_BY.NAME',
	'RESPONSIBLE_BY_LAST_NAME' => 'RESPONSIBLE_BY.LAST_NAME',
	'ORDER_ACCOUNT_NUMBER' => 'ORDER.ACCOUNT_NUMBER',
	'ORDER_USER_LOGIN' => 'ORDER.USER.LOGIN',
	'ORDER_USER_NAME' => 'ORDER.USER.NAME',
	'ORDER_USER_LAST_NAME' => 'ORDER.USER.LAST_NAME',
	'ORDER_USER_ID' => 'ORDER.USER_ID',
	'ORDER_RESPONSIBLE_ID' => 'ORDER.RESPONSIBLE_ID',
);

$params = [
	'select' => $select,
	'filter' => $arFilter,
	'order'  => $sort,
	'runtime' => $runtimeFields
];

$usePageNavigation = true;
$navyParams = array();

$navyParams = CDBResult::GetNavParams(CAdminResult::GetNavSize($tableId));
if ($navyParams['SHOW_ALL'])
{
	$usePageNavigation = false;
}
else
{
	$navyParams['PAGEN'] = (int)$navyParams['PAGEN'];
	$navyParams['SIZEN'] = (int)$navyParams['SIZEN'];
}

if ($usePageNavigation)
{
	$params['limit'] = $navyParams['SIZEN'];
	$params['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
}

$totalPages = 0;
$totalCount = 0;
if ($usePageNavigation)
{
	$countQuery = new \Bitrix\Main\Entity\Query(PaymentTable::getEntity());
	$countQuery->addSelect(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)'));
	$countQuery->setFilter($params['filter']);

	foreach ($params['runtime'] as $key => $field)
		$countQuery->registerRuntimeField($key, clone $field);

	$totalCount = $countQuery->exec()->fetch();
	unset($countQuery);
	$totalCount = (int)$totalCount['CNT'];

	if ($totalCount > 0)
	{
		$totalPages = ceil($totalCount/$navyParams['SIZEN']);

		if ($navyParams['PAGEN'] > $totalPages)
			$navyParams['PAGEN'] = $totalPages;

		$params['limit'] = $navyParams['SIZEN'];
		$params['offset'] = $navyParams['SIZEN']*($navyParams['PAGEN']-1);
	}
	else
	{
		$navyParams['PAGEN'] = 1;
		$params['limit'] = $navyParams['SIZEN'];
		$params['offset'] = 0;
	}
}

$dbResultList = new CAdminResult(PaymentTable::getList($params), $tableId);

if ($usePageNavigation)
{
	$dbResultList->NavStart($params['limit'], $navyParams['SHOW_ALL'], $navyParams['PAGEN']);
	$dbResultList->NavRecordCount = $totalCount;
	$dbResultList->NavPageCount = $totalPages;
	$dbResultList->NavPageNomer = $navyParams['PAGEN'];
}
else
{
	$dbResultList->NavStart();
}

$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("group_admin_nav")));

$lAdmin->AddHeaders($headers);

$visibleHeaders = $lAdmin->GetVisibleHeaderColumns();

while ($payment = $dbResultList->Fetch())
{

	if ($payment['ORDER_USER_NAME'] || $payment['ORDER_USER_LAST_NAME'])
		$userName = htmlspecialcharsbx($payment['ORDER_USER_NAME'])." ".htmlspecialcharsbx($payment['ORDER_USER_LAST_NAME']);
	else
		$userName = htmlspecialcharsbx($payment['ORDER_USER_LOGIN']);

	$row =& $lAdmin->AddRow($payment['ID'], $payment);

	$row->AddField("ID", "<a href=\"sale_order_payment_edit.php?order_id=".$payment['ORDER_ID']."&payment_id=".$payment['ID']."&lang=".$lang.GetFilterParams("filter_")."\">".$payment['ID']."</a>");
	$row->AddField("ORDER_ID", "<a href=\"sale_order_edit.php?ID=".$payment['ORDER_ID']."&lang=".$lang.GetFilterParams("filter_")."\">".$payment['ORDER_ID']."</a>");
	$row->AddField("ACCOUNT_NUMBER", "<a href=\"sale_order_edit.php?ID=".$payment['ORDER_ID']."&lang=".$lang.GetFilterParams("filter_")."\">".htmlspecialcharsbx($payment['ORDER_ACCOUNT_NUMBER'])."</a>");
	$row->AddField("SUM", \CCurrencyLang::CurrencyFormat($payment['SUM'], $payment['CURRENCY']));
	$row->AddField("PAID", ($payment['PAID'] == 'Y') ? GetMessage("PAYMENT_ORDER_PAID_YES"): GetMessage("PAYMENT_ORDER_PAID_NO"));
	$row->AddField("PAY_SYSTEM_NAME", "<a href='sale_pay_system_edit.php?ID=".$payment['PAY_SYSTEM_ID']."&lang=".$lang."'>".htmlspecialcharsbx($payment['PAY_SYSTEM_NAME'])."</a>");
	$row->AddField("COMPANY_BY", "<a href='sale_pay_system_edit.php?ID=".$payment['COMPANY_ID']."&lang=".$lang."'>".htmlspecialcharsbx($payment['COMPANY_BY_NAME'])."</a>");
	$row->AddField("ORDER_USER_NAME", "<a href='/bitrix/admin/user_edit.php?ID=".$payment['ORDER_USER_ID']."&lang=".$lang."'>".$userName."</a>");
	$row->AddField("RESPONSIBLE_BY", "<a href=\"user_edit.php?ID=".$payment['RESPONSIBLE_ID']."\">".htmlspecialcharsbx($payment['RESPONSIBLE_BY_NAME'])." ".htmlspecialcharsbx($payment['RESPONSIBLE_BY_LAST_NAME'])."</a>");
	$arActions = array();
	$arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("EDIT_PAYMENT_ALT"), "ACTION"=>$lAdmin->ActionRedirect("sale_order_payment_edit.php?order_id=".$payment['ORDER_ID']."&payment_id=".$payment['ID']."&lang=".$lang.GetFilterParams("filter_").""), "DEFAULT"=>true);

	if(!$bReadOnly)
	{
		$arActions[] = array("SEPARATOR" => true);
		$arActions[] = array("ICON"=>"delete", "TEXT"=>GetMessage("DELETE_PAYMENT_ALT"), "ACTION"=>"if(confirm('".GetMessageJS('DELETE_PAYMENT_CONFIRM')."')) ".$lAdmin->ActionDoGroup($payment['ID'], "delete", "order_id=".$payment['ORDER_ID']));
	}

	$row->AddActions($arActions);
}

$lAdmin->AddGroupActionTable([
	"delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
	"paid" => GetMessage("SALE_ORDER_PAYMENT_PAID"),
	"paid_n" => GetMessage("SALE_ORDER_PAYMENT_PAID_N"),
]);

$lAdmin->AddAdminContextMenu();

$lAdmin->AddFooter([
	[
		"title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"),
		"value" => $dbResultList->SelectedRowsCount(),
	],
	[
		"counter" => true,
		"title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"),
		"value" => "0",
	],
]);

$lAdmin->CheckListMode();

$APPLICATION->SetTitle(GetMessage("PAYMENT_TITLE"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
?>
<form name="find_form" method="GET" action="<?=$curPage?>?">
<?php
$filterFields = array(
	"filter_order_id" => GetMessage("PAYMENT_ORDER_ID"),
	"filter_order_paid" => GetMessage("PAYMENT_ORDER_PAID"),
	"filter_date_paid" => GetMessage("PAYMENT_DATE_PAID"),
	"filter_site_id" => GetMessage("PAYMENT_SITE_ID"),
	"filter_pay_system_id" => GetMessage("PAYMENT_PAY_SYSTEM_ID"),
	"filter_account_num" => GetMessage("PAYMENT_ACCOUNT_NUM"),
	"filter_sum" => GetMessage("PAYMENT_PRICE"),
	"filter_currency" => GetMessage("PAYMENT_CURRENCY"),
	"filter_pay_voucher_num" => GetMessage("PAYMENT_VOUCHER_NUM"),
	"filter_user_id" => GetMessage("SALE_PAYMENT_F_USER_ID"),
	"filter_user_login" => GetMessage("SALE_PAYMENT_F_USER_LOGIN"),
	"filter_user_email" => GetMessage("SALE_PAYMENT_F_USER_EMAIL")
);

$oFilter = new CAdminFilter(
	$tableId."_filter",
	$filterFields
);

$oFilter->Begin();
?>
<tr>
	<td>ID:</td>
	<td>
		<script>
			function changeFilterPaymentIdFrom()
			{
				if (document.find_form.filter_payment_id_to.value.length<=0)
					document.find_form.filter_payment_id_to.value = document.find_form.filter_payment_id_from.value;
			}
		</script>
		<?=GetMessage("PAYMENT_ORDER_ID_FROM");?>
		<input type="text" name="filter_payment_id_from" onchange="changeFilterPaymentIdFrom()" value="<?= htmlspecialcharsbx($currentFilter['filter_payment_id_from']); ?>" size="10">
		<?=GetMessage("PAYMENT_ORDER_ID_TO");?>
		<input type="text" name="filter_payment_id_to" value="<?= htmlspecialcharsbx($currentFilter['filter_payment_id_to']); ?>" size="10">
	</td>
</tr>
<tr>
	<td><?=GetMessage("PAYMENT_ORDER_ID");?>:</td>
	<td>
		<script>
			function changeFilterOrderIdFrom()
			{
				if (document.find_form.filter_order_id_to.value.length<=0)
					document.find_form.filter_order_id_to.value = document.find_form.filter_order_id_from.value;
			}
		</script>
		<?=GetMessage("PAYMENT_ORDER_ID_FROM");?>
		<input type="text" name="filter_order_id_from" onchange="changeFilterOrderIdFrom()" value="<?= htmlspecialcharsbx($currentFilter['filter_order_id_from']); ?>" size="10">
		<?=GetMessage("PAYMENT_ORDER_ID_TO");?>
		<input type="text" name="filter_order_id_to" value="<?= htmlspecialcharsbx($currentFilter['filter_order_id_to']); ?>" size="10">
	</td>
</tr>
<tr>
	<td><?= GetMessage("PAYMENT_ORDER_PAID")?>:</td>
	<td>
		<select name="filter_order_paid">
			<option value="NOT_REF">(<?=GetMessage("PAYMENT_ORDER_PAID_ALL");?>)</option>
			<option value="Y"<?= ($currentFilter['filter_order_paid'] === 'Y' ? ' selected' : ''); ?>><?=GetMessage("PAYMENT_ORDER_PAID_YES");?></option>
			<option value="N"<?= ($currentFilter['filter_order_paid'] === 'N' ? ' selected' : ''); ?>><?=GetMessage("PAYMENT_ORDER_PAID_NO");?></option>
		</select>
	</td>
</tr>
<tr>
	<td><?= GetMessage("PAYMENT_DATE_PAID"); ?>:</td>
	<td>
		<?= CalendarPeriod(
			"filter_date_paid_from",
			htmlspecialcharsbx($currentFilter['filter_date_paid_from']),
			"filter_date_paid_to",
			htmlspecialcharsbx($currentFilter['filter_date_paid_to']),
			"find_form",
			"Y"
		); ?>
	</td>
</tr>
<?php
	$res = CSite::GetList();
	$siteInfo = array();
	while ($site = $res->Fetch())
	{
		if ($saleModulePermissions >= "W" || in_array($site['ID'], $arAccessibleSites))
		{
			$siteInfo[$site['ID']] = $site['SITE_NAME'];
		}
	}
?>
<tr>
	<td><?=GetMessage("PAYMENT_SITE_ID");?>:</td>
	<td>
		<select name="filter_site_id">
			<option value="NOT_REF">(<?=GetMessage("PAYMENT_ORDER_PAID_ALL");?>)</option>
			<?php
			foreach ($siteInfo as $id => $siteName)
				echo '<option value="'.$id.'">'.htmlspecialcharsbx($siteName).'</option>';
			?>
		</select>
	</td>
</tr>
<?php
	$params = [
		'select' => ['ID', 'NAME'],
		'filter' => ['ACTIVE' => 'Y'],
		'order' => ["SORT"=>"ASC", "NAME"=>"ASC"]
	];
	$res = \Bitrix\Sale\PaySystem\Manager::getList($params);
	$paySystems = $res->fetchAll();
?>
<tr>
	<td><?=GetMessage("PAYMENT_PAY_SYSTEM_ID");?>:</td>
	<td>
		<select multiple name="filter_pay_system_id[]">
			<option value="NOT_REF">(<?=GetMessage("PAYMENT_ORDER_PAID_ALL");?>)</option>
			<?php
			$ptRes = \Bitrix\Sale\Internals\PersonTypeTable::getList([
				'order' => ["SORT"=>"ASC", "NAME"=>"ASC"]
			]);

			$personTypes = [];
			while ($personType = $ptRes->fetch())
				$personTypes[$personType['ID']] = $personType;

			foreach ($paySystems as $paySystem):
				$dbRestRes = \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::getList([
					'select' => ['PARAMS'],
					'filter' => [
						'=CLASS_NAME' => '\\'.\Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::class,
						'SERVICE_ID' => $paySystem['ID'],
					]
				]);

				$ptParams = $dbRestRes->fetch();
				$personTypeString = '';
				if (isset($ptParams['PARAMS']['PERSON_TYPE_ID']) && is_array($ptParams['PARAMS']['PERSON_TYPE_ID']))
				{
					$psPt = array();
					foreach ($ptParams['PARAMS']['PERSON_TYPE_ID'] as $id)
						$psPt[] = ((mb_strlen($personTypes[$id]['NAME']) > 15) ? mb_substr($personTypes[$id]['NAME'], 0, 6)."...".mb_substr($personTypes[$id]['NAME'], -7) : $personTypes[$id]['NAME'])."/".$personTypes[$id]["LID"]."";
					if ($psPt)
						$personTypeString = ' ('.join(', ', $psPt).')';
				}
				?><option title="<?= htmlspecialcharsbx($paySystem["NAME"].$personTypeString); ?>" value="<?= htmlspecialcharsbx($paySystem["ID"]); ?>"<?= (in_array($paySystem["ID"], $currentFilter['filter_pay_system_id']) ? ' selected' : ''); ?>>[<?= htmlspecialcharsbx($paySystem["ID"]); ?>] <?= htmlspecialcharsbx($paySystem["NAME"].$personTypeString); ?></option><?php
			endforeach;
			?>
		</select>
	</td>
</tr>
<?php
	$params = [
		'select' => [
			'ID',
			'NAME',
		],
	];
	$res = \Bitrix\Sale\Internals\CompanyTable::getList($params);
	$companies = $res->fetchAll();
?>
<tr>
	<td><?=GetMessage("PAYMENT_ACCOUNT_NUM");?>:</td>
	<td>
		<input type="text" name="filter_account_num" value="<?= htmlspecialcharsbx($currentFilter['filter_account_num']); ?>">
	</td>
</tr>
<tr>
	<td><?= GetMessage("PAYMENT_PRICE");?>:</td>
	<td>
		<?= GetMessage("PAYMENT_PRICE_FROM");?>
		<input type="text" name="filter_sum_from" value="<?= htmlspecialcharsbx($currentFilter['filter_sum_from']); ?>" size="3">

		<?= GetMessage("PAYMENT_PRICE_TO");?>
		<input type="text" name="filter_sum_to" value="<?= htmlspecialcharsbx($currentFilter['filter_sum_to']); ?>" size="3">
	</td>
</tr>
<tr>
	<td><?= GetMessage("PAYMENT_CURRENCY");?>:</td>
	<td>
		<?= CCurrency::SelectBox(
			"filter_currency",
			htmlspecialcharsbx($currentFilter['filter_currency']),
			GetMessage("PAYMENT_CURRENCY_ALL"),
			false,
			"",
			""
		); ?>
	</td>
</tr>
<tr>
	<td><?= GetMessage("PAYMENT_VOUCHER_NUM");?>:</td>
	<td>
		<input type="text" name="filter_pay_voucher_num" value="<?= htmlspecialcharsbx($currentFilter['filter_pay_voucher_num']); ?>">
	</td>
</tr>
<tr>
	<td><?= \Bitrix\Main\Localization\Loc::getMessage("SALE_PAYMENT_F_USER_ID"); ?>:</td>
	<td>
		<?= FindUserID("filter_user_id", $currentFilter['filter_user_id'], "", "find_form"); ?>
	</td>
</tr>
<tr>
	<td><?= \Bitrix\Main\Localization\Loc::getMessage("SALE_PAYMENT_F_USER_LOGIN"); ?>:</td>
	<td>
		<input type="text" name="filter_user_login" value="<?= htmlspecialcharsbx($currentFilter['filter_user_login']); ?>" size="40">
	</td>
</tr>
<tr>
	<td><?= \Bitrix\Main\Localization\Loc::getMessage("SALE_PAYMENT_F_USER_EMAIL"); ?>:</td>
	<td>
		<input type="text" name="filter_user_email" value="<?= htmlspecialcharsbx($currentFilter['filter_user_email']); ?>" size="40">
	</td>
</tr>
<?php
$oFilter->Buttons([
	"table_id" => $tableId,
	"url" => $curPage,
	"form" => "find_form"
]);

$oFilter->End();
?>
</form>
<?php
$lAdmin->DisplayList();

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

Youez - 2016 - github.com/yon3zu
LinuXploit