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;
]);
}
+ 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);
--- /dev/null
+<?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'],
+ ];
+ }
+}
--- /dev/null
+<?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; ?>
+
+
<?= 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]); ?>