- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/internals/conversionhandlers.php
- Класс: BitrixSaleInternalsConversionHandlers
- Вызов: ConversionHandlers::onGenerateInitialData
static function onGenerateInitialData(Date $from, Date $to)
{
$data = array();
// 1. Payments
$result = CSaleOrder::GetList(
array(),
array(
'PAYED' => 'Y',
'CANCELED' => 'N',
'>=DATE_PAYED' => $from,
'<=DATE_PAYED' => $to,
),
false,
false,
array('LID', 'DATE_PAYED', 'PRICE', 'CURRENCY')
);
while ($row = $result->Fetch())
{
$day = new DateTime($row['DATE_PAYED']);
$sum = Utils::convertToBaseCurrency($row['PRICE'], $row['CURRENCY']);
if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
{
$counters['sale_payment_add_day'] += 1;
$counters['sale_payment_sum_add'] += $sum;
}
else
{
$counters = array(
'sale_payment_add_day' => 1,
'sale_payment_sum_add' => $sum,
);
}
}
// 2. Orders
$result = CSaleOrder::GetList(
array(),
array(
'CANCELED' => 'N',
'>=DATE_INSERT' => $from,
'<=DATE_INSERT' => $to,
),
false,
false,
array('LID', 'DATE_INSERT', 'PRICE', 'CURRENCY')
);
while ($row = $result->Fetch())
{
$day = new DateTime($row['DATE_INSERT']);
$sum = Utils::convertToBaseCurrency($row['PRICE'], $row['CURRENCY']);
if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
{
$counters['sale_order_add_day'] += 1;
$counters['sale_order_sum_add'] += $sum;
}
else
{
$counters = array(
'sale_order_add_day' => 1,
'sale_order_sum_add' => $sum,
);
}
}
// 3. Cart
$result = CSaleBasket::GetList(
array(),
array(
'>=DATE_INSERT' => $from,
'<=DATE_INSERT' => $to,
),
false,
false,
array('LID', 'DATE_INSERT', 'PRICE', 'CURRENCY', 'QUANTITY')
);
while ($row = $result->Fetch())
{
$day = new DateTime($row['DATE_INSERT']);
$sum = Utils::convertToBaseCurrency($row['PRICE'] * $row['QUANTITY'], $row['CURRENCY']);
if ($counters =& $data[$row['LID']][$day->format('Y-m-d')])
{
$counters['sale_cart_add_day'] += 1;
$counters['sale_cart_sum_add'] += $sum;
}
else
{
$counters = array(
'sale_cart_add_day' => 1,
'sale_cart_sum_add' => $sum,
);
}
}
// Result
unset($counters);
$result = array();
foreach ($data as $siteId => $dayCounters)
{
$result []= array(
'ATTRIBUTES' => array('conversion_site' => $siteId),
'DAY_COUNTERS' => $dayCounters,
);
}
return $result;
}