From 588be5609ec68d041e7de58e652b7c0db1672c9e Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 26 Dec 2024 16:21:51 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82?= =?utf8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F?= =?utf8?q?=20=D0=B2=20=D0=91=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...nes_fields_to_users_message_management.php | 69 +++++++++++++++++++ erp24/records/UsersMessageManagement.php | 15 ++-- .../views/users-message-management/index.php | 27 ++++++-- 3 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 erp24/migrations/m241226_125843_add_test_phones_fields_to_users_message_management.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 index 00000000..07216b0a --- /dev/null +++ b/erp24/migrations/m241226_125843_add_test_phones_fields_to_users_message_management.php @@ -0,0 +1,69 @@ +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; + } + */ +} diff --git a/erp24/records/UsersMessageManagement.php b/erp24/records/UsersMessageManagement.php index 3c7ec25e..c1a8ab94 100644 --- a/erp24/records/UsersMessageManagement.php +++ b/erp24/records/UsersMessageManagement.php @@ -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' => 'Активность тестовой рассылки', ]; } diff --git a/erp24/views/users-message-management/index.php b/erp24/views/users-message-management/index.php index 706eb193..e4e028c4 100644 --- a/erp24/views/users-message-management/index.php +++ b/erp24/views/users-message-management/index.php @@ -142,7 +142,10 @@ $this->registerCss(' field($model, 'day_before_step1')->textInput($attr)->label(false) ?>
- field($model, 'day_before_step1_active')->checkbox(['unchecked' => false, 'onchange' + 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) ?>
@@ -157,7 +160,9 @@ $this->registerCss(' field($model, 'day_before_step2')->textInput($attr)->label(false) ?>
- field($model, 'day_before_step2_active')->checkbox(['unchecked' => false, 'onchange' + 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) ?>
@@ -172,7 +177,9 @@ $this->registerCss(' field($model, 'day_before_step3')->textInput($attr)->label(false) ?>
- field($model, 'day_before_step3_active')->checkbox(['unchecked' => false, 'onchange' + 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) ?>
@@ -196,7 +203,9 @@ $this->registerCss('
- field($model, 'active')->checkbox(['unchecked' => false], false)->label(false) ?> + field($model, 'active', [ + 'options' => ['class' => 'form-check form-switch'], + ])->checkbox(['unchecked' => false, 'class' => 'form-check-input'], false)->label(false) ?>
@@ -204,7 +213,8 @@ $this->registerCss('
- Тестовые телефоны +

Тестовые телефоны

+ Список телефонов через запятую, для тестовой рассылки
@@ -214,11 +224,14 @@ $this->registerCss('
- Активность тестой рассылки +

Активность тестой рассылки

+ При включенном режиме рассылка будет только по тестовым номерам
- field($model, 'test_phones_active')->checkbox(['unchecked' => false], false)->label(false) ?> + field($model, 'test_phones_active', [ + 'options' => ['class' => 'form-check form-switch'], + ])->checkbox(['unchecked' => false, 'class' => 'form-check-input'], false)->label(false) ?>
-- 2.39.5