static function getEntityFields($entityType)
{
$fields = [
'ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_ID'),
'Type' => 'int',
),
'ACCOUNT_NUMBER' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_ACCOUNT_NUMBER'),
'Type' => 'string',
),
'SHOP_TITLE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_SHOP_TITLE'),
'Type' => 'string',
),
'SHOP_PUBLIC_URL' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_SHOP_PUBLIC_URL'),
'Type' => 'string',
),
'DATE_INSERT' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_INSERT'),
'Type' => 'date',
),
'DATE_UPDATE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_UPDATE'),
'Type' => 'date',
),
'PERSON_TYPE_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_PERSON_TYPE_ID'),
'Type' => 'string',
),
'USER_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_USER_ID'),
'Type' => 'user',
),
'USER_ID_PRINTABLE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_USER_ID_PRINTABLE'),
'Type' => 'string',
),
'PAYED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_PAYED'),
'Type' => 'bool',
),
'DATE_PAYED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_PAYED'),
'Type' => 'date',
),
'EMP_PAYED_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_EMP_PAYED_ID'),
'Type' => 'user',
),
'DEDUCTED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DEDUCTED'),
'Type' => 'bool',
),
'DATE_DEDUCTED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_DEDUCTED'),
'Type' => 'date',
),
'EMP_DEDUCTED_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_EMP_DEDUCTED_ID'),
'Type' => 'user',
),
'REASON_UNDO_DEDUCTED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_REASON_UNDO_DEDUCTED'),
'Type' => 'string',
),
'STATUS_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_STATUS_ID'),
'Type' => 'select',
'Options' => self::getStatusOptions()
),
'DATE_STATUS' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_STATUS'),
'Type' => 'date',
),
'EMP_STATUS_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_EMP_STATUS_ID'),
'Type' => 'user',
),
'PRICE_DELIVERY' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_PRICE_DELIVERY'),
'Type' => 'double',
),
'ALLOW_DELIVERY' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_ALLOW_DELIVERY'),
'Type' => 'bool',
),
'DATE_ALLOW_DELIVERY' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_ALLOW_DELIVERY'),
'Type' => 'date',
),
'EMP_ALLOW_DELIVERY_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_EMP_ALLOW_DELIVERY_ID'),
'Type' => 'user',
),
'RESERVED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_RESERVED'),
'Type' => 'bool',
),
'PRICE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_PRICE'),
'Type' => 'double',
),
'CURRENCY' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_CURRENCY'),
'Type' => 'select',
'Options' => \CCrmCurrencyHelper::PrepareListItems(),
),
'PRICE_FORMATTED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_PRICE_FORMATTED'),
'Type' => 'string',
),
'TAX_VALUE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_TAX_VALUE'),
'Type' => 'double',
),
'SUM_PAID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_SUM_PAID'),
'Type' => 'double',
),
'USER_DESCRIPTION' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_USER_DESCRIPTION'),
'Type' => 'string',
),
'ADDITIONAL_INFO' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_ADDITIONAL_INFO'),
'Type' => 'string',
'Editable' => true,
),
'COMMENTS' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_COMMENTS'),
'Type' => 'string',
'Editable' => true,
),
'CREATED_BY' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_CREATED_BY'),
'Type' => 'user',
),
'RESPONSIBLE_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_RESPONSIBLE_ID'),
'Type' => 'user',
'Editable' => true,
)
];
$fields += self::getResponsibleFields();
$fields += [
'DATE_PAY_BEFORE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_PAY_BEFORE'),
'Type' => 'date',
'Editable' => true,
),
'DATE_BILL' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_BILL'),
'Type' => 'date',
),
'CANCELED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_CANCELED'),
'Type' => 'bool',
),
'EMP_CANCELED_ID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_EMP_CANCELED_ID'),
'Type' => 'user',
),
'DATE_CANCELED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_DATE_CANCELED'),
'Type' => 'date',
),
'REASON_CANCELED' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_REASON_CANCELED'),
'Type' => 'string',
),
'LID' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_LID'),
'Type' => 'string',
),
'LID_PRINTABLE' => array(
'Name' => GetMessage('CRM_BP_DOCUMENT_ORDER_FIELD_LID_PRINTABLE'),
'Type' => 'string',
),
];
$fields += self::getShippingFields();
$fields += self::getUserFieldsMap();
self::appendReferenceFields(
$fields,
\CCrmDocumentContact::getEntityFields(\CCrmOwnerType::ContactName),
\CCrmOwnerType::Contact
);
self::appendReferenceFields(
$fields,
\CCrmDocumentCompany::getEntityFields(\CCrmOwnerType::CompanyName),
\CCrmOwnerType::Company
);
return $fields;
}