diff --git a/controllers/ListManagementController.php b/controllers/ListManagementController.php index 20867f74..1596b76f 100644 --- a/controllers/ListManagementController.php +++ b/controllers/ListManagementController.php @@ -76,6 +76,10 @@ class ListManagementController extends Controller { ]); $updating = \app\models\SyncUrl::findOne(['key_config' => 'updating']); } + + $dataProvider->pagination->pageSize = 20; + if (Yii::$app->request->get("per-page")) + $dataProvider->pagination->pageSize = Yii::$app->request->get("per-page"); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, @@ -808,4 +812,110 @@ class ListManagementController extends Controller { return file_get_contents("http://minio1.beetai.com/biface-school/origin/385/454_20201126101221879048.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20201230%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201230T081350Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df7586a01bb128c0585edd87d1024b1ddb33483fd335e81238103fd2467b4772"); } + public function actionSchedule() { + Yii::$app->response->format = "json"; + if (Yii::$app->request->post()) { + $post = Yii::$app->request->post(); + $model = new \app\models\Schedule(); + $datas = []; + foreach ($post['lists'] as $key => $value) { + $datas[] = [$value, $post['fromTime'], $post['toTime'], $post['fromDate'], $post['toDate'], implode(",", $post['dateOfWeek'])]; + } + $model->multiCreate($datas); + return ["status" => true]; + } else { + return [ + "title" => Yii::t("app", "GAN_LICH_TRINH"), + "form" => $this->renderPartial("schedule", ["type" => "create"]) + ]; + } + } + + public function actionEditSchedule($id) { + Yii::$app->response->format = "json"; + $model = \app\models\Schedule::findOne($id); + if (Yii::$app->request->post()) { + $post = Yii::$app->request->post(); + $dateOfWeek = implode(",", $post['dateOfWeek']); + if ($post['editAll'] == "true" && isset($post['lists'])) { + foreach ($post['lists'] as $key => $value) { + $schedule = \app\models\Schedule::findOne([ + 'from_time' => $model->from_time, + 'to_time' => $model->to_time, + 'from_date' => $model->from_date, + 'to_date' => $model->to_date, + 'date_of_week' => $model->date_of_week, + 'staff_id' => $value + ]); + if ($schedule) { + $schedule->from_time = $post['fromTime']; + $schedule->to_time = $post['toTime']; + $schedule->from_date = $post['fromDate']; + $schedule->to_date = $post['toDate']; + $schedule->date_of_week = $dateOfWeek; + $schedule->save(); + } else { + $modelSchedule = new \app\models\Schedule(); + $modelSchedule->create([ + 'staff_id' => $value, + 'from_time' => $post['fromTime'], + 'to_time' => $post['toTime'], + 'from_date' => $post['fromDate'], + 'to_date' => $post['toDate'], + 'date_of_week' => $dateOfWeek + ]); + } + } + } else { + $model->from_time = $post['fromTime']; + $model->to_time = $post['toTime']; + $model->from_date = $post['fromDate']; + $model->to_date = $post['toDate']; + $model->date_of_week = $dateOfWeek; + $model->save(); + } + return ["status" => true]; + } else { + return [ + "title" => Yii::t("app", "SUA_LICH_TRINH"), + "form" => $this->renderPartial("schedule", [ + "type" => "edit", + "model" => $model + ]) + ]; + } + } + + public function actionDeleteSchedule($id) { + Yii::$app->response->format = "json"; + $model = \app\models\Schedule::findOne($id); + if (Yii::$app->request->post()) { + $post = Yii::$app->request->post(); + if ($post['editAll'] == "true" && isset($post['lists'])) { + foreach ($post['lists'] as $key => $value) { + $schedule = \app\models\Schedule::findOne([ + 'from_time' => $model->from_time, + 'to_time' => $model->to_time, + 'from_date' => $model->from_date, + 'to_date' => $model->to_date, + 'date_of_week' => $model->date_of_week, + 'staff_id' => $value + ]); + if ($schedule) + $schedule->delete(); + } + } else + $model->delete(); + + return ["status" => true]; + } else { + return [ + "title" => Yii::t("app", "XOA_LICH_TRINH"), + "form" => $this->renderPartial("schedule-delete", [ + "model" => $model + ]) + ]; + } + } + } diff --git a/helpers/ListManagementGrid.php b/helpers/ListManagementGrid.php index bfb7d232..8d03707e 100644 --- a/helpers/ListManagementGrid.php +++ b/helpers/ListManagementGrid.php @@ -20,6 +20,24 @@ class ListManagementGrid { }; } + public static function layout($default = 20, $hiddenText = false) { + $pageSize = [10, 20, 50, 100]; + $options = []; + foreach ($pageSize as $key => $value) { + $selected = ""; + if (Yii::$app->request->get("per-page") && Yii::$app->request->get("per-page") == $value) + $selected = "selected"; + if (!Yii::$app->request->get("per-page") && $value == $default) + $selected = "selected"; + $options[] = "