From 6d4c0c5e741060e75c3b907558d002e16f428355 Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 24 Mar 2025 15:57:05 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D0=B5=D0=B1=20=D0=B8=D0=BD=D1=82=D0=B5?= =?utf8?q?=D1=80=D1=84=D0=B5=D0=B9=D1=81=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?utf8?q?=D1=80=D0=BA=D0=B8=20=D0=BF=D0=BE=D1=87=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../MarketplaceOrdersController.php | 34 +++++++++++++++ erp24/models/FlowwowOrdersForm.php | 22 ++++++++++ .../marketplace-orders/get-flowwow-orders.php | 43 +++++++++++++++++++ erp24/views/marketplace-orders/index.php | 1 + 4 files changed, 100 insertions(+) create mode 100644 erp24/models/FlowwowOrdersForm.php create mode 100644 erp24/views/marketplace-orders/get-flowwow-orders.php diff --git a/erp24/controllers/MarketplaceOrdersController.php b/erp24/controllers/MarketplaceOrdersController.php index d655767a..68dcad27 100644 --- a/erp24/controllers/MarketplaceOrdersController.php +++ b/erp24/controllers/MarketplaceOrdersController.php @@ -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 index 00000000..6f060479 --- /dev/null +++ b/erp24/models/FlowwowOrdersForm.php @@ -0,0 +1,22 @@ + '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 index 00000000..74865b56 --- /dev/null +++ b/erp24/views/marketplace-orders/get-flowwow-orders.php @@ -0,0 +1,43 @@ +title = 'Загрузка заказов Flowwow'; +?> + +

title) ?>

+ + + +field($model, 'date')->textInput(['type' => 'date'])->label('Дата') ?> +field($model, 'since')->checkbox() ?> +field($model, 'oldMail')->checkbox() ?> +field($model, 'seen')->checkbox() ?> +field($model, 'unseen')->checkbox() ?> + +
+ 'btn btn-primary']) ?> +
+ + + + +

Прогресс:

+ + + + +

Результат:

+

+ + + diff --git a/erp24/views/marketplace-orders/index.php b/erp24/views/marketplace-orders/index.php index f454f412..15d75c32 100644 --- a/erp24/views/marketplace-orders/index.php +++ b/erp24/views/marketplace-orders/index.php @@ -27,6 +27,7 @@ YiiAsset::register($this); 'btn btn-success']) ?> 'btn btn-success']) ?> 'btn btn-success']) ?> + 'btn btn-success']) ?>

render('_search', ['model' => $searchModel]); ?> -- 2.39.5