48 if (class_exists(
'\CBaseSaleReportHelper'))
73 $productId =
'cast(%s as text)';
79 $productName = $helper->getConcatFunction(
89 'data_type' =>
'integer',
95 'TIMESTAMP_X' =>
array(
96 'data_type' =>
'integer'
98 'DATE_UPDATED' =>
array(
99 'data_type' =>
'datetime',
100 'expression' =>
array(
101 $DB->datetimeToDateFunction(
'%s'),
'TIMESTAMP_X',
105 'data_type' =>
'float'
108 'data_type' =>
'integer'
110 'PURCHASING_PRICE' =>
array(
111 'data_type' =>
'float'
113 'PURCHASING_CURRENCY' =>
array(
114 'data_type' =>
'string'
117 'data_type' =>
'Bitrix\Iblock\Element',
118 'reference' =>
array(
'=this.ID' =>
'ref.ID')
121 'data_type' =>
'string',
122 'expression' =>
array(
126 'NAME_WITH_IDENT' =>
array(
127 'data_type' =>
'string',
128 'expression' =>
array(
129 $productName,
'NAME',
'ID'
133 'data_type' =>
'boolean',
134 'expression' =>
array(
135 '%s',
'IBLOCK.ACTIVE'
137 'values' =>
array(
'N',
'Y')
140 'data_type' =>
'float'
142 'WEIGHT_IN_SITE_UNITS' =>
array(
143 'data_type' =>
'float',
144 'expression' =>
array(
145 '%s / '.
$DB->forSql($weightKoef),
'WEIGHT'
149 'data_type' =>
'float',
150 'expression' =>
array(
151 '(SELECT b_catalog_price.PRICE FROM b_catalog_price
152 LEFT JOIN b_catalog_group ON b_catalog_group.ID = b_catalog_price.CATALOG_GROUP_ID
154 b_catalog_price.PRODUCT_ID = %s
156 b_catalog_group.base = \'Y\'
158 ( b_catalog_price.quantity_from <= 1 OR b_catalog_price.quantity_from IS NULL )
160 ( b_catalog_price.quantity_to >= 1 OR b_catalog_price.quantity_to IS NULL)
165 'data_type' =>
'string',
166 'expression' =>
array(
167 '(SELECT b_catalog_price.CURRENCY FROM b_catalog_price
168 LEFT JOIN b_catalog_group ON b_catalog_group.ID = b_catalog_price.CATALOG_GROUP_ID
170 b_catalog_price.PRODUCT_ID = %s
172 b_catalog_group.base = \'Y\'
174 ( b_catalog_price.quantity_from <= 1 OR b_catalog_price.quantity_from IS NULL )
176 ( b_catalog_price.quantity_to >= 1 OR b_catalog_price.quantity_to IS NULL)
180 'SUMMARY_PRICE' =>
array(
181 'data_type' =>
'float',
182 'expression' =>
array(
183 '%s * %s',
'QUANTITY',
'PRICE'
189 'CURRENT_CURRENCY_RATE' =>
array(
190 'data_type' =>
'float',
191 'expression' =>
array(
192 '('.
$DB->topSql(
'SELECT (CASE WHEN b_catalog_currency_rate.RATE IS NOT NULL THEN b_catalog_currency_rate.RATE ELSE b_catalog_currency.AMOUNT END)
193 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
194 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <= '.$DB->datetimeToDateFunction(
'b_catalog_product.TIMESTAMP_X').
')
195 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = %s
196 ORDER BY DATE_RATE DESC', 1).
')',
'ID',
'CURRENCY'
199 'CURRENT_CURRENCY_RATE_CNT' =>
array(
200 'data_type' =>
'float',
201 'expression' =>
array(
202 '('.
$DB->topSql(
'SELECT (CASE WHEN b_catalog_currency_rate.RATE_CNT IS NOT NULL THEN b_catalog_currency_rate.RATE_CNT ELSE b_catalog_currency.AMOUNT_CNT END)
203 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
204 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <= '.$DB->datetimeToDateFunction(
'b_catalog_product.TIMESTAMP_X').
')
205 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = %s
206 ORDER BY DATE_RATE DESC', 1).
')',
'ID',
'CURRENCY'
210 'CURRENT_SITE_CURRENCY_RATE' =>
array(
211 'data_type' =>
'float',
212 'expression' =>
array(
213 '('.
$DB->topSql(
'SELECT (CASE WHEN b_catalog_currency_rate.RATE IS NOT NULL THEN b_catalog_currency_rate.RATE ELSE b_catalog_currency.AMOUNT END)
214 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
215 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <= '.$DB->datetimeToDateFunction(
'b_catalog_product.TIMESTAMP_X').
')
216 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = \''.
$DB->forSql($siteCurrency).
'\'
217 ORDER BY DATE_RATE DESC
', 1).')
', 'ID
'
221 'CURRENT_SITE_CURRENCY_RATE_CNT
' => array(
222 'data_type
' => 'float',
223 'expression
' => array(
224 '(
'.$DB->topSql('SELECT (CASE WHEN b_catalog_currency_rate.RATE_CNT IS NOT NULL THEN b_catalog_currency_rate.RATE_CNT ELSE b_catalog_currency.AMOUNT_CNT END)
225 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
226 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <=
'.$DB->datetimeToDateFunction('b_catalog_product.TIMESTAMP_X
').')
227 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = \
''.$DB->forSql($siteCurrency).
'\'
228 ORDER BY DATE_RATE DESC
', 1).')
', 'ID
'
234 'PURCHASING_CURRENCY_RATE
' => array(
235 'data_type
' => 'float',
236 'expression
' => array(
237 '(
'.$DB->topSql('SELECT (CASE WHEN b_catalog_currency_rate.RATE IS NOT NULL THEN b_catalog_currency_rate.RATE ELSE b_catalog_currency.AMOUNT END)
238 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
239 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <=
'.$DB->datetimeToDateFunction('b_catalog_product.TIMESTAMP_X
').')
240 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = %s
241 ORDER BY DATE_RATE DESC
', 1).')
', 'ID
', 'PURCHASING_CURRENCY
'
244 'PURCHASING_CURRENCY_RATE_CNT
' => array(
245 'data_type
' => 'float',
246 'expression
' => array(
247 '(
'.$DB->topSql('SELECT (CASE WHEN b_catalog_currency_rate.RATE_CNT IS NOT NULL THEN b_catalog_currency_rate.RATE_CNT ELSE b_catalog_currency.AMOUNT_CNT END)
248 FROM b_catalog_product INNER JOIN b_catalog_currency ON 1=1
249 LEFT JOIN b_catalog_currency_rate ON (b_catalog_currency.CURRENCY = b_catalog_currency_rate.CURRENCY AND b_catalog_currency_rate.DATE_RATE <=
'.$DB->datetimeToDateFunction('b_catalog_product.TIMESTAMP_X
').')
250 WHERE b_catalog_product.ID = %s AND b_catalog_currency.CURRENCY = %s
251 ORDER BY DATE_RATE DESC
', 1).')
', 'ID
', 'PURCHASING_CURRENCY
'
257 'PRICE_IN_SITE_CURRENCY
' => array(
258 'data_type
' => 'float',
259 'expression
' => array(
260 '%s * (%s * %s / %s / %s)
',
261 'PRICE
', 'CURRENT_CURRENCY_RATE
', 'CURRENT_SITE_CURRENCY_RATE_CNT
', 'CURRENT_SITE_CURRENCY_RATE
', 'CURRENT_CURRENCY_RATE_CNT
'
265 'PURCHASING_PRICE_IN_SITE_CURRENCY
' => array(
266 'data_type
' => 'float',
267 'expression
' => array(
268 '%s * (%s * %s / %s / %s)
',
269 'PURCHASING_PRICE
', 'PURCHASING_CURRENCY_RATE
', 'CURRENT_SITE_CURRENCY_RATE_CNT
', 'CURRENT_SITE_CURRENCY_RATE
', 'PURCHASING_CURRENCY_RATE_CNT
'
273 'SUMMARY_PRICE_IN_SITE_CURRENCY
' => array(
274 'data_type
' => 'float',
275 'expression
' => array(
276 '%s * (%s * %s / %s / %s)
',
277 'SUMMARY_PRICE
', 'CURRENT_CURRENCY_RATE
', 'CURRENT_SITE_CURRENCY_RATE_CNT
', 'CURRENT_SITE_CURRENCY_RATE
', 'CURRENT_CURRENCY_RATE_CNT
'