]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Веб интерфейс проверки почты
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 24 Mar 2025 12:57:05 +0000 (15:57 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 24 Mar 2025 12:57:05 +0000 (15:57 +0300)
erp24/controllers/MarketplaceOrdersController.php
erp24/models/FlowwowOrdersForm.php [new file with mode: 0644]
erp24/views/marketplace-orders/get-flowwow-orders.php [new file with mode: 0644]
erp24/views/marketplace-orders/index.php

index d655767a106a2440915df93a4bc0cd9b1db81b6b..68dcad2742326e349ff92b3f7328f05abd901f79 100644 (file)
@@ -2,8 +2,10 @@
 
 namespace app\controllers;
 
+
 use Yii;
 use yii\base\Exception;
+use yii_app\models\FlowwowOrdersForm;
 use yii_app\records\MarketplaceOrders;
 use yii_app\records\MarketplaceOrdersSearch;
 use yii\web\Controller;
@@ -106,6 +108,38 @@ class MarketplaceOrdersController extends Controller
         ]);
     }
 
+    public function actionGetFlowwowOrders()
+    {
+        $model = new FlowwowOrdersForm();
+        $result = null;
+        $progress = [];
+
+        if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post()) && $model->validate()) {
+            $progress[] = "Запуск обработки писем...";
+
+            $messages = MarketplaceService::getFlowwowOrdersFromMail(
+                $model->date,
+                (bool) $model->since,
+                (bool) $model->oldMail,
+                function ($message) use (&$progress) {
+                    $progress[] = $message;
+                },
+                (bool) $model->seen,
+                (bool) $model->unseen
+            );
+
+            $countMessages = count($messages);
+            $count = MarketplaceService::processMessages($messages);
+            $result = "Удалось сохранить {$count} новых заказов из {$countMessages} сообщений почты.";
+        }
+
+        return $this->render('get-flowwow-orders', [
+            'model' => $model,
+            'progress' => $progress,
+            'result' => $result,
+        ]);
+    }
+
     public function actionUpdateToReadyStatus($id)
     {
         $model = $this->findModel($id);
diff --git a/erp24/models/FlowwowOrdersForm.php b/erp24/models/FlowwowOrdersForm.php
new file mode 100644 (file)
index 0000000..6f06047
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+namespace yii_app\models;
+
+use yii\base\Model;
+
+class FlowwowOrdersForm extends Model
+{
+    public $date;
+    public $since;
+    public $oldMail;
+    public $seen;
+    public $unseen;
+
+    public function rules()
+    {
+        return [
+            [['date'], 'date', 'format' => 'php:Y-m-d'],
+            [['since', 'oldMail', 'seen', 'unseen'], 'boolean'],
+        ];
+    }
+}
diff --git a/erp24/views/marketplace-orders/get-flowwow-orders.php b/erp24/views/marketplace-orders/get-flowwow-orders.php
new file mode 100644 (file)
index 0000000..74865b5
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+use yii\helpers\Html;
+use yii\widgets\ActiveForm;
+
+/* @var $this yii\web\View */
+/* @var $model FlowwowOrdersForm */
+/* @var $progress array */
+/* @var $result string */
+
+$this->title = 'Загрузка заказов Flowwow';
+?>
+
+    <h1><?= Html::encode($this->title) ?></h1>
+
+<?php $form = ActiveForm::begin(); ?>
+
+<?= $form->field($model, 'date')->textInput(['type' => 'date'])->label('Дата') ?>
+<?= $form->field($model, 'since')->checkbox() ?>
+<?= $form->field($model, 'oldMail')->checkbox() ?>
+<?= $form->field($model, 'seen')->checkbox() ?>
+<?= $form->field($model, 'unseen')->checkbox() ?>
+
+    <div class="form-group">
+        <?= Html::submitButton('Запустить', ['class' => 'btn btn-primary']) ?>
+    </div>
+
+<?php ActiveForm::end(); ?>
+
+<?php if (!empty($progress)): ?>
+    <h3>Прогресс:</h3>
+    <ul>
+        <?php foreach ($progress as $message): ?>
+            <li><?= Html::encode($message) ?></li>
+        <?php endforeach; ?>
+    </ul>
+<?php endif; ?>
+
+<?php if ($result): ?>
+    <h3>Результат:</h3>
+    <p><?= Html::encode($result) ?></p>
+<?php endif; ?>
+
+
index f454f412ee8e0db078d81844e2ff7e325d4ffd58..15d75c32492776464e44b2a93dee8253785e013c 100644 (file)
@@ -27,6 +27,7 @@ YiiAsset::register($this);
         <?= Html::a('Истории статусов заказов', ['/marketplace-order-status-history/index'], ['class' => 'btn btn-success']) ?>
         <?= Html::a('Типы статусов заказов', ['/marketplace-order-status-types/index'], ['class' => 'btn btn-success']) ?>
         <?= Html::a('Письма с заказами', ['/marketplace-flowwow-emails/index'], ['class' => 'btn btn-success']) ?>
+        <?= Html::a('Проверка почты', ['/marketplace-orders/get-flowwow-orders'], ['class' => 'btn btn-success']) ?>
     </p>
 
     <?php // echo $this->render('_search', ['model' => $searchModel]); ?>