]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Дополнительные поля
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 12:20:11 +0000 (15:20 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 12:20:11 +0000 (15:20 +0300)
erp24/controllers/UsersMessageManagementController.php
erp24/records/UsersMessageManagement.php
erp24/views/users-message-management/index.php

index 633f771267a3e1beedc5dad00424259546bfd5c4..3ef1eb497c493318971611ed8d9f2d8bc4f3741f 100644 (file)
@@ -109,6 +109,11 @@ class UsersMessageManagementController extends Controller
             $model->updated_at = date('Y-m-d H:i:s');
             $model->updated_by = Yii::$app->user->id;
             if ($model->validate()) {
+                $model->offer_1 = $model->replaceShortcodes($model->offer_1);
+                $model->offer_2 = $model->replaceShortcodes($model->offer_2);
+                //$model->offer_3 = $model->replaceShortcodes($model->offer_3);
+                $model->offer_whatsapp = $model->replaceShortcodes($model->offer_whatsapp);
+                $model->offer_text = $model->replaceShortcodes($model->offer_text);
                 $model->save();
                 $newAttributes = $model->getAttributes();
                 self::saveLogs($oldAttributes, $newAttributes);
index 7563cf5f589f02756137c704da2d0e0e9537cdac..3c7ec25ebb452d0d6e4b93ab7409cee9521757d3 100644 (file)
@@ -33,6 +33,8 @@ use Yii;
  */
 class UsersMessageManagement extends \yii\db\ActiveRecord
 {
+    public $test_phones_list; // Виртуальное свойство
+    public $test_phones_active; // Виртуальное свойство
 
     const TYPE_TARGET = 'target';
     const TYPE_WHATSAPP = 'whatsapp';
@@ -67,6 +69,8 @@ class UsersMessageManagement extends \yii\db\ActiveRecord
             [['offer_1', 'offer_2', 'offer_3', 'offer_whatsapp', 'offer_text', 'date_end'], 'string'],
             [['offer_1', 'offer_2'], 'string', 'max' => 10000, 'tooLong' => '{attribute} должно содержать не более 10000 символов'],
             [['offer_whatsapp', 'offer_text'], 'string', 'max' => 900, 'tooLong' => '{attribute} должно содержать не более 900 символов'],
+            [['test_phones_list'], 'string'],
+            [['test_phones_active'], 'boolean'],
         ];
     }
 
@@ -111,4 +115,14 @@ class UsersMessageManagement extends \yii\db\ActiveRecord
     {
         return $this->day_before_step1 + 1;
     }
+
+    public function getTestPhonesList()
+    {
+        return $this->test_phones_list ?? '';
+    }
+
+    public function replaceShortcodes($message)
+    {
+        return str_replace('[NumberOfBonuses]', $this->bonus, $message);
+    }
 }
index f3424f6ef35802e4997ed6089df26457d9009df6..706eb1930ffb7d4f785ef2c9bcd0772fcc8a56f8 100644 (file)
@@ -70,12 +70,13 @@ $this->registerCss('
 
     <div class="card">
         <div class="card-body">
-            <div id="mainTab">
-                <div class="row">
-                    <div class="col-2 mt-2">
+            <div id="mainTab" style="display:flex;">
+                <div class="w-50">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Дата начала
                     </div>
-                    <div class="col-2">
+                    <div class="col-6">
                         <?= $form->field($model, 'date_start')->widget(DateTimePicker::class, [
                             'language' => 'ru',
                             'template' => '{input}',
@@ -87,11 +88,11 @@ $this->registerCss('
                         ])->label(false) ?>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Дата конца
                     </div>
-                    <div class="col-2">
+                    <div class="col-6">
                         <?= $form->field($model, 'date_end')->widget(DateTimePicker::class, [
                             'language' => 'ru',
                             'template' => '{input}',
@@ -103,19 +104,19 @@ $this->registerCss('
                         ])->label(false) ?>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
-                        Количество бонусов
+                    <div class="row">
+                    <div class="col-4 mt-2">
+                        Количество бонусов [NumberOfBonuses]
                     </div>
-                    <div class="col-2">
+                    <div class="col-6">
                         <?= $form->field($model, 'bonus')->textInput(['type' => 'number'])->label(false) ?>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         HOLD клиентов
                     </div>
-                    <div class="col-4">
+                    <div class="col-8">
                         <div class="d-inline-block">
                             <?php $attr = $model->hold_active ? ['type' => 'number'] : ['type' => 'number', 'readonly' => true]; ?>
                             <?= $form->field($model, 'hold')->textInput($attr)->label(false) ?>
@@ -131,11 +132,11 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Первый этап
                     </div>
-                    <div class="col-4">
+                    <div class="col-8">
                         <div class="d-inline-block">
                             <?php $attr = $model->day_before_step1_active ? ['type' => 'number'] : ['type' => 'number', 'readonly' => true]; ?>
                             <?= $form->field($model, 'day_before_step1')->textInput($attr)->label(false) ?>
@@ -146,11 +147,11 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Второй этап
                     </div>
-                    <div class="col-4">
+                    <div class="col-8">
                         <div class="d-inline-block">
                             <?php $attr = $model->day_before_step2_active ? ['type' => 'number'] : ['type' => 'number', 'readonly' => true]; ?>
                             <?= $form->field($model, 'day_before_step2')->textInput($attr)->label(false) ?>
@@ -161,11 +162,11 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Третий этап
                     </div>
-                    <div class="col-4">
+                    <div class="col-8">
                         <div class="d-inline-block">
                             <?php $attr = $model->day_before_step3_active ? ['type' => 'number'] : ['type' => 'number', 'readonly' => true]; ?>
                             <?= $form->field($model, 'day_before_step3')->textInput($attr)->label(false) ?>
@@ -176,11 +177,11 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Действие бонусов
                     </div>
-                    <div class="col-4">
+                    <div class="col-8">
                         <div class="d-inline-block">
                             <?php $attr = ['type' => 'number', 'readonly' => true]; ?>
                             <?= $form->field($model, 'bonus_action')->textInput(array_merge($attr, [
@@ -189,8 +190,8 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
-                <div class="row">
-                    <div class="col-2 mt-2">
+                    <div class="row">
+                    <div class="col-4 mt-2">
                         Активность рассылки
                     </div>
                     <div class="col-4">
@@ -199,22 +200,46 @@ $this->registerCss('
                         </div>
                     </div>
                 </div>
+            </div>
+                <div class="w-50">
+                    <div class="row">
+                    <div class="col-4 mt-2">
+                         Тестовые телефоны
+                    </div>
+                    <div class="col-8">
+                        <div class="">
+                            <?= $form->field($model, 'test_phones_list')->textarea(['rows' => 8])->label(false) ?>
+                        </div>
+                    </div>
+                </div>
+                    <div class="row">
+                        <div class="col-4 mt-2">
+                            Активность тестой рассылки
+                        </div>
+                        <div class="col-4">
+                            <div class="d-inline-block">
+                                <?= $form->field($model, 'test_phones_active')->checkbox(['unchecked' => false], false)->label(false) ?>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
             </div>
             <div id="messageTab">
                 <div class="row">
                     <div class="col-6">
-                        <?= $form->field($model, 'offer_1')->textarea(['rows' => 10]) ?>
+                        <?= $form->field($model, 'offer_1')->textarea(['rows' => 10])->hint('Используйте [NumberOfBonuses] для отображения количества бонусов.') ?>
                     </div>
                     <div class="col-6">
-                        <?= $form->field($model, 'offer_2')->textarea(['rows' => 10]) ?>
+                        <?= $form->field($model, 'offer_2')->textarea(['rows' => 10])->hint('Используйте [NumberOfBonuses] для отображения количества бонусов.') ?>
                     </div>
                 </div>
                 <div class="row">
                     <div class="col-6">
-                        <?= $form->field($model, 'offer_whatsapp')->textarea(['rows' => 7]) ?>
+                        <?= $form->field($model, 'offer_whatsapp')->textarea(['rows' => 7])->hint('Используйте [NumberOfBonuses] для отображения количества бонусов.') ?>
                     </div>
                     <div class="col-6">
-                        <?= $form->field($model, 'offer_text')->textarea(['rows' => 7]) ?>
+                        <?= $form->field($model, 'offer_text')->textarea(['rows' => 7])->hint('Используйте [NumberOfBonuses] для отображения количества бонусов.') ?>
                     </div>
                 </div>
             </div>