]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление функции из задачи 252
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 11 Dec 2024 11:28:05 +0000 (14:28 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 11 Dec 2024 11:28:05 +0000 (14:28 +0300)
erp24/records/Users.php

index 9ba3ca5dbd63082346e9a3ab36d3484d0c410e17..2493466b95f1093115fecc0076f1e43984eb8f91 100755 (executable)
@@ -71,6 +71,7 @@ class Users extends \yii\db\ActiveRecord
 
     const NIGHT_FLORIST_ID = 35;
     const DAY_FLORIST_ID = 40;
+
     /**
      * {@inheritdoc}
      */
@@ -132,11 +133,50 @@ class Users extends \yii\db\ActiveRecord
                 ],
                 'required'
             ],
-            [['date', 'name', 'name_name', 'name_last', 'name_family', 'comment', 'email', 'email_old', 'phone_old', 'card',
-                'password', 'keycode', 'check_id', 'check_id_forgot', 'sid_forgot', 'forgot_time', 'kod', 'created_id', 'created_name',
-                'created_store_id', 'balans_datetime', 'bonus_minus', 'bdate', 'date_last', 'date_last_sale', 'date_first_sale', 'sale_cnt',
-                'sale_avg_price', 'sale_price', 'reklama_info', 'alerts_balans', 'alerts_date', 'alerts_reklama', 'ref_code', 'referral_id',
-                'seller_id', 'store_id', 'first_minus_balance', 'telegram_unsubscribed_at'], 'safe'],
+            [
+                [
+                    'date',
+                    'name',
+                    'name_name',
+                    'name_last',
+                    'name_family',
+                    'comment',
+                    'email',
+                    'email_old',
+                    'phone_old',
+                    'card',
+                    'password',
+                    'keycode',
+                    'check_id',
+                    'check_id_forgot',
+                    'sid_forgot',
+                    'forgot_time',
+                    'kod',
+                    'created_id',
+                    'created_name',
+                    'created_store_id',
+                    'balans_datetime',
+                    'bonus_minus',
+                    'bdate',
+                    'date_last',
+                    'date_last_sale',
+                    'date_first_sale',
+                    'sale_cnt',
+                    'sale_avg_price',
+                    'sale_price',
+                    'reklama_info',
+                    'alerts_balans',
+                    'alerts_date',
+                    'alerts_reklama',
+                    'ref_code',
+                    'referral_id',
+                    'seller_id',
+                    'store_id',
+                    'first_minus_balance',
+                    'telegram_unsubscribed_at'
+                ],
+                'safe'
+            ],
             [['pol', 'info', 'telegram_created_at'], 'string'],
             [
                 [
@@ -240,7 +280,41 @@ class Users extends \yii\db\ActiveRecord
         ];
     }
 
-    public function getReferral() {
+    public function getReferral()
+    {
         return $this->hasOne(Users::class, ['id' => 'referral_id']);
     }
+
+    /**
+     * https://tracker.yandex.ru/ERP-252
+     * @return array
+     */
+    public function getUsersListForKogort()
+    {
+        $startDate = date('Y-m-d');
+        $endDate = date('Y-m-d', strtotime($startDate . ' +7 days'));
+
+        $salesPhone = Sales::find()
+            ->where(['>=', 'date', "$startDate 00:00:00"])
+            ->andWhere(['<=', 'date', "$endDate 23:59:59"])
+            ->distinct('phone')
+            ->select('phone')
+            ->column();
+
+        $memorableDate = UsersEvents::find()
+            ->where(['>=', 'date', "$startDate 00:00:00"])
+            ->andWhere(['<=', 'date', "$endDate 23:59:59"])
+            ->distinct('phone')
+            ->select('phone')
+            ->column();
+
+        $usersArray = array_unique(array_merge($salesPhone, $memorableDate));
+
+        $users = Users::find()
+            ->andWhere(['phone' => $usersArray])
+//            ->andWhere() //заглушка на проверку что он уже участвовал в
+            ->all();
+        return $users;
+    }
+
 }
\ No newline at end of file