]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commit
fix(ERP-372): синхронизировать фильтры getSalesCountSum с getSalesSum fix_filippov_ERP-372_avg_check_dashboard origin/fix_filippov_ERP-372_avg_check_dashboard
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Thu, 30 Apr 2026 08:04:00 +0000 (11:04 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Thu, 30 Apr 2026 08:04:00 +0000 (11:04 +0300)
commitd341e1e98719dd2f579bca8c4379729ec8013f51
tree49bb141b2092db75f2a7b07d2b99b0c7b06e25eb
parentdbf4e84e6fc2a44f5c884df25a4f9d0d212342fd
fix(ERP-372): синхронизировать фильтры getSalesCountSum с getSalesSum

На дашборде /dashboard/sales для магазинов с большой долей доставки
(например, 07 Аэродромная 28) средний чек расходился с суммой продаж:
avg = sum_count_query / cnt_count_query, при этом колонка «сумма продаж»
показывала результат другого запроса (getSalesSum) с более узким
фильтром.

Привожу getSalesCountSum к тем же условиям:
- LEFT JOIN sales sc ON sc.id = s.sales_check
- sc.order_id IS NULL OR IN ('','0')   — отбрасываем строки, привязанные
  через sales_check к доставочной продаже;
- s.marketplace_order_id IS NULL OR =''  — отбрасываем продажи маркетплейсов.

После фикса avg = sum / cnt совпадает с тем, что выводится в колонке
«сумма продаж».

Тесты (9/9 GREEN): unit на структуру SQL и биндинг параметров +
интеграционные на реальной БД (insert/rollback в транзакции),
проверяющие исключение маркетплейс- и доставочно-связанных продаж.
erp24/services/SalesService.php