From 33e439de8fe49216c656cbf8923e35cbb4e4f9c8 Mon Sep 17 00:00:00 2001 From: dongpd Date: Mon, 26 Sep 2022 09:43:12 +0700 Subject: [PATCH] update manage schedule --- controllers/ListManagementController.php | 110 +++++++++++++ helpers/ListManagementGrid.php | 39 +++++ messages/en/app.php | 23 ++- messages/ja/app.php | 23 ++- messages/vi/app.php | 23 ++- models/ListManagement.php | 4 + models/Schedule.php | 76 +++++++++ views/extends.tpl | 2 + views/list-management/index.tpl | 39 +++-- views/list-management/list-server.tpl | 2 +- views/list-management/list-to-server.tpl | 2 +- views/list-management/list.tpl | 2 +- views/list-management/schedule-delete.tpl | 71 +++++++++ views/list-management/schedule.tpl | 80 ++++++++++ web/js/common.js | 22 ++- web/js/list-management.js | 184 +++++++++++++++++++++- 16 files changed, 677 insertions(+), 25 deletions(-) create mode 100644 models/Schedule.php create mode 100644 views/list-management/schedule-delete.tpl create mode 100644 views/list-management/schedule.tpl 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[] = "