Yii::$app->params["time"]) $this->redirect(["/dashboard"]); if (Yii::$app->user->isGuest) return $this->redirect(['/site/login']); } /** * {@inheritdoc} */ public function behaviors() { return [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ]; } public function actionIndex() { $this->view->title = 'Khu vực'; $searchModel = new AreaSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, "areaArray" => Area::areaArray() ]); } public function actionCreate() { $model = new Area(); Yii::$app->response->format = "json"; if (Yii::$app->request->post()) { $data = Yii::$app->request->post(); $check = Area::findOne(['code' => $data['Code']]); if ($check) return ["status" => false, "type" => "code"]; if ($model->create($data)) { common::insertSystemLogs(["action" => "insert", "description" => "Thêm mới khu vực: " . $data["Name"], "type" => Yii::$app->controller->id]); return ["status" => true]; } else return ["status" => false, "type" => "error"]; } else { return [ "title" => Html::tag("i", "", ["class" => "fa fa-plus-square"]) . " Thêm", "form" => $this->renderPartial("form", [ "model" => $model, "url" => Url::to(["create"]), "areaArray" => Area::areaArray() ]) ]; } } public function actionUpdate($id) { $model = $this->findModel($id); Yii::$app->response->format = "json"; if (Yii::$app->request->post()) { $data = Yii::$app->request->post(); $check = Area::findOne(['code' => $data['Code']]); if ($check && $check->id != $id) return ["status" => false, "type" => "code"]; $oldCode = $model->code; $model->name = $data["Name"]; $model->code = $data["Code"]; if ($model->pid != 0) $model->pid = $data["Pid"]; $model->description = $data["Description"]; $model->modified_at = time(); if ($model->save()) { Area::updateAll(["pid" => $data["Code"]], ["pid" => $oldCode]); common::insertSystemLogs(["action" => "update", "description" => "Chỉnh sửa khu vực: " . $data["Name"], "type" => Yii::$app->controller->id]); return ["status" => true]; } else return ["status" => false, "type" => "error"]; } else { return [ "title" => Html::tag("i", "", ["class" => "fa fa-edit"]) . " Tùy chỉnh", "form" => $this->renderPartial("form", [ "model" => $model, "url" => Url::to(["update", "id" => $id]), "areaArray" => Area::areaArrayWithOut($id) ]) ]; } } public function actionDelete() { if (Yii::$app->request->post()) { $lists = Yii::$app->request->post("lists"); foreach ($lists as $key => $value) { Area::deleteArea($value); } } } protected function findModel($id) { if (($model = Area::findOne($id)) !== null) { return $model; } throw new NotFoundHttpException('The requested page does not exist.'); } public function actionExport() { $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $toExcelFile[] = ["Mã khu vực", "Tên khu vực", "khu vực cha", "Chú thích"]; $areas = Area::find()->all(); $areaArray = Area::areaArray(); foreach ($areas as $k => $v) { $ExportData[] = $v->code; $ExportData[] = $v->name; $ExportData[] = isset($areaArray[$v->pid]) ? $areaArray[$v->pid] : ""; $ExportData[] = $v->description; $toExcelFile[] = $ExportData; unset($ExportData); } $totals = count($areas) + 1; $activeSheet = $objPHPExcel->getActiveSheet(); $activeSheet->getColumnDimension('A')->setWidth(15); $activeSheet->getColumnDimension('B')->setWidth(50); $activeSheet->getColumnDimension('C')->setWidth(50); $activeSheet->getColumnDimension('D')->setWidth(50); $activeSheet->getStyle("A1:D" . $totals)->getFont()->setName('Time New Roman')->setSize(10); $activeSheet->getStyle("A1:D1")->applyFromArray([ 'fill' => array( 'type' => \PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => '7ac3ec') ) ]); $rowCount = 1; for ($i = 0; $i < count($toExcelFile); $i++) { $column = 'A'; $row = $toExcelFile[$i]; for ($j = 0; $j < count($row); $j++) { if (!isset($row[$j])) $value = NULL; elseif ($row[$j] != "") $value = strip_tags($row[$j]); else $value = ""; $activeSheet->setCellValue($column . $rowCount, $value); $column = chr(ord($column) + 1); } $rowCount++; } $activeSheet->getStyle("A1:D" . $totals)->applyFromArray([ 'alignment' => [ 'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER, ], 'borders' => [ 'allborders' => [ 'style' => \PHPExcel_Style_Border::BORDER_THIN ] ] ]); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); ob_end_clean(); header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="area_' . date("YmdHis") . '.xlsx"'); header('Cache-Control: max-age=0'); common::SaveViaTempFile($objWriter); exit(); } public function actionLogs() { if (Yii::$app->request->isAjax) { Yii::$app->response->format = "json"; return [ "title" => Html::tag("i", "", ["class" => "fa fa-file"]) . " Ghi nhận hệ thống", "form" => \app\widgets\SystemLogsView::widget(['type' => Yii::$app->controller->id]) ]; } } public function actionTree() { if (Yii::$app->request->isAjax) { Yii::$app->response->format = "json"; return [ "title" => Html::tag("i", "", ["class" => "fa fa-sitemap"]) . " Cây thư mục", "form" => \app\widgets\Tree::widget(["model" => new Area()]) ]; } } }