Модуль: sale
Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/blocks/orderpayment.php
Класс: BitrixSaleHelpersAdminBlocksOrderPayment
Вызов: OrderPayment::getViewTemplate
static function getViewTemplate($data, $index, $form)
{
global $USER;
$isUserResponsible = null;
$isAllowCompany = null;
$link = Link::getInstance();
if (array_key_exists('IS_USER_RESPONSIBLE', $data))
{
$isUserResponsible = $data['IS_USER_RESPONSIBLE'];
}
if (array_key_exists('IS_ALLOW_COMPANY', $data))
{
$isAllowCompany = $data['IS_ALLOW_COMPANY'];
}
$psData = self::getPaySystemParams($data['PAY_SYSTEM_ID']);
if ($isAllowCompany === false)
{
$data['PAY_VOUCHER_NUM'] = '';
$data['PAY_VOUCHER_DATE'] = '';
$data['PAY_RETURN_NUM'] = '';
$data['PAY_RETURN_DATE'] = '';
$data['PS_STATUS'] = '';
}
else
{
if (isset($psData["LOGOTIP_PATH"]))
{
$data['PAY_SYSTEM_LOGOTIP'] = $psData["LOGOTIP_PATH"];
$data['PAY_SYSTEM_LOGOTIP_SHORT'] = $psData["LOGOTIP_SHORT_PATH"];
}
}
$psResult = '';
if ($psData['HAVE_RESULT'] == 'Y' && $form != 'edit')
{
$psResult .= ' '.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_SYSTEM_CHECK').' ';
}
$lang = MainApplication::getInstance()->getContext()->getLanguage();
$paidString = ($data['PAID'] == 'Y') ? 'YES' : 'NO';
$allowedOrderStatusesPayment = OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('payment'));
$isAllowPayment = in_array($data["STATUS_ID"], $allowedOrderStatusesPayment);
$isActive = ($form != 'edit' && $form != 'archive') && !$data['ORDER_LOCKED'] && $isAllowPayment;
$triangle = ($isActive) ? ' ▾ ' : '';
if ($data['PAID'] == 'Y')
$class = (!$isActive) ? 'class="not_active"' : '';
else
$class = (!$isActive) ? 'class="notpay not_active"' : 'class="notpay"';
$paymentStatus = ''.Loc::getMessage('SALE_ORDER_PAYMENT_STATUS_'.$paidString).' '.$triangle.' ';
$res = CompanyTable::getList(array(
'select' => array('NAME'),
'filter' => array('ID' => $data['COMPANY_ID'])
));
$company = $res->fetch();
$paymentStatusBlockVoucherNum = '';
if ($data['PAY_VOUCHER_NUM'] <> '')
{
$paymentStatusBlockVoucherNum = '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_NUM').':
'.htmlspecialcharsbx($data['PAY_VOUCHER_NUM']).'
';
}
$paymentStatusBlockVoucherDate = '';
if ($data['PAY_VOUCHER_DATE'] <> '')
{
$paymentStatusBlockVoucherDate = '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_VOUCHER_DATE').':
'.htmlspecialcharsbx($data['PAY_VOUCHER_DATE']).'
';
}
$paymentStatusBlockReturnNum = '';
if ($data['PAY_RETURN_NUM'] <> '')
{
$paymentStatusBlockReturnNum = '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_NUM').':
'.htmlspecialcharsbx($data['PAY_RETURN_NUM']).'
';
}
$paymentStatusBlockReturnDate = '';
if ($data['PAY_RETURN_DATE'] <> '')
{
$paymentStatusBlockReturnDate = '
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_RETURN_DATE').':
'.htmlspecialcharsbx($data['PAY_RETURN_DATE']).'
';
}
$dateBill = new Date($data['DATE_BILL']);
$allowedOrderStatusesEdit = OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('update'));
$isAllowEdit = in_array($data["STATUS_ID"], $allowedOrderStatusesEdit) && $form != 'archive';
$sectionEdit = '';
$href = $link
->create()
->setPageByType(Registry::SALE_ORDER_PAYMENT_EDIT)
->setFilterParams(false)
->fill()
->setField('order_id', $data['ORDER_ID'])
->setField('payment_id', $data['ID'])
->setField('backurl', $_SERVER['REQUEST_URI'])
->build();
if ($isAllowEdit && !$data['ORDER_LOCKED'])
$sectionEdit = '';
$allowedOrderStatusesDelete = OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('delete'));
$isAllowDelete = in_array($data["STATUS_ID"], $allowedOrderStatusesDelete) && $form != 'archive';
$sectionDelete = '';
if ($isAllowDelete && !$data['ORDER_LOCKED'])
$sectionDelete = ''.Loc::getMessage('SALE_ORDER_PAYMENT_DELETE').'
';
$checkLink = '';
if (!empty($data['CHECK']))
{
$checkLink .= static::buildCheckHtml($data['CHECK']);
}
$checkLink .= " ";
if($form != 'archive' && $data['CAN_PRINT_CHECK'] == 'Y' && $data['HAS_ENABLED_CASHBOX'] === 'Y')
{
$checkLink .= ''.Loc::getMessage('SALE_ORDER_PAYMENT_CHECK_ADD').' ';
}
if ($isAllowCompany === false && $isUserResponsible === false)
{
$psName = Loc::getMessage('SALE_ORDER_PAYMENT_HIDDEN');
}
else
{
$psName = htmlspecialcharsbx($data['PAY_SYSTEM_NAME']).' ['.$data['PAY_SYSTEM_ID'].'] '.$psResult;
if ($data['HAS_PREVIEW'])
{
$psName .= " (".Loc::getMessage('SALE_ORDER_PAYMENT_DOC_PREVIEW')." )";
}
}
$result = '
'.$tabTitle = Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_EDIT_PAYMENT_TITLE', array('#ID#' => $data['ID'], '#DATE_BILL#' => $dateBill)).'
'.$sectionDelete.$sectionEdit.'
'.Loc::getMessage('SALE_ORDER_PAYMENT_TOGGLE_DOWN').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_METHOD').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAY_SYSTEM').':
'.$psName.'
'.Loc::getMessage('SALE_ORDER_PAYMENT_SUM').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAYABLE_SUM').':
'.SaleFormatCurrency($data['SUM'], $data['CURRENCY']).'
0 ?: 'style="display: none"').'>
'.Loc::getMessage('SALE_ORDER_PAYMENT_PAYABLE_PRICE_COD').':
'.SaleFormatCurrency($data['PRICE_COD'], $data['CURRENCY']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_STATUS').'
'.$paymentStatusBlockVoucherNum.$paymentStatusBlockVoucherDate.$paymentStatusBlockReturnNum.$paymentStatusBlockReturnDate.'
';
if ($checkLink)
{
$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_UP').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS').':
'.htmlspecialcharsbx($data['PS_STATUS']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_CODE').':
'.htmlspecialcharsbx($data['PS_STATUS_CODE']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_DESCRIPTION').':
'.htmlspecialcharsbx($data['PS_STATUS_DESCRIPTION']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_CURRENCY').':
'.htmlspecialcharsbx($data['PS_CURRENCY']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_STATUS_MESSAGE').':
'.htmlspecialcharsbx($data['PS_STATUS_MESSAGE']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_SUM').':
'.htmlspecialcharsbx($data['PS_SUM']).'
'.Loc::getMessage('SALE_ORDER_PAYMENT_PS_DATE').':
'.htmlspecialcharsbx($data['PS_RESPONSE_DATE']).'
';
}
$result .= '
'.Loc::getMessage('SALE_ORDER_PAYMENT_BLOCK_COMPANY').'
'.Loc::getMessage('SALE_ORDER_PAYMENT_COMPANY_BY').':
'.
($isAllowCompany === false && $isUserResponsible === false ? Loc::getMessage('SALE_ORDER_PAYMENT_HIDDEN') :
(isset($company['NAME']) && !empty($company['NAME']) ? htmlspecialcharsbx($company['NAME']).' ['.$data['COMPANY_ID'].']' : Loc::getMessage('SALE_ORDER_PAYMENT_NO_COMPANY')))
.'
'.self::getShortViewTemplate($data, $index, $form).'
';
$innerService = PaySystemManager::getObjectById(PaySystemManager::getInnerPaySystemId());
if ($innerService)
{
$refundablePs = array(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');
}
}
else
{
$refundablePs = array();
}
$params = array(
'index' => $index,
'functionOnSave' => 'sendAjax',
'viewForm' => true,
'isPaid' => ($data['PAID'] == 'Y'),
'isAvailableChangeStatus' => $isActive,
'psToReturn' => $refundablePs
);
$result .= self::initJsPayment($params);
return $result;
}