From c22dbb707fd42a37070e5f771d967e2d9fb19c8e Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Tue, 8 Oct 2024 15:51:34 +0300 Subject: [PATCH] =?utf8?q?[ERP-216]=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84?= =?utf8?q?=D0=B5=D0=B9=D1=81=20=D0=B4=D0=BB=D1=8F=20=D0=BD=D0=B0=D1=87?= =?utf8?q?=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B1=D0=BE=D0=BD?= =?utf8?q?=D1=83=D1=81=D0=BE=D0=B2=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20?= =?utf8?q?=D1=84=D0=B0=D0=B9=D0=BB=20=D1=82=D0=B5=D0=BB=D0=B5=D1=84=D0=BE?= =?utf8?q?=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../actions/bonus/AddBonusToListOfPhones.php | 57 ++++++++++++++ erp24/controllers/BonusController.php | 1 + .../bonus/add-bonus-to-list-of-phones.php | 76 +++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 erp24/actions/bonus/AddBonusToListOfPhones.php create mode 100644 erp24/views/bonus/add-bonus-to-list-of-phones.php diff --git a/erp24/actions/bonus/AddBonusToListOfPhones.php b/erp24/actions/bonus/AddBonusToListOfPhones.php new file mode 100644 index 00000000..9a8b05f4 --- /dev/null +++ b/erp24/actions/bonus/AddBonusToListOfPhones.php @@ -0,0 +1,57 @@ +request->isPost) { + $bonus = Yii::$app->request->post('bonus'); + $name = Yii::$app->request->post('name'); + $duration = Yii::$app->request->post('duration'); + $phonesFile = UploadedFile::getInstanceByName('phones'); + $phonesText = file_get_contents($phonesFile->tempName); + $phonesText = preg_replace('/\s+/',' ', $phonesText); + $phonesText = trim($phonesText); + $phones = explode(' ', $phonesText); + + $tipSale = 'bonus' . date('Ymd'); + $alreadyPhones = ArrayHelper::getColumn(UsersBonus::find()->select(['phone'])->where(['phone' => $phones]) + ->andWhere(['tip_sale' => $tipSale])->all(),'phone'); + foreach ($phones as $phone) { + if (!in_array($phone, $alreadyPhones)) { + $usersBonus = new UsersBonus; + $usersBonus->date = date('Y-m-d H:i:s'); + $usersBonus->tip = 'plus'; + $usersBonus->tip_sale = $tipSale; + $usersBonus->phone = $phone; + $usersBonus->name = $name; + $usersBonus->store_id = 0; + $usersBonus->site_id = 0; + $usersBonus->referal_id = 0; + $usersBonus->admin_id = Yii::$app->user->id; + $usersBonus->price = 0; + $usersBonus->price_skidka = 0; + $usersBonus->bonus = intval($bonus); + $usersBonus->store_id_1c = ''; + $usersBonus->seller_id_1c = ''; + $usersBonus->date_start = $usersBonus->date; + $usersBonus->date_end = date('Y-m-d H:i:s', strtotime('+' . $duration . ' days', strtotime($usersBonus->date))); + $usersBonus->save(); + if ($usersBonus->getErrors()) { + throw new \Exception(Json::encode($usersBonus->getErrors())); + } + } + } + Yii::$app->session->setFlash('success', 'Бонусы успешно начислены'); + } + return $this->controller->render('add-bonus-to-list-of-phones'); + } +} \ No newline at end of file diff --git a/erp24/controllers/BonusController.php b/erp24/controllers/BonusController.php index 882c5838..7494d5ba 100644 --- a/erp24/controllers/BonusController.php +++ b/erp24/controllers/BonusController.php @@ -24,6 +24,7 @@ class BonusController extends \yii\web\Controller '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, + 'add-bonus-to-list-of-phones' => \yii_app\actions\bonus\AddBonusToListOfPhones::class, ]; } public function actionBonusUsers() { return $this->render('bonus-users'); } diff --git a/erp24/views/bonus/add-bonus-to-list-of-phones.php b/erp24/views/bonus/add-bonus-to-list-of-phones.php new file mode 100644 index 00000000..386aa13c --- /dev/null +++ b/erp24/views/bonus/add-bonus-to-list-of-phones.php @@ -0,0 +1,76 @@ + + +
+ + session->hasFlash('success')): ?> +
+ + session->getFlash('success') ?> +
+ + + 'form', 'options' => ['enctype' => 'multipart/form-data']]) ?> + +
+
+ 'btn btn-success', 'accept' => ".txt"])?> +
+
+ +
+
+
+ Формат файла (.txt): +
+
+ +
+
+
+ +
+
+ Бонус: 'number']) ?> +
+
+ +
+
+ Описание бонуса: +
+
+ +
+
+ Продолжительность действия бонуса: 'number']) ?> +
+
+ +
+
+ 'btn btn-success', 'onclick' => 'checkSubmit(event);'])?> +
+
+ + + + +
+ + \ No newline at end of file -- 2.39.5