static function getMap()
{
return [
'ID' => new IntegerField(
'ID',
[
'primary' => true,
'autocomplete' => true,
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ID_FIELD'),
]
),
'TITLE' => new StringField(
'TITLE',
[
'validation' => [__CLASS__, 'validateTitle'],
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_TITLE_FIELD')
]
),
'DOC_TYPE' => new EnumField(
'DOC_TYPE',
[
'required' => true,
'values' => static::getTypeList(),
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DOC_TYPE_FIELD'),
]
),
'DOC_NUMBER' => new StringField(
'DOC_NUMBER',
[
'validation' => [__CLASS__, 'validateDocNumber'],
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DOC_NUMBER_FIELD'),
]
),
'SITE_ID' => new StringField(
'SITE_ID',
[
'validation' => [__CLASS__, 'validateSiteId'],
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_SITE_ID_FIELD'),
]
),
'CONTRACTOR' => new MainORMFieldsRelationsReference(
'CONTRACTOR',
ContractorTable::class,
MainORMQueryJoin::on('this.CONTRACTOR_ID', 'ref.ID')
),
'CONTRACTOR_ID' => new IntegerField(
'CONTRACTOR_ID',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CONTRACTOR_ID_FIELD'),
]
),
'DATE_MODIFY' => new DatetimeField(
'DATE_MODIFY',
[
'default_value' => function()
{
return new MainTypeDateTime();
},
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_MODIFY_FIELD'),
]
),
'DATE_CREATE' => new DatetimeField(
'DATE_CREATE',
[
'default_value' => function()
{
return new MainTypeDateTime();
},
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_CREATE_FIELD'),
]
),
'CREATED_BY' => new IntegerField(
'CREATED_BY',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CREATED_BY_FIELD'),
]
),
'CREATED_BY_USER' => new MainORMFieldsRelationsReference(
'CREATED_BY_USER',
UserTable::class,
MainORMQueryJoin::on('this.CREATED_BY', 'ref.ID')
),
'MODIFIED_BY' => new IntegerField(
'MODIFIED_BY',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_MODIFIED_BY_FIELD'),
]
),
'MODIFIED_BY_USER' => new MainORMFieldsRelationsReference(
'MODIFIED_BY_USER',
UserTable::class,
MainORMQueryJoin::on('this.MODIFIED_BY', 'ref.ID')
),
'RESPONSIBLE_ID' => new IntegerField(
'RESPONSIBLE_ID',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_RESPONSIBLE_ID_FIELD')
]
),
'RESPONSIBLE' => new MainORMFieldsRelationsReference(
'RESPONSIBLE',
UserTable::class,
MainORMQueryJoin::on('this.RESPONSIBLE_ID', 'ref.ID')
),
'CURRENCY' => new StringField(
'CURRENCY',
[
'validation' => [__CLASS__, 'validateCurrency'],
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CURRENCY_FIELD'),
]
),
'STATUS' => new BooleanField(
'STATUS',
[
'values' => ['N', 'Y'],
'default' => 'N',
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_STATUS_FIELD'),
]
),
'WAS_CANCELLED' => new BooleanField(
'WAS_CANCELLED',
[
'values' => array('N', 'Y'),
'default' => 'N',
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_WAS_CANCELLED_FIELD'),
]
),
'DATE_STATUS' => new DatetimeField(
'DATE_STATUS',
[
'default_value' => null,
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_STATUS_FIELD'),
]
),
'DATE_DOCUMENT' => new DatetimeField(
'DATE_DOCUMENT',
[
'default_value' => function()
{
return new MainTypeDateTime();
},
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_DOCUMENT_FIELD'),
]
),
'STATUS_BY' => new IntegerField(
'STATUS_BY',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_STATUS_BY_FIELD'),
]
),
'STATUS_BY_USER' => new MainORMFieldsRelationsReference(
'STATUS_BY_USER',
UserTable::class,
MainORMQueryJoin::on('this.STATUS_BY', 'ref.ID')
),
'TOTAL' => new FloatField(
'TOTAL',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_TOTAL_FIELD'),
]
),
'COMMENTARY' => new StringField(
'COMMENTARY',
[
'validation' => [__CLASS__, 'validateCommentary'],
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_COMMENTARY_FIELD'),
]
),
'ITEMS_ORDER_DATE' => new DatetimeField(
'ITEMS_ORDER_DATE',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ITEMS_ORDER_DATE_FIELD')
]
),
'ITEMS_RECEIVED_DATE' => new DatetimeField(
'ITEMS_RECEIVED_DATE',
[
'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ITEMS_RECEIVED_DATE_FIELD')
]
),
'ELEMENTS' => (new MainORMFieldsRelationsOneToMany(
'ELEMENTS',
StoreDocumentElementTable::class,
'DOCUMENT'
))->configureJoinType('left'),
];
}