Exemplo n.º 1
0
 public function actionIndex()
 {
     $searchModel = new ParcelsSearch();
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
     if (isset($_POST['new-orders'])) {
         $count = Parcels::getNewShopOrders();
         Yii::$app->session->setFlash('success', 'Добавлено ' . $count . ' заказов.');
     }
     if (isset($_POST['update-orders'])) {
         $count = Parcels::getUpdateShopOrders();
         Yii::$app->session->setFlash('success', 'Обновлено ' . $count . ' заказов.');
     }
     if (isset($_POST['update-status'])) {
         $count = Parcels::getDeliveryStatus();
         Yii::$app->session->setFlash('success', 'Обновлено ' . $count . ' заказов.');
     }
     if (isset($_POST['send-mails'])) {
         $closed = Parcels::find()->where(['status' => 'enabled'])->andWhere(['IN', 'delivery_status', ["Возврат. Вовремя.", "Вовремя. Доставлено"]])->orderBy('id')->all();
         $count_closed = 0;
         foreach ($closed as $model) {
             $model->status = 'disabled';
             if ($model->save()) {
                 $count_closed++;
             }
         }
         $query = Parcels::find()->where(['status' => 'enabled'])->andWhere(['IN', 'delivery_status', ["Опоздание. Доставлено", "Опоздание. Не доставлено", "Возврат. Опоздание."]])->orderBy('id')->all();
         $count_mailed = 0;
         foreach ($query as $model) {
             $result = Parcels::SendMail($model);
             if ($result) {
                 $model->mailed = 'yes';
                 $model->status = 'disabled';
                 if ($model->save()) {
                     $count_mailed++;
                 }
             }
         }
         Yii::$app->session->setFlash('success', 'Отправлено ' . $count_mailed . ' писем. Закрыто ' . $count_closed . ' заказов.');
     }
     if (Yii::$app->request->post('hasEditable')) {
         $model = Parcels::findOne(Yii::$app->request->post('editableKey'));
         $out = Json::encode(['output' => '', 'message' => '']);
         $model->delivery_status = current($_POST['Parcels'])['delivery_status'];
         $model->save();
         $output = $_POST['Parcels']['delivery_status'];
         $out = Json::encode(['output' => $output, 'message' => '']);
         echo $out;
         return;
     }
     return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
 }