Модуль: 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 = ''.Loc::getMessage('SALE_ORDER_PAYMENT_RETURN_ACCOUNT').' ';
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 .= ''.htmlspecialcharsbx($service->getField('NAME')).' ';
}
$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').':
'.$option.'
'.$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').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_STATUS').'
';
if ($data['CAN_PRINT_CHECK'] == 'Y' && $data['ID'] > 0)
{
$result .= '
'.Loc::getMessage('SALE_ORDER_PAYMENT_CHECK_LINK_TITLE').'
';
}
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').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS').':
'.$data['PS_STATUS'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_CODE').':
'.$data['PS_STATUS_CODE'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_DESCRIPTION').':
'.$data['PS_STATUS_DESCRIPTION'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_CURRENCY').':
'.$data['PS_CURRENCY'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_MESSAGE').':
'.$data['PS_STATUS_MESSAGE'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_SUM').':
'.$data['PS_SUM'].'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_DATE').':
'.$data['PS_RESPONSE_DATE'].'
';
}
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;
}