3namespace Bitrix\Catalog;
5use Bitrix\Main\Application;
6use Bitrix\Main\ORM\EventResult;
7use Bitrix\Main\Localization\Loc;
8use Bitrix\Main\ORM\Data\DataManager;
9use Bitrix\Main\ORM\Event;
10use Bitrix\Main\ORM\Fields\DatetimeField;
11use Bitrix\Main\ORM\Fields\IntegerField;
12use Bitrix\Main\ORM\Fields\StringField;
13use Bitrix\Main\ORM\Fields\Validators\LengthValidator;
14use Bitrix\Main\Type\DateTime;
15use Bitrix\Main\ORM\Fields\Relations\Reference;
16use Bitrix\Main\ORM\Query\Join;
17use Bitrix\Main\UserTable;
18use Bitrix\Main\Type\Collection;
19use Bitrix\Main\ORM\Query\Query;
20use Bitrix\Catalog\v2\Contractor;
61 return 'b_catalog_agent_contract';
76 'autocomplete' =>
true,
77 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_ID_FIELD'),
82 AgentProductTable::class,
83 Join::on(
'this.ID',
'ref.CONTRACT_ID')
89 'validation' =>
function()
95 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_TITLE_FIELD'),
101 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_CONTRACTOR_ID_FIELD'),
106 ContractorTable::class,
107 Join::on(
'this.CONTRACTOR_ID',
'ref.ID')
112 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_DATE_MODIFY_FIELD'),
118 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_DATE_CREATE_FIELD'),
125 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_MODIFIED_BY_FIELD'),
131 Join::on(
'this.MODIFIED_BY',
'ref.ID')
136 'title' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_CREATED_BY_FIELD'),
142 Join::on(
'this.CREATED_BY',
'ref.ID')
149 Collection::normalizeArrayValuesByInt($productIds);
150 if (empty($productIds))
156 $whereExpression =
'(PRODUCT_ID IN (' . implode(
',', $productIds) .
'))';
167 WHERE CONTRACT_ID = %s
168 AND PRODUCT_TYPE = '{$productType}'
169 AND {$whereExpression}
180 Collection::normalizeArrayValuesByInt($sectionIds);
181 if (empty($sectionIds))
187 $whereExpression =
'(PRODUCT_ID IN (' . implode(
',', $sectionIds) .
'))';
198 WHERE CONTRACT_ID = %s
199 AND PRODUCT_TYPE = '{$productType}'
200 AND {$whereExpression}
214 if (empty(
$data[
'TITLE']))
217 'TITLE' => Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_TITLE_DEFAULT'),
227 $id =
$event->getParameter(
'id');
229 if (
$data[
'fields'][
'TITLE'] === Loc::getMessage(
'CATALOG_AGENT_CONTRACT_ENTITY_TITLE_DEFAULT'))
232 'CATALOG_AGENT_CONTRACT_ENTITY_TITLE_DEFAULT',
251 $id = (int)
$event->getParameter(
'primary')[
'ID'];
256 if ($contractorsProvider)
258 $contractorsProvider::onAfterDocumentDelete($id);
static deleteFilesByContractId(int $contractId)
static withProductList(Query $query, array $productIds)
static withSectionList(Query $query, array $sectionIds)
static onAfterAdd(Event $event)
static onBeforeAdd(Event $event)
static onAfterDelete(Event $event)
const PRODUCT_TYPE_SECTION
const PRODUCT_TYPE_PRODUCT
static getActiveProvider(string $providerName)
static update($primary, array $data)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)