]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Дополнительные поля в БД
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 13:21:51 +0000 (16:21 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 13:21:51 +0000 (16:21 +0300)
erp24/migrations/m241226_125843_add_test_phones_fields_to_users_message_management.php [new file with mode: 0644]
erp24/records/UsersMessageManagement.php
erp24/views/users-message-management/index.php

diff --git a/erp24/migrations/m241226_125843_add_test_phones_fields_to_users_message_management.php b/erp24/migrations/m241226_125843_add_test_phones_fields_to_users_message_management.php
new file mode 100644 (file)
index 0000000..07216b0
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241226_125843_add_test_phones_fields_to_users_message_management
+ */
+class m241226_125843_add_test_phones_fields_to_users_message_management extends Migration
+{
+    const TABLE_NAME = 'erp24.users_message_management';
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        if ($this->db->getTableSchema(self::TABLE_NAME, true) === null) {
+            return;
+        }
+
+        if (!$this->db->getTableSchema(self::TABLE_NAME)->getColumn('test_phones_list')) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'test_phones_list',
+                $this->text()->comment('Список тестовых телефонов')
+            );
+        }
+
+        if (!$this->db->getTableSchema(self::TABLE_NAME)->getColumn('test_phones_active')) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'test_phones_active',
+                $this->tinyInteger(1)->defaultValue(0)->comment('Активность тестовой рассылки')
+            );
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        if ($this->db->getTableSchema(self::TABLE_NAME, true) === null) {
+            return;
+        }
+
+        if ($this->db->getTableSchema(self::TABLE_NAME)->getColumn('test_phones_list')) {
+            $this->dropColumn(self::TABLE_NAME, 'test_phones_list');
+        }
+
+        if ($this->db->getTableSchema(self::TABLE_NAME)->getColumn('test_phones_active')) {
+            $this->dropColumn(self::TABLE_NAME, 'test_phones_active');
+        }
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m241226_125843_add_test_phones_fields_to_users_message_management cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}
index 3c7ec25ebb452d0d6e4b93ab7409cee9521757d3..c1a8ab945a9604837da1aabe08141dad8f1a936f 100644 (file)
@@ -30,11 +30,11 @@ use Yii;
  * @property int $day_before_step3_active 0 - поле деактивировано, 1 - поле активировано
  * @property int $active 0 - поле деактивировано, 1 - поле активировано
  * @property string|null $date_end Дата и время завершения события
+ * @property string $test_phones_list Список тестовых телефонов
+ * @property string $test_phones_active Активность тестового списка
  */
 class UsersMessageManagement extends \yii\db\ActiveRecord
 {
-    public $test_phones_list; // Виртуальное свойство
-    public $test_phones_active; // Виртуальное свойство
 
     const TYPE_TARGET = 'target';
     const TYPE_WHATSAPP = 'whatsapp';
@@ -64,13 +64,11 @@ class UsersMessageManagement extends \yii\db\ActiveRecord
             [['day_before_step1', 'day_before_step2', 'day_before_step3', 'created_by', 'updated_by',
                 'hold', 'hold_active', 'day_before_step1_active', 'day_before_step2_active', 'day_before_step3_active', 'active'], 'default', 'value' => null],
             [['day_before_step1', 'day_before_step2', 'day_before_step3', 'created_by', 'updated_by',
-                'hold', 'hold_active', 'day_before_step1_active', 'day_before_step2_active', 'day_before_step3_active', 'active'], 'integer'],
-            [['date_start', 'date_last_scenario', 'created_at', 'updated_at', 'date_end'], 'safe'],
-            [['offer_1', 'offer_2', 'offer_3', 'offer_whatsapp', 'offer_text', 'date_end'], 'string'],
+                'hold', 'hold_active', 'day_before_step1_active', 'day_before_step2_active', 'day_before_step3_active', 'active', 'test_phones_active'], 'integer'],
+            [['date_start', 'date_last_scenario', 'created_at', 'updated_at', 'date_end', 'test_phones_list'], 'safe'],
+            [['offer_1', 'offer_2', 'offer_3', 'offer_whatsapp', 'offer_text', 'date_end', 'test_phones_list'], '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'],
         ];
     }
 
@@ -108,6 +106,9 @@ class UsersMessageManagement extends \yii\db\ActiveRecord
             'day_before_step2_active' => 'Дней до шага 2 активность',
             'day_before_step3_active' => 'Дней до шага 3 активность',
             'active' => 'Активность рассылки',
+            'bonus_action' => 'Срок действия бонуса',
+            'test_phones_list' => 'Список тестовых телефонов',
+            'test_phones_active' => 'Активность тестовой рассылки',
         ];
     }
 
index 706eb1930ffb7d4f785ef2c9bcd0772fcc8a56f8..e4e028c4fde9968f24a1d2aeb0779b52e4e50b20 100644 (file)
@@ -142,7 +142,10 @@ $this->registerCss('
                             <?= $form->field($model, 'day_before_step1')->textInput($attr)->label(false) ?>
                         </div>
                         <div class="d-inline-block px-5">
-                            <?= $form->field($model, 'day_before_step1_active')->checkbox(['unchecked' => false, 'onchange'
+                            <?= $form->field($model, 'day_before_step1_active', [
+                                'options' => ['class' => 'form-check form-switch']
+                            ])
+                                ->checkbox(['unchecked' => false, 'class' => 'form-check-input', 'onchange'
                             => 'setReadonly("#usersmessagemanagement-day_before_step1", this.checked);'], false)->label(false) ?>
                         </div>
                     </div>
@@ -157,7 +160,9 @@ $this->registerCss('
                             <?= $form->field($model, 'day_before_step2')->textInput($attr)->label(false) ?>
                         </div>
                         <div class="d-inline-block px-5">
-                            <?= $form->field($model, 'day_before_step2_active')->checkbox(['unchecked' => false, 'onchange'
+                            <?= $form->field($model, 'day_before_step2_active', [
+                                'options' => ['class' => 'form-check form-switch']
+                            ])->checkbox(['unchecked' => false, 'class' => 'form-check-input', 'onchange'
                             => 'setReadonly("#usersmessagemanagement-day_before_step2", this.checked);'], false)->label(false) ?>
                         </div>
                     </div>
@@ -172,7 +177,9 @@ $this->registerCss('
                             <?= $form->field($model, 'day_before_step3')->textInput($attr)->label(false) ?>
                         </div>
                         <div class="d-inline-block px-5">
-                            <?= $form->field($model, 'day_before_step3_active')->checkbox(['unchecked' => false, 'onchange'
+                            <?= $form->field($model, 'day_before_step3_active', [
+                                'options' => ['class' => 'form-check form-switch'],
+                            ])->checkbox(['unchecked' => false, 'class' => 'form-check-input', 'onchange'
                             => 'setReadonly("#usersmessagemanagement-day_before_step3", this.checked);'], false)->label(false) ?>
                         </div>
                     </div>
@@ -196,7 +203,9 @@ $this->registerCss('
                     </div>
                     <div class="col-4">
                         <div class="d-inline-block">
-                            <?= $form->field($model, 'active')->checkbox(['unchecked' => false], false)->label(false) ?>
+                            <?= $form->field($model, 'active', [
+                                'options' => ['class' => 'form-check form-switch'],
+                            ])->checkbox(['unchecked' => false, 'class' => 'form-check-input'], false)->label(false) ?>
                         </div>
                     </div>
                 </div>
@@ -204,7 +213,8 @@ $this->registerCss('
                 <div class="w-50">
                     <div class="row">
                     <div class="col-4 mt-2">
-                         Тестовые телефоны
+                        <p>Тестовые телефоны</p>
+                        <span class="text-muted">Список телефонов через запятую, для тестовой рассылки</span>
                     </div>
                     <div class="col-8">
                         <div class="">
@@ -214,11 +224,14 @@ $this->registerCss('
                 </div>
                     <div class="row">
                         <div class="col-4 mt-2">
-                            Активность тестой рассылки
+                            <p>Активность тестой рассылки</p>
+                            <span class="text-muted">При включенном режиме рассылка будет только по тестовым номерам</span>
                         </div>
                         <div class="col-4">
                             <div class="d-inline-block">
-                                <?= $form->field($model, 'test_phones_active')->checkbox(['unchecked' => false], false)->label(false) ?>
+                                <?= $form->field($model, 'test_phones_active', [
+                                    'options' => ['class' => 'form-check form-switch'],
+                                ])->checkbox(['unchecked' => false, 'class' => 'form-check-input'], false)->label(false) ?>
                             </div>
                         </div>
                     </div>