]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки и добавление метода обновления лимита feature_fomichev_erp-353_send_whatsapp_message_integration
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 11 Mar 2025 10:21:41 +0000 (13:21 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 11 Mar 2025 10:21:41 +0000 (13:21 +0300)
erp24/commands/CronController.php
erp24/views/users-message-management/index.php
erp24/views/users-message-management/logs.php
erp24/views/users-whatsapp-message/index.php
erp24/views/users-whatsapp-message/view.php

index 3570e31aca8c03667197ec3d1e03feaec842d0f2..323808475766a517d38427a706e026e4a83d2b14 100644 (file)
@@ -1237,6 +1237,61 @@ class CronController extends Controller
             "Обновление бонусных уровней завершено.\n",
             BaseConsole::FG_GREEN
         );
+        return ExitCode::OK;
+    }
+
+    public function actionCheckWhatsappLimit()
+    {
+        $messagesSettings = UsersMessageManagement::find()->one();
+        if (!$messagesSettings) {
+            $this->stdout(
+                "Рассылка неактивна (не найдена настройка). Обновление информации о канале прервано.\n",
+                BaseConsole::FG_RED
+            );
+            return ExitCode::UNAVAILABLE;
+        }
+        if (!empty($messagesSettings->channel_limit)) {
+            $this->stdout(
+                "Текущий лимит сообщений {$messagesSettings->channel_limit}.\n",
+                BaseConsole::FG_GREEN
+            );
+        }
+
+        if (!empty($messagesSettings->channel_name)) {
+            $channelData = WhatsappService::getChannelByName($messagesSettings->channel_name);
+            if (!empty($channelData)) {
+                if (isset($channelData['messagingLimit'])) {
+                    Yii::warning("Лимит {$channelData['messagingLimit']}");
+                    $messagesSettings->channel_limit = $channelData['messagingLimit'];
+                }
+            } else {
+                $this->stdout(
+                    "Не удалось получить данные по лимиту.\n",
+                    BaseConsole::FG_RED
+                );
+            }
+        } else {
+            $this->stdout(
+                "Не удалось получить имя канала из настроек.\n",
+                BaseConsole::FG_RED
+            );
+        }
+
+        if ($messagesSettings->save()) {
+            $this->stdout(
+                "Обновленный лимит сообщений {$messagesSettings->channel_limit}.\n",
+                BaseConsole::FG_GREEN
+            );
+        } else {
+            $this->stdout(
+                "Не удалось обновить настройки.\n" . json_encode($messagesSettings->getErrors(), JSON_UNESCAPED_UNICODE),
+                BaseConsole::FG_RED
+            );
+        }
+
+
+
+
         return ExitCode::OK;
     }
 
index 8c53a3879bf8a5a3daf54e98054ef2b46903555e..c9785d298efbdbcdfbebe27cc026d73c217241de 100644 (file)
@@ -279,14 +279,14 @@ $this->registerCss('
                             </div>
                             <div id="whatsAppSettings" class="collapse">
                                 <div class="card-body">
-                                    <?= $form->field($model, 'channel_name')->textInput()->label('Имя канала') ?>
+                                    <?= $form->field($model, 'channel_name')->textInput(['required' => true])->label('Имя канала <span class="text-danger">*</span>') ?>
                                     <?= $form->field($model, 'channel_id')->textInput()->label('Идентификатор канала - подпись') ?>
-                                    <?= $form->field($model, 'channel_limit')->textInput(['type' => 'number'])->label('Суточный лимит сообщений') ?>
-                                    <?= $form->field($model, 'cascade_name')->textInput()->label('Имя каскада') ?>
-                                    <?= $form->field($model, 'cascade_id')->textInput(['type' => 'number'])->label('ID каскада') ?>
-                                    <?= $form->field($model, 'subject_id')->textInput(['type' => 'number'])->label('Идентификатор подписи') ?>
-                                    <?= $form->field($model, 'template_name')->textInput()->label('Имя шаблона') ?>
-                                    <?= $form->field($model, 'template_id')->textInput(['type' => 'number'])->label('Идентификатор шаблона') ?>
+                                    <?= $form->field($model, 'channel_limit')->textInput(['type' => 'number', 'readonly' => true])->label('Суточный лимит сообщений') ?>
+                                    <?= $form->field($model, 'cascade_name')->textInput(['required' => true])->label('Имя каскада <span class="text-danger">*</span>') ?>
+                                    <?= $form->field($model, 'cascade_id')->textInput(['type' => 'number', 'readonly' => true])->label('ID каскада') ?>
+                                    <?= $form->field($model, 'subject_id')->textInput(['type' => 'number', 'readonly' => true])->label('Идентификатор подписи') ?>
+                                    <?= $form->field($model, 'template_name')->textInput(['required' => true])->label('Имя шаблона <span class="text-danger">*</span>') ?>
+                                    <?= $form->field($model, 'template_id')->textInput(['type' => 'number', 'readonly' => true])->label('Идентификатор шаблона') ?>
                                     <?= $form->field($model, 'callback_status_url')->textInput()->label('URL приема колбеков статусов сообщений') ?>
                                 </div>
                             </div>
index 4a365f3a6fa60f96592193a955f1e40803a01bd9..950d9186bc291f442db622280a951f2560d4a172 100644 (file)
@@ -77,6 +77,11 @@ use dosamigos\datetimepicker\DateTimePicker;
 
     <?php ActiveForm::end() ?>
 
+    <p>
+        <?= Html::a('Сообщения Telegram', ['/users-telegram-message/index'], ['class' => 'btn btn-success']) ?>
+        <?= Html::a('Сообщения Whatsapp', ['/users-whatsapp-message/index'], ['class' => 'btn btn-success']) ?>
+    </p>
+
     <div class="row">
         <div class="col-12">
             <?= GridView::widget([
index 16559c1c1f76961cbdbf47ae13e23f2e73eaa06f..67eafd11b013427390009e355a0bbef0171fb93f 100644 (file)
@@ -38,7 +38,8 @@ $this->params['breadcrumbs'][] = $this->title;
             'status',
             'created_at',
             [
-                'class' => ActionColumn::className(),
+                'class' => ActionColumn::class,
+                'template' => '{view}',
                 'urlCreator' => function ($action, UsersWhatsappMessage $model, $key, $index, $column) {
                     return Url::toRoute([$action, 'id' => $model->id]);
                  }
index 485b42b4d85b6028c95e3ede06281d0c79e591e0..a98152d91f6d87a9b73b9b53ce28b24baf8fb385 100644 (file)
@@ -11,21 +11,10 @@ $this->params['breadcrumbs'][] = ['label' => 'Users Whatsapp Messages', 'url' =>
 $this->params['breadcrumbs'][] = $this->title;
 \yii\web\YiiAsset::register($this);
 ?>
-<div class="users-whatsapp-message-view">
-
+<div class="users-whatsapp-message-view p-4">
+    <?= Html::a('Назад', ['index'], ['class' => 'btn btn-primary m-5']) ?>
     <h1><?= Html::encode($this->title) ?></h1>
 
-    <p>
-        <?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
-        <?= Html::a('Delete', ['delete', 'id' => $model->id], [
-            'class' => 'btn btn-danger',
-            'data' => [
-                'confirm' => 'Are you sure you want to delete this item?',
-                'method' => 'post',
-            ],
-        ]) ?>
-    </p>
-
     <?= DetailView::widget([
         'model' => $model,
         'attributes' => [