• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/blocks/orderpayment.php
  • Класс: BitrixSaleHelpersAdminBlocksOrderPayment
  • Вызов: OrderPayment::prepareData
static function prepareData($item, $error = false)
{
	/** @var $item BitrixSalePayment */

	global $USER, $APPLICATION;
	static $users = array();
	static $userCompanyList = array();

	$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);
	/** @var SaleOrder $orderClass */
	$orderClass = $registry->getOrderClassName();

	if (is_null(self::$order))
		self::$order = $item->getCollection()->getOrder();

	$fields = ($error) ? self::$defaultFields : $item->getFieldValues();

	$fields['EMP_PAID_ID_NAME'] = '';
	$fields['EMP_PAID_ID_LAST_NAME'] = '';

	$empPaidId = (int)($fields['EMP_PAID_ID'] ?? 0);
	if ($empPaidId > 0)
	{
		if (!array_key_exists($item->getField('EMP_PAID_ID'), $users))
			$users[$empPaidId] = $USER->GetByID($empPaidId)->Fetch();
		$fields['EMP_PAID_ID_NAME'] = $users[$empPaidId]['NAME'];
		$fields['EMP_PAID_ID_LAST_NAME'] = $users[$empPaidId]['LAST_NAME'];
	}

	$fields['ORDER_ID'] = self::$order->getId();
	$fields['SUM'] = $item->getSum();
	$fields['ORDER_PRICE'] = self::$order->getPrice();
	$fields['ORDER_PAYMENT_SUM'] = $item->getCollection()->getSum();
	$fields['CURRENCY'] = self::$order->getCurrency();
	$fields['PERSON_TYPE_ID'] = self::$order->getPersonTypeId();
	$fields['SITE_ID'] = self::$order->getSiteId();
	$fields['STATUS_ID'] = self::$order->getField('STATUS_ID');
	$fields['ORDER_LOCKED'] = $orderClass::isLocked($fields['ORDER_ID']);

	$saleModulePermissions = $APPLICATION->GetGroupRight("sale");

	if($saleModulePermissions == "P")
	{
		if (empty($userCompanyList))
		{
			$userCompanyList = CompanyManager::getUserCompanyList($USER->GetID());
		}

		$isUserResponsible = false;

		if (self::$order->getField('RESPONSIBLE_ID') == $USER->GetID()
			|| ($fields['RESPONSIBLE_ID'] == $USER->GetID()))
		{
			$isUserResponsible = true;
		}

		$isAllowCompany = in_array($item->getField('COMPANY_ID'), $userCompanyList) || in_array(self::$order->getField('COMPANY_ID'), $userCompanyList);


		if (!$isUserResponsible && !$isAllowCompany)
		{
			foreach ($fields as $fieldName => $fieldValue)
			{
				if (in_array($fieldName, static::getDisallowFields()))
				{
					unset($fields[$fieldName]);
				}
			}
		}

		$fields['IS_USER_RESPONSIBLE'] = $isUserResponsible;
		$fields['IS_ALLOW_COMPANY'] = $isAllowCompany;
	}

	$fields['PAY_SYSTEM_LIST'] = self::getPaySystemList($item);

	$fields['CHECK'] = CheckManager::getCheckInfo($item);

	$paySystemId = (int)($fields['PAY_SYSTEM_ID'] ?? 0);
	$fields['CAN_PRINT_CHECK'] = $fields['PAY_SYSTEM_LIST'][$paySystemId]['CAN_PRINT_CHECK'] ?? 'N';
	if (SaleCashboxManager::isEnabledPaySystemPrint())
	{
		$fields['CAN_PRINT_CHECK'] = 'N';
	}

	$dbRes = CashboxTable::getList(array('filter' => array('=ACTIVE' => 'Y', '=ENABLED' => 'Y')));
	$fields['HAS_ENABLED_CASHBOX'] = ($dbRes->fetch()) ? 'Y' : 'N';

	$service = $item->getPaySystem();
	$fields['HAS_PREVIEW'] = $service && $service->isAffordPdf();

	return $fields;
}