]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-210] только подписанные в тг входят в бонусную программу origin/feature_smirnov_erp-210_bonus_user_calculation_in_tg_reports
authorAlexander Smirnov <fredeom@mail.ru>
Tue, 8 Oct 2024 08:48:40 +0000 (11:48 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Tue, 8 Oct 2024 08:48:40 +0000 (11:48 +0300)
erp24/api3/core/services/ReportService.php

index 496d88d9bbea8ba9ab1579c735d0f8223b5a6d5a..10d00f873b61dce356e6d64bddf3823b77afabea 100644 (file)
@@ -145,9 +145,9 @@ 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 (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",
+                "sum(CASE WHEN (s.phone != 0) AND (u.telegram_is_subscribed = 1) THEN 1 ELSE 0 END) as bonusUserCount",
+                "sum(CASE WHEN (s.phone != 0) AND (u.telegram_is_subscribed = 1) 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.telegram_is_subscribed = 1) 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 (\''
@@ -600,9 +600,9 @@ 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 (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",
+                    "sum(CASE WHEN (s.phone != 0) AND (u.telegram_is_subscribed = 1) THEN 1 ELSE 0 END) as bonusUserCount",
+                    "sum(CASE WHEN (s.phone != 0) AND (u.telegram_is_subscribed = 1) 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.telegram_is_subscribed = 1) 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 (\''