public function getFields(): array
{
if ($this->fields === null)
{
$this->fields = [
'ID' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_ID'),
],
'ACCOUNT_NUMBER' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_ACCOUNT_NUMBER'),
],
'PAID' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAID'),
],
'DATE_PAID' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_DATE_PAID'),
'TYPE' => static::FIELD_TYPE_DATE,
],
'PAY_SYSTEM_ID' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_SYSTEM_ID'),
],
'PAY_VOUCHER_NUM' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_VOUCHER_NUM'),
],
'PAY_VOUCHER_DATE' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_VOUCHER_DATE'),
'TYPE' => static::FIELD_TYPE_DATE,
],
'DATE_PAY_BEFORE' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_DATE_PAY_BEFORE'),
'TYPE' => static::FIELD_TYPE_DATE,
],
'DATE_BILL' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_DATE_BILL'),
],
'XML_ID' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_XML_ID'),
],
'SUM' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_SUM'),
],
'CURRENCY' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_CURRENCY'),
],
'PAY_SYSTEM_NAME' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_SYSTEM_NAME'),
],
'PAY_RETURN_NUM' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_RETURN_NUM'),
],
'PAY_RETURN_DATE' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_RETURN_DATE'),
'TYPE' => static::FIELD_TYPE_DATE,
],
'PAY_RETURN_COMMENT' => [
'TITLE' => Loc::getMessage('CRM_DOCUMENTGENERATOR_DATAPROVIDER_PAYMENT_PAY_RETURN_COMMENT'),
],
'RESPONSIBLE' => [
'TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_ORDER_ASSIGNED_TITLE'),
'PROVIDER' => User::class,
'OPTIONS' => [
'FORMATTED_NAME_FORMAT' => [
'format' => CrmEntityDataProvider::getNameFormat(),
]
],
'VALUE' => [$this, 'getResponsibleId'],
],
'COMMENTS' => ['TITLE' => Loc::getMessage('CRM_DOCGEN_DATAPROVIDER_QUOTE_COMMENTS_TITLE')]
];
if (!$this->isLightMode())
{
$this->fields['ORDER'] = [
'TITLE' => Order::getLangName(),
'PROVIDER' => Order::class,
'OPTIONS' => [
'isLightMode' => true,
'enableMyCompany' => true,
],
'VALUE' => [$this, 'getOrderId'],
];
Loc::loadMessages(Path::combine(__DIR__, 'productsdataprovider.php'));
$this->fields['PRODUCTS'] = [
'PROVIDER' => ArrayDataProvider::class,
'TITLE' => GetMessage('CRM_DOCGEN_PRODUCTSDATAPROVIDER_PRODUCTS_TITLE'),
'OPTIONS' => [
'ITEM_PROVIDER' => Product::class,
'ITEM_NAME' => 'PRODUCT',
'ITEM_TITLE' => GetMessage('CRM_DOCGEN_PRODUCTSDATAPROVIDER_PRODUCT_TITLE'),
],
'VALUE' => [$this, 'loadProducts'],
];
}
}
return $this->fields;
}