• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/invoice/internals/basket.php
  • Класс: Bitrix\Crm\Invoice\Internals\BasketTable
  • Вызов: BasketTable::getMap
static function getMap()
{
	global $DB;

	$connection = Main\Application::getConnection();
	$helper = $connection->getSqlHelper();

	return array(
		'ID' => array(
			'data_type' => 'integer',
			'primary' => true,
			'autocomplete' => true,
		),
		'LID' => array(
			'data_type' => 'string',
			'required' => true,
			'validation' => array(__CLASS__, 'validateLid'),
		),
		'FUSER_ID' => array(
			'data_type' => 'integer',
			'required' => true,
		),

		new Main\Entity\ReferenceField(
			'FUSER',
			'Bitrix\Sale\Internals\Fuser',
			array('=this.FUSER_ID' => 'ref.ID'),
			array('join_type' => 'INNER')
		),

		new Main\Entity\ReferenceField(
			'USER',
			'Bitrix\Main\User',
			array('=ref.ID' => 'this.FUSER.USER_ID')
		),

		'ORDER_ID' => array(
			'data_type' => 'integer'
		),

		new Main\Entity\ReferenceField(
			'ORDER',
			'Bitrix\Crm\Invoice\Internals\Invoice',
			array('=this.ORDER_ID' => 'ref.ID')
		),

		'PRODUCT_ID' => array(
			'data_type' => 'integer',
			'required' => true,
		),
		'PRODUCT_PRICE_ID' => array(
			'data_type' => 'integer'
		),
		'PRICE_TYPE_ID' => array(
			'data_type' => 'integer'
		),
		'NAME' => array(
			'data_type' => 'string'
		),

		new Main\Entity\ExpressionField(
			'NAME_WITH_IDENT',
			$helper->getConcatFunction("%s", "' ['", "%s", "']'"),
			array('NAME', 'PRODUCT_ID')
		),

		new Main\Entity\FloatField(
			'PRICE'
		),

		'CURRENCY' => array(
			'data_type' => 'string',
			'required' => true,
			'validation' => array(__CLASS__, 'validateCurrency'),
		),

		new Main\Entity\FloatField(
			'BASE_PRICE'
		),

		'VAT_INCLUDED' => array(
			'data_type' => 'boolean',
			'values' => array('Y','N')
		),

		'DATE_INSERT' => array(
			'data_type' => 'datetime'
		),
		new Main\Entity\ExpressionField(
				'DATE_INS',
				$DB->datetimeToDateFunction('%s'),
				array('DATE_INSERT'),
				array('data_type' => 'datetime')
		),

		'DATE_UPDATE' => array(
			'data_type' => 'datetime'
		),
		new Main\Entity\ExpressionField(
				'DATE_UPD',
				$DB->datetimeToDateFunction('%s'),
				array('DATE_UPDATE'),
				array('data_type' => 'datetime')
		),

		'DATE_REFRESH' => array(
			'data_type' => 'datetime'
		),
		new Main\Entity\ExpressionField(
				'DATE_REF',
				$DB->datetimeToDateFunction('%s'),
				array('DATE_REFRESH'),
				array('data_type' => 'datetime')
		),

		new Main\Entity\FloatField(
			'WEIGHT'
		),

		new Main\Entity\FloatField(
			'QUANTITY',
			array(
				'required' => true
			)
		),
		'XML_ID' => array(
			'data_type' => 'string'
		),

		'DELAY' => array(
			'data_type' => 'boolean',
			'values' => array('N','Y')
		),

		'SUMMARY_PRICE' => array(
			'data_type' => 'float',
			'expression' => array(
				'(%s * %s)', 'QUANTITY', 'PRICE'
			)
		),

		'CAN_BUY' => array(
			'data_type' => 'boolean',
			'values' => array('N','Y')
		),

		'MARKING_CODE_GROUP' => array(
			'data_type' => 'string',
		),

		'MODULE' => array(
			'data_type' => 'string'
		),

		'PRODUCT_PROVIDER_CLASS' => array(
			'data_type' => 'string'
		),

		'NOTES' => array(
			'data_type' => 'string'
		),

		'DETAIL_PAGE_URL' => array(
			'data_type' => 'string'
		),

		new Main\Entity\FloatField(
			'DISCOUNT_PRICE',
			array(
				'default_value' => '0.00'
			)
		),

		'CATALOG_XML_ID' => array(
			'data_type' => 'string'
		),

		'PRODUCT_XML_ID' => array(
			'data_type' => 'string'
		),

		'DISCOUNT_NAME' => array(
			'data_type' => 'string',
			'validation' => array(__CLASS__, 'validateDiscountName'),
		),

		'DISCOUNT_VALUE' => array(
			'data_type' => 'string',
			'validation' => array(__CLASS__, 'validateDiscountValue'),
		),

		'DISCOUNT_COUPON' => array(
			'data_type' => 'string',
			'validation' => array(__CLASS__, 'validateDiscountCoupon'),
		),

		new Main\Entity\FloatField(
			'VAT_RATE'
		),

		new Main\Entity\ExpressionField(
			'VAT_RATE_PRC',
			'100 * %s',
			array('VAT_RATE')
		),

		'SUBSCRIBE' => array(
			'data_type' => 'boolean',
			'values' => array('N','Y')
		),
		'N_SUBSCRIBE' => array(
			'data_type' => 'integer',
			'expression' => array(
				'CASE WHEN %s = \'Y\' THEN 1 ELSE 0 END', 'SUBSCRIBE'
			)
		),

		'RESERVED' => array(
			'data_type' => 'boolean',
			'values' => array('N', 'Y'),
		),

		new Main\Entity\FloatField(
			'RESERVE_QUANTITY'
		),

		'BARCODE_MULTI' => array(
			'data_type' => 'boolean',
			'values' => array('N','Y')
		),

		'CUSTOM_PRICE' => array(
			'data_type' => 'boolean',
			'values' => array('N','Y')
		),

		'DIMENSIONS' => array(
			'serialized' => true,
			'data_type' => 'string'
		),

		new Main\Entity\IntegerField(
			'TYPE'
		),
		new Main\Entity\IntegerField(
			'SET_PARENT_ID'
		),
		new Main\Entity\IntegerField(
			'MEASURE_CODE'
		),

		'MEASURE_NAME' => array(
			'data_type' => 'string'
		),

		'CALLBACK_FUNC' => array(
			'data_type' => 'string'
		),

		'ORDER_CALLBACK_FUNC' => array(
			'data_type' => 'string'
		),

		'CANCEL_CALLBACK_FUNC' => array(
			'data_type' => 'string'
		),

		'PAY_CALLBACK_FUNC' => array(
			'data_type' => 'string'
		),

		'RECOMMENDATION' => array(
			'data_type' => 'string'
		),


		'ALL_PRICE' => array(
			'data_type' => 'float',
			'expression' => array(
				'(%s + %s)', 'PRICE', 'DISCOUNT_PRICE'
			)
		),

		'SHIPMENT_ITEM' => array(
			'data_type' => 'ShipmentItem',
			'reference' => array(
				'=ref.BASKET_ID' => 'this.ID',
			)
		),
		'SHIPMENT' => array(
			'data_type' => 'Shipment',
			'reference' => array(
				'=ref.ID' => 'this.SHIPMENT_ITEM.ORDER_DELIVERY_ID',
			)
		),

		'PAYMENT' => array(
			'data_type' => 'Payment',
			'reference' => array(
				'=ref.ORDER_ID' => 'this.ORDER_ID',
			)
		),

		new Main\Entity\IntegerField(
			'SORT',
			array(
				'default' => '100'
			)
		),
	);
}