{
$connection = Yii::$app->getDb();
-
+ // ERP-372: фильтры синхронизированы с getSalesSum(), чтобы счётчик чеков
+ // и сумма совпадали со значениями в колонке «сумма продаж» на дашборде.
+ // Без JOIN sales sc и условия по marketplace_order_id средний чек
+ // расходился с суммой продаж для магазинов с большой долей доставки
+ // (например, 07 Аэродромная 28).
$orderCondition = "
AND
(
- \"order_id\" = ''
+ s.\"order_id\" = ''
OR
- \"order_id\" = '0'
- )
+ s.\"order_id\" = '0'
+ )
+ AND
+ (
+ sc.\"order_id\" IS NULL
+ OR
+ sc.\"order_id\" = ''
+ OR
+ sc.\"order_id\" = '0'
+ )
+ AND
+ (
+ s.\"marketplace_order_id\" IS NULL
+ OR
+ s.\"marketplace_order_id\" = ''
+ )
";
$queryRow = "
- SELECT
+ SELECT
count(*) as cnt,
- sum(case when phone is distinct from NULL THEN 1 ELSE 0 END) as bonus_clients_cnt,
- sum(summ-skidka) as summ,
- store_id,
- to_char(date,'YYYY-MM-DD') as date_t
- FROM
- sales
+ sum(case when s.phone is distinct from NULL THEN 1 ELSE 0 END) as bonus_clients_cnt,
+ sum(s.summ - s.skidka) as summ,
+ s.store_id,
+ to_char(s.date,'YYYY-MM-DD') as date_t
+ FROM
+ sales s
+ LEFT JOIN
+ sales sc ON sc.id = s.sales_check
WHERE
- date>=:date_from
+ s.date>=:date_from
AND
- date<=:date_to
+ s.date<=:date_to
AND
- operation=:operation
-
+ s.operation=:operation
+
" . $orderCondition . "
-
+
";
}
$payArrCondition = "
AND
-
- \"pay_arr\" IN (" . $payType . ")
+
+ s.\"pay_arr\" IN (" . $payType . ")
";
}
GROUP BY
date_t,
- store_id
+ s.store_id
ORDER BY
date_t DESC,
cnt DESC