diff --git a/app/Http/Controllers/Admins/SurveyController.php b/app/Http/Controllers/Admins/SurveyController.php index 835607b..67abba9 100755 --- a/app/Http/Controllers/Admins/SurveyController.php +++ b/app/Http/Controllers/Admins/SurveyController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admins; use App\Http\Controllers\Controller; +use App\Models\Master\ManagementMasters; use App\Models\QuestionAnswers; use App\Models\QuestionDetails; use App\Models\QuestionSurveys; @@ -64,8 +65,8 @@ class SurveyController extends Controller { // find data $survey = Surveys::where('status', '!=', 'Deleted') - ->with(['questionSurveys' => fn($query) => $query->where('status', '!=', 'Deleted')]) - ->findOrFail($id); + ->with(['questionSurveys' => fn ($query) => $query->where('status', '!=', 'Deleted')]) + ->findOrFail($id); // return ($survey); // return view @@ -78,11 +79,14 @@ class SurveyController extends Controller public function show(string $id) { // find data - $survey = Surveys::where('status', '!=', 'Deleted')->findOrFail($id); - $questionSurveys = QuestionSurveys::where('survey_id', $id)->paginate(); + $survey = Surveys::where('status', '!=', 'Deleted')->with('questionSurveys')->findOrFail($id); + // return $survey->questionSurveys; + $questionAnswers = QuestionAnswers::where('survey_id', $id)->with('questionSurveys')->get(); + // return $questionSurveys = QuestionSurveys::where('survey_id', $id)->with('questionAnswers')->get(); + // return [$survey->questionSurveys->first()->questionAnswers->first()->users->name]; // return view - return view('pages.admins.surveys.detail', compact('survey', 'questionSurveys')); + return view('pages.admins.surveys.detail', compact('survey', 'questionAnswers')); } /** @@ -92,9 +96,10 @@ class SurveyController extends Controller { // find data $survey = Surveys::where('status', '!=', 'Deleted')->findOrFail($id); + $management_master = ManagementMasters::get(); // return view - return view('pages.admins.surveys.edit', compact('survey')); + return view('pages.admins.surveys.edit', compact('survey', 'management_master')); } // SaveSurvey (Autosaved) @@ -142,6 +147,20 @@ class SurveyController extends Controller 'question_label' => '["' . $value['labelfrom'] . '","' . $value['labelto'] . '"]', 'question_value' => '["' . $value['valuefrom'] . '","' . $value['valueto'] . '"]', ]); + } else if ($value['type'] == 'Jawaban Angka') { + QuestionDetails::updateOrCreate([ + 'question_id' => $questionSurveys->id, + ], [ + 'question_label' => '["Jawaban Angka"]', + 'question_value' => '["Angka"]', + ]); + } else if ($value['type'] == 'Jawaban Singkat') { + QuestionDetails::updateOrCreate([ + 'question_id' => $questionSurveys->id, + ], [ + 'question_label' => '["Jawaban Singkat"]', + 'question_value' => '["Teks Jawaban Singkat"]', + ]); } else if ($value['type'] == 'Esai') { QuestionDetails::updateOrCreate([ 'question_id' => $questionSurveys->id, @@ -149,6 +168,13 @@ class SurveyController extends Controller 'question_label' => '["Esai"]', 'question_value' => '["Teks"]', ]); + } else if ($value['type'] == 'Master') { + QuestionDetails::updateOrCreate([ + 'question_id' => $questionSurveys->id, + ], [ + 'question_label' => '["Master"]', + 'question_value' => '["' . $value['master'] . '"]', + ]); } else { QuestionDetails::updateOrCreate([ 'question_id' => $questionSurveys->id, @@ -190,8 +216,8 @@ class SurveyController extends Controller { // create unique answer_id $unique_answer_id = QuestionAnswers::select('answer_id')->groupby('answer_id')->latest()->first(); - $unique_answer_id = empty($unique_answer_id) ? 1 : $unique_answer_id['answer_id'] + 1; - + $unique_answer_id = empty($unique_answer_id) ? 1 : $unique_answer_id['answer_id'] + 1; + // validation $request->validate([ 'question.*.answer' => 'required', @@ -200,10 +226,12 @@ class SurveyController extends Controller // return $request; foreach ($request->question as $key => $value) { + $answer_type = QuestionSurveys::select('type')->find($key); QuestionAnswers::create([ 'user_id' => Auth::user()->id, 'question_id' => $key, 'answer_id' => $unique_answer_id, + 'answer_type' => $answer_type ? $answer_type['type'] : null, 'answer' => $value['answer'], 'survey_id' => $request->survey_id, ]); diff --git a/app/Http/Controllers/Master/ManagementMasterController.php b/app/Http/Controllers/Master/ManagementMasterController.php new file mode 100644 index 0000000..b184dd1 --- /dev/null +++ b/app/Http/Controllers/Master/ManagementMasterController.php @@ -0,0 +1,119 @@ + 'required', + 'master_value' => 'required', + ); + $validator = Validator::make($request->all(), $rules); + + // check validation + if ($validator->fails()) { + return Redirect::to('master/management-master/create') + ->withErrors($validator) + ->withInput($request->all()); + } else { + // create new master data + $management_master = ManagementMasters::create([ + 'master_code' => $request->master_code, + 'master_value' => $request->master_value, + ]); + + // Create Session message + Session::flash('management_masters-message', [ + 'type' => 'success', + 'msg' => 'Anda berhasil menambahkan data!' + ]); + + return Redirect::to('master/management-master'); + } + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + // get data from management_master + $management_master = ManagementMasters::findOrFail($id); + + // call view pages + return view('pages.masters.management_masters.edit', compact('management_master')); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // validation + $rules = array( + 'master_code' => 'required', + 'master_value' => 'required', + ); + $validator = Validator::make($request->all(), $rules); + + // process the login + if ($validator->fails()) { + return Redirect::to('master/management-master/edit/' . $id) + ->withErrors($validator) + ->withInput($request->all()); + } else { + // create new account + $management_master = ManagementMasters::findOrFail($id); + if (!$management_master) { + // Create Session message + Session::flash('management_masters-message', [ + 'type' => 'warning', + 'msg' => 'Data tidak ditemukan!' + ]); + + return Redirect::to('master/management-master'); + } + $management_master->update([ + 'master_code' => $request->master_code, + 'master_value' => $request->master_value, + ]); + + // Create Session message + Session::flash('management_masters-message', [ + 'type' => 'success', + 'msg' => 'Anda berhasil mengubah data!' + ]); + + return Redirect::to('master/management-master'); + } + } +} diff --git a/app/Http/Controllers/Master/MasterAgamaController.php b/app/Http/Controllers/Master/MasterAgamaController.php new file mode 100644 index 0000000..05a28d6 --- /dev/null +++ b/app/Http/Controllers/Master/MasterAgamaController.php @@ -0,0 +1,17 @@ +belongsTo(QuestionSurveys::class, 'id', 'question_id'); + return $this->belongsTo(QuestionSurveys::class, 'question_id', 'id'); } public function users(): HasOne diff --git a/database/migrations/2024_05_18_185119_add_answer_type.php b/database/migrations/2024_05_18_185119_add_answer_type.php new file mode 100644 index 0000000..ef7cc79 --- /dev/null +++ b/database/migrations/2024_05_18_185119_add_answer_type.php @@ -0,0 +1,30 @@ +string('answer_type')->after('question_id')->nullable(); // answer_type + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // remove answer_type + Schema::table('question_answers', function (Blueprint $table) { + $table->dropColumn('answer_type'); // answer_type + }); + } +}; diff --git a/database/migrations/2024_05_19_043616_create_agamas_table.php b/database/migrations/2024_05_19_043616_create_agamas_table.php new file mode 100644 index 0000000..4be8850 --- /dev/null +++ b/database/migrations/2024_05_19_043616_create_agamas_table.php @@ -0,0 +1,28 @@ +id(); + $table->string("keterangan"); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('mst_agamas'); + } +}; diff --git a/database/migrations/2024_05_19_051725_create_management_masters_table.php b/database/migrations/2024_05_19_051725_create_management_masters_table.php new file mode 100644 index 0000000..fee4daa --- /dev/null +++ b/database/migrations/2024_05_19_051725_create_management_masters_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('master_code'); // code for question master + $table->string('master_value'); // Value get model master + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('management_masters'); + } +}; diff --git a/database/seeders/AgamaSeeder.php b/database/seeders/AgamaSeeder.php new file mode 100644 index 0000000..218ca75 --- /dev/null +++ b/database/seeders/AgamaSeeder.php @@ -0,0 +1,51 @@ + 1, + 'keterangan' => 'Islam', + ], + [ + 'id' => 2, + 'keterangan' => 'Kristen', + ], + [ + 'id' => 3, + 'keterangan' => 'Katolik', + ], + [ + 'id' => 4, + 'keterangan' => 'Hindu', + ], + [ + 'id' => 5, + 'keterangan' => 'Budha', + ], + [ + 'id' => 6, + 'keterangan' => 'Khonghucu', + ], + [ + 'id' => 100, + 'keterangan' => 'Lainnya', + ], + ]; + + DB::table("mst_agamas")->insert($agama); + } +} diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php new file mode 100755 index 0000000..9989113 --- /dev/null +++ b/resources/views/errors/403.blade.php @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + 403 Access Denied + + + + + +
+
+
+
+
+
+ +

Opsss!!!

+

Maaf akses ditolak, silahkan login terlebih dahulu.

+ Kembali +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php new file mode 100755 index 0000000..0805824 --- /dev/null +++ b/resources/views/errors/404.blade.php @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + 404 Not Found + + + + + +
+
+
+
+
+
+ +

Opsss!!!

+

Maaf, halaman yang anda cari tidak ditemukan.

+ Kembali +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/resources/views/includes/sidebar.blade.php b/resources/views/includes/sidebar.blade.php index 83bfeaf..564cae9 100755 --- a/resources/views/includes/sidebar.blade.php +++ b/resources/views/includes/sidebar.blade.php @@ -49,9 +49,42 @@ @role(['Admin']) + {{-- Management Master --}} + + + + {{-- Management User --}} +