コード例 #1
0
ファイル: AdminController.php プロジェクト: anton-itscript/WM
 /**
  * Send command on station by SMS
  */
 public function actionSendSMSCommand()
 {
     $form = new SMSCommandSendForm();
     /**
      * Update sms status
      */
     if (isset($_GET['view_id']) || isset($_GET['sms_command_id'])) {
         if (isset($_GET['view_id'])) {
             $form->setSMS(SMSCommand::model()->findByPk($_GET['view_id']));
         }
         if (isset($_GET['sms_command_id'])) {
             $form->setSMS(SMSCommand::model()->findByPk($_GET['sms_command_id']));
         }
         if (Yii::app()->request->isAjaxRequest) {
             return $this->renderPartial('__sms_command_status', ['sms' => $form->getSMS()]);
         }
     }
     /**
      * Delete sms
      */
     if (isset($_GET['delete_id'])) {
         SMSCommand::model()->deleteByPk($_GET['delete_id']);
     }
     /**
      * Create sms
      */
     if (isset($_POST['SMSCommandSendForm'])) {
         if ($_POST['send']) {
             $form->setScenario($form::SCENARIO_SEND);
             $form->setAttributes($_POST['SMSCommandSendForm']);
             if ($form->validate()) {
                 $form->getSMS()->setAttributes($form->getAttributes());
                 if ($form->getSMS()->save()) {
                     $form = (new SMSCommandSendForm())->setSMS(SMSCommand::model()->findByPk($form->getSMS()->sms_command_id));
                     Yii::app()->user->setFlash('SendSMSCommandForm_success', "Command send!");
                 }
             }
         }
     }
     /**
      * Grid
      */
     if (isset($_POST['date_range'])) {
         if (preg_match("/([\\d]{1,2})\\/([\\d]{1,2})\\/([\\d]{2,4})/i", $_POST['SMSCommand']['updated_from'], $matches1)) {
             $dateFromViewFormat = $matches1[0];
             $dateFrom = $matches1[3] . '-' . $matches1[1] . '-' . $matches1[2] . ' 00:00:00';
             Yii::app()->request->cookies['dateFrom'] = new CHttpCookie('dateFrom', $dateFromViewFormat);
             Yii::app()->request->cookies['from_date'] = new CHttpCookie('from_date', $dateFrom);
         } else {
             unset(Yii::app()->request->cookies['dateFrom']);
             unset(Yii::app()->request->cookies['from_date']);
         }
         if (preg_match("/([\\d]{1,2})\\/([\\d]{1,2})\\/([\\d]{2,4})/i", $_POST['SMSCommand']['updated_to'], $matches2)) {
             $dateToViewFormat = $matches2[0];
             $dateTo = $matches2[3] . '-' . $matches2[1] . '-' . $matches2[2] . ' 23:59:59';
             Yii::app()->request->cookies['dateTo'] = new CHttpCookie('dateTo', $dateToViewFormat);
             Yii::app()->request->cookies['to_date'] = new CHttpCookie('to_date', $dateTo);
         } else {
             unset(Yii::app()->request->cookies['dateTo']);
             unset(Yii::app()->request->cookies['to_date']);
         }
     }
     if (isset($_GET['reset'])) {
         unset(Yii::app()->request->cookies['dateFrom']);
         unset(Yii::app()->request->cookies['dateTo']);
         unset(Yii::app()->request->cookies['from_date']);
         unset(Yii::app()->request->cookies['to_date']);
     }
     $SMSCommand = new SMSCommand();
     $SMSCommand->unsetAttributes();
     $SMSCommand->from_date = Yii::app()->request->cookies['from_date'];
     $SMSCommand->to_date = Yii::app()->request->cookies['to_date'];
     if ($_GET['SMSCommand']) {
         $SMSCommand->attributes = $_GET['SMSCommand'];
     }
     $dataProvider = $SMSCommand->search();
     //csv
     if ($_GET['getcsv']) {
         $items = $dataProvider->model->findAll($dataProvider->criteria);
         if (!is_null($items)) {
             $data = array();
             foreach ($items as $item) {
                 $dataItem = $item->getAttributes();
                 $data[] = $dataItem;
             }
             $ECSVExporter = new ECSVExporter($data);
             It::downloadFile($ECSVExporter->getString(), 'csv.csv', 'text/csv');
             exit;
         }
     }
     return $this->render('send_sms_command', ['form' => $form, 'dataProvider' => $dataProvider, 'dateFrom' => Yii::app()->request->cookies['dateFrom'], 'dateTo' => Yii::app()->request->cookies['dateTo']]);
 }