• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/blocks/orderpayment.php
  • Класс: BitrixSaleHelpersAdminBlocksOrderPayment
  • Вызов: OrderPayment::getEditTemplate
static function getEditTemplate($data, $index, $post = array())
{
	global $USER, $APPLICATION;

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

	$paid = ($post) ? htmlspecialcharsbx($post['PAID']) : $data['PAID'];
	$id = ($post) ? (int)$post['PAYMENT_ID'] : ($data['ID'] ?? 0);
	$priceCod = ($post) ? htmlspecialcharsbx($post['PRICE_COD']) : ($data['PRICE_COD'] ?? 0);
	$paidString = ($paid == 'Y') ? 'YES' : 'NO';
	if (!$post)
	{
		if ($data['SUM'] > 0)
			$sum = $data['SUM'];
		else
			$sum = ($data['ORDER_PRICE'] - $data['ORDER_PAYMENT_SUM'] <= 0) ? 0 : $data['ORDER_PRICE'] - $data['ORDER_PAYMENT_SUM'];
	}
	else
	{
		$sum = $post['SUM'];
	}

	$psData = self::getPaySystemParams(
		(isset($post['PAY_SYSTEM_ID'])) ? $post['PAY_SYSTEM_ID'] : ($data['PAY_SYSTEM_ID'] ?? 0)
	);

	if (isset($psData["LOGOTIP_PATH"]))
		$data['PAY_SYSTEM_LOGOTIP'] = $psData["LOGOTIP_PATH"];

	$allowedOrderStatusesPayment = OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('payment'));
	$isAllowPayment = in_array($data["STATUS_ID"], $allowedOrderStatusesPayment);
	$triangle = ($isAllowPayment) ? '' : '';
	$class = ($paid != 'Y') ? 'notpay' : '';
	$class .= (!$isAllowPayment) ? ' not_active' : '';

	$paymentStatus = ''.Loc::getMessage('SALE_ORDER_PAYMENT_STATUS_'.$paidString).''.$triangle.'';

	$note = BeginNote();
	$note .= Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_ALERT');
	$note .= EndNote();

	$hiddenPaySystemInnerId = '';
	if ($index == 1)
		$hiddenPaySystemInnerId = '';

	$notPaidBlock = ($paid == 'N' && !empty($data['EMP_PAID_ID'])) ? '' : 'style="display:none;"';

	$return = isset($post['IS_RETURN']) && $post['IS_RETURN'] === 'Y' ? '' : 'style="display:none;"';

	$option = '';

	if (isset($data['PAY_SYSTEM_ID']) && $data['PAY_SYSTEM_ID'] != PaySystemManager::getInnerPaySystemId())
	{
		/** @var BitrixSalePaySystemService $service */
		$service = PaySystemManager::getObjectById($data['PAY_SYSTEM_ID']);
		if ($service && $service->isRefundable())
			$option .= '';
	}

	$payReturnNum = $post['PAY_RETURN_NUM'] ?? $data['PAY_RETURN_NUM'] ?? '';
	$payReturnDate = $post['PAY_RETURN_DATE'] ?? $data['PAY_RETURN_DATE'] ?? '';
	$payReturnComment = $post['PAY_RETURN_COMMENT'] ?? $data['PAY_RETURN_COMMENT'] ?? '';

	$returnInformation = '
	
		'.Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_TO').':
		
			
		
	
	
		'.$note.'
	
	
		
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_NUM').':
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_DATE').':
'.Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_COMMENT').':
'; $lang = MainApplication::getInstance()->getContext()->getLanguage(); if ($id > 0) { $dateBill = new Date($data['DATE_BILL']); $title = Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_EDIT_PAYMENT_TITLE', array('#ID#' => $data['ID'], '#DATE_BILL#' => $dateBill)); } else { $title = Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_NEW_PAYMENT_TITLE'); } $disabled = isset($data['PAID']) && $data['PAID'] === 'Y' ? 'readonly' : ''; $companyList = $data['COMPANIES']; $companies = ''; if (!empty($companyList)) { if ($saleModulePermissions == "P") { $userCompanyId = null; $userCompanyList = CompanyManager::getUserCompanyList($USER->GetID()); if (is_array($userCompanyList) && count($userCompanyList) == 1) { $userCompanyId = reset($userCompanyList); $companyName = $data['COMPANIES'][$userCompanyId]["NAME"]." [".$data['COMPANIES'][$userCompanyId]["ID"]."]"; $companies = htmlspecialcharsbx($companyName); } else { foreach ($data['COMPANIES'] as $companyId => $companyData) { $foundCompany = false; if (!empty($userCompanyList) && is_array($userCompanyList)) { foreach ($userCompanyList as $userCompanyId) { if ($userCompanyId == $companyId) { $foundCompany = true; break; } } } if (!$foundCompany) { unset($data['COMPANIES'][$companyId]); } } if (count($data['COMPANIES']) == 1) { $company = reset($data['COMPANIES']); $companies = htmlspecialcharsbx($company["NAME"]." [".$company["ID"]."]"); } } } if (empty($companies)) { $companies = OrderEdit::makeSelectHtmlWithRestricted( 'PAYMENT['.$index.'][COMPANY_ID]', $companyList, isset($post["COMPANY_ID"]) ? $post["COMPANY_ID"] : $data["COMPANY_ID"], true, array( "class" => "adm-bus-select", "id" => "PAYMENT_COMPANY_ID_".$index ) ); } } else { if ($saleModulePermissions >= "W") { $companies = str_replace("#URL#", "/bitrix/admin/sale_company_edit.php?lang=".$lang, Loc::getMessage('SALE_ORDER_PAYMENT_ADD_COMPANY')); } } $checkLink = ''; $checkLink .= ''; if (!empty($data['CHECK'])) { $checkLink .= static::buildCheckHtml($data['CHECK']); } $checkLink .= ''; if ($data['CAN_PRINT_CHECK'] == 'Y' && $data['HAS_ENABLED_CASHBOX'] === 'Y') { $checkLink .= ''.Loc::getMessage('SALE_ORDER_PAYMENT_CHECK_ADD').''; } $isReturn = $post['IS_RETURN'] ?? 'N'; $paySystemId = $post['PAY_SYSTEM_ID'] ?? $data['PAY_SYSTEM_ID'] ?? 0; $payVoucherNum = $post['PAY_VOUCHER_NUM'] ?? $data['PAY_VOUCHER_NUM'] ?? ''; $payVoucherDate = $post['PAY_VOUCHER_DATE'] ?? $data['PAY_VOUCHER_DATE'] ?? ''; $data['DATE_PAID'] ??= ''; $data['EMP_PAID_ID'] ??= ''; $data['EMP_PAID_ID_NAME'] ??= ''; $data['EMP_PAID_ID_LAST_NAME'] ??= ''; $result = '
'.$hiddenPaySystemInnerId.'
'.$title.'
'. ((!isset($data['ID']) || $data['ID'] <= 0) ? '
'.Loc::getMessage('SALE_ORDER_PAYMENT_DELETE').'
' : '') .'
'.Loc::getMessage('SALE_ORDER_PAYMENT_METHOD').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_SYSTEM').': '. OrderEdit::makeSelectHtmlWithRestricted( 'PAYMENT['.$index.'][PAY_SYSTEM_ID]', $data['PAY_SYSTEM_LIST'], $paySystemId, false, array( "class" => "adm-bus-select", "id" => "PAY_SYSTEM_ID_".$index ) ) .'
'.Loc::getMessage('SALE_ORDER_PAYMENT_SUM').'
0 ?: 'style="display: none"').'>
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAYABLE_SUM').': ' . CCurrencyLang::getPriceControl( '', $data['CURRENCY'] ) . '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAYABLE_PRICE_COD').': ' . CCurrencyLang::getPriceControl( '', $data['CURRENCY'] ) . '
'.Loc::getMessage('SALE_ORDER_PAYMENT_STATUS').'
'.$paymentStatus.' '.$data['DATE_PAID'].' '.htmlspecialcharsbx($data['EMP_PAID_ID_NAME']).' '.htmlspecialcharsbx($data['EMP_PAID_ID_LAST_NAME']).'
'.$returnInformation.'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_NUM').':
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_DATE').':
'; if ($data['CAN_PRINT_CHECK'] == 'Y' && $data['ID'] > 0) { $result .= '
'.Loc::getMessage('SALE_ORDER_PAYMENT_CHECK_LINK_TITLE').'
'.$checkLink.'
'; } if (isset($data['PS_STATUS']) && !empty($data['PS_STATUS'])) { $result .= '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_TITLE').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_TOGGLE_DOWN').'
'; } if ($companies !== '') { $result .= '
'.Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_COMPANY').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_COMPANY_BY').': '.$companies.'
'; } $result .= '
'; $refundablePs = array(); if (isset($data['ID']) && $data['ID'] > 0) { $innerService = PaySystemManager::getObjectById(PaySystemManager::getInnerPaySystemId()); $refundablePs[Payment::RETURN_INNER] = $innerService->getField('NAME'); if ($data['PAY_SYSTEM_ID'] != $innerService->getField('ID')) { $service = PaySystemManager::getObjectById($data['PAY_SYSTEM_ID']); if ($service && $service->isRefundable()) $refundablePs[Payment::RETURN_PS] = $service->getField('NAME'); } } $params = array( 'index' => $index, 'functionOnSave' => 'saveInHiddenFields', 'isPaid' => isset($data['PAID']) && $data['PAID'] === 'Y', 'viewForm' => false, 'isAvailableChangeStatus' => $isAllowPayment, 'psToReturn' => $refundablePs ); $result .= self::initJsPayment($params); return $result; }