From aa86212ad5f86880949b2be40bccdf8ef9e4d6e6 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 27 May 2024 17:24:26 +0300 Subject: [PATCH] fix newBonusCount and repeatBonusCount --- erp24/api3/core/services/ReportService.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erp24/api3/core/services/ReportService.php b/erp24/api3/core/services/ReportService.php index 3ba5056..273d471 100644 --- a/erp24/api3/core/services/ReportService.php +++ b/erp24/api3/core/services/ReportService.php @@ -146,8 +146,8 @@ class ReportService $sales = Sales::find()->alias('s')->select(["COUNT(*) as cnt", "sum(CASE WHEN operation='Продажа' THEN s.summ ELSE (CASE WHEN operation='Возврат' THEN -s.summ ELSE 0 END) END) as total", "sum(CASE WHEN s.phone = 0 THEN 0 ELSE 1 END) as bonusUserCount", - "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NOT NULL) AND (u.date_first_sale = s.date)) THEN 1 ELSE 0 END) as newBonusUserCount", - "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NULL) OR (u.date_first_sale < s.date)) THEN 1 ELSE 0 END) as repeatBonusUserCount", + "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NOT NULL) AND (TO_CHAR(u.date_first_sale, 'YYYY-MM-DD') = TO_CHAR(s.date, 'YYYY-MM-DD'))) THEN 1 ELSE 0 END) as newBonusUserCount", + "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NULL) OR (TO_CHAR(u.date_first_sale, 'YYYY-MM-DD') < TO_CHAR(s.date, 'YYYY-MM-DD'))) THEN 1 ELSE 0 END) as repeatBonusUserCount", "s.store_id", "s.admin_id"]) ->leftJoin('users u', 'u.phone = s.phone::varchar(20) AND u.phone IN (\'' @@ -593,8 +593,8 @@ class ReportService $sales = Sales::find()->alias('s')->select(["COUNT(*) as cnt", "sum(CASE WHEN operation='Продажа' THEN s.summ ELSE (CASE WHEN operation='Возврат' THEN -s.summ ELSE 0 END) END) as total", "sum(CASE WHEN s.phone = 0 THEN 0 ELSE 1 END) as bonusUserCount", - "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NOT NULL) AND (u.date_first_sale = s.date)) THEN 1 ELSE 0 END) as newBonusUserCount", - "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NULL) OR (u.date_first_sale < s.date)) THEN 1 ELSE 0 END) as repeatBonusUserCount", + "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NOT NULL) AND (TO_CHAR(u.date_first_sale, 'YYYY-MM-DD') = TO_CHAR(s.date, 'YYYY-MM-DD'))) THEN 1 ELSE 0 END) as newBonusUserCount", + "sum(CASE WHEN (s.phone != 0) AND ((u.date_first_sale IS NULL) OR (TO_CHAR(u.date_first_sale, 'YYYY-MM-DD') < TO_CHAR(s.date, 'YYYY-MM-DD'))) THEN 1 ELSE 0 END) as repeatBonusUserCount", 'store_id_1c', ]) ->leftJoin('users u', 'u.phone = s.phone::varchar(20) AND u.phone IN (\'' -- 2.39.5