From 6039eb7c1f95dc78abc0c56caf1a09a629982195 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Wed, 17 Jul 2024 14:33:43 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=2020%=20=D0=B1=D0=BE=D0=BD=D1=83=D1=81=D0=B0=D0=BC?= =?utf8?q?=D0=B8=20=D1=82=D0=B5=D0=BC,=20=D0=BA=D0=BE=D0=BC=D1=83=20=D0=BD?= =?utf8?q?=D0=B5=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=D0=B8=20?= =?utf8?q?=D0=B7=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B2=D1=83=D1=8E=20=D0=BF?= =?utf8?q?=D0=BE=D0=BA=D1=83=D0=BF=D0=BA=D1=83=20=D0=BF=D0=BE=D1=81=D0=BB?= =?utf8?q?=D0=B5=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=86?= =?utf8?q?=D0=B8=D0=B8=20=D0=B2=20=D1=82=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../Add20TelegramCreatedAtIsNullAction.php | 62 +++++++++++++++++++ erp24/controllers/BonusController.php | 1 + erp24/modul/bonus/bonus_users.php | 2 +- .../add-20-telegram-created-at-is-null.php | 40 ++++++++++++ 4 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 erp24/actions/bonus/Add20TelegramCreatedAtIsNullAction.php create mode 100644 erp24/views/bonus/add-20-telegram-created-at-is-null.php diff --git a/erp24/actions/bonus/Add20TelegramCreatedAtIsNullAction.php b/erp24/actions/bonus/Add20TelegramCreatedAtIsNullAction.php new file mode 100644 index 00000000..1f817f58 --- /dev/null +++ b/erp24/actions/bonus/Add20TelegramCreatedAtIsNullAction.php @@ -0,0 +1,62 @@ +where(['telegram_is_subscribed' => 1]) + ->andWhere(['>=', 'date', '2024-07-15 17:30:00']) + ->andWhere(['<=', 'date', '2024-07-17 12:37:16+03']) + ->andWhere(['IS NOT', 'date_first_sale', null]) + ->orderBy('id desc') + ->all(); + + $hasBonuses = []; + + foreach ($users as $user) { + /** @var $user Users */ + $ub = UsersBonus::find()->where(['phone' => $user->phone]) + ->andWhere(['between', 'date', + date('Y-m-d H:i:00', strtotime('-3 hour', strtotime($user->date_first_sale))), + date('Y-m-d H:i:59', strtotime($user->date_first_sale))])->all(); + $has20 = false; + $has10 = null; + foreach ($ub as $usersBonus) { + /** @var $usersBonus UsersBonus */ + if (strpos($usersBonus->name, '20%') !== false) { + $has20 = true; + } + if (strpos($usersBonus->name, '10%') !== false) { + $has10 = $usersBonus; + } + } + $hasBonuses[$user->id] = [$has20, $has10 != null]; + if (Yii::$app->request->isPost) { + if (!$has20 && $has10) { + $userBonus20 = new UsersBonus; + $userBonus20->setAttributes($has10->getAttributes()); + $userBonus20->isNewRecord = true; + $userBonus20->name = str_replace('10%', '20%', $userBonus20->name); + $userBonus20->bonus = floor($userBonus20->price * 0.2); + $userBonus20->date_end = date("Y-m-d H:i:s", strtotime("+3 month", strtotime($userBonus20->date_start))); + $userBonus20->save(); + if ($userBonus20->getErrors()) { + throw new Exception(Json::encode($userBonus20->getErrors())); + } + $hasBonuses[$user->id] = [true, true]; + } + } + } + + return $this->controller->render('add-20-telegram-created-at-is-null', + compact('users', 'hasBonuses')); + } +} \ No newline at end of file diff --git a/erp24/controllers/BonusController.php b/erp24/controllers/BonusController.php index a0c7197c..882c5838 100644 --- a/erp24/controllers/BonusController.php +++ b/erp24/controllers/BonusController.php @@ -23,6 +23,7 @@ class BonusController extends \yii\web\Controller 'sex' => \yii_app\actions\bonus\SexAction::class, 'add-bonus-if-written-off' => \yii_app\actions\bonus\AddBonusIfWrittenOffAction::class, 'add-bonuses' => \yii_app\actions\bonus\AddBonuses::class, + 'add-20-telegram-created-at-is-null' => \yii_app\actions\bonus\Add20TelegramCreatedAtIsNullAction::class, ]; } public function actionBonusUsers() { return $this->render('bonus-users'); } diff --git a/erp24/modul/bonus/bonus_users.php b/erp24/modul/bonus/bonus_users.php index 4bcd4a71..44873cb7 100644 --- a/erp24/modul/bonus/bonus_users.php +++ b/erp24/modul/bonus/bonus_users.php @@ -169,7 +169,7 @@ if(!empty($date1)) echo'success'; else echo'default'; echo'">даты клиента'; if($row["bdate"]!='0000-00-00') { -$barr=explode("-",$row["bdate"]); +$barr=explode("-",$row["bdate"] ?? ''); if (!empty($barr)) { echo '' . ($barr[2] ?? '') . '.' . ($barr[1] ?? '') . '.' . ($barr[0] ?? '') . ''; if (!empty($barr[0])) { diff --git a/erp24/views/bonus/add-20-telegram-created-at-is-null.php b/erp24/views/bonus/add-20-telegram-created-at-is-null.php new file mode 100644 index 00000000..79a13b6a --- /dev/null +++ b/erp24/views/bonus/add-20-telegram-created-at-is-null.php @@ -0,0 +1,40 @@ + + +
+ + + + 'btn btn-warning btn-sm']) ?> + + + +
+
Телефон
+
Подписан?
+
Время регистрации в тг
+
Первая покупка
+
Есть 20%?
+
Есть 10%?
+
+ + +
+
phone ?>
+
telegram_is_subscribed ?>
+
telegram_created_at ?? '-' ?>
+
date_first_sale ?? '-' ?>
+
id][0] ?>
+
id][1] ?>
+
+ + +
-- 2.39.5