From c9fb5e7c1c53efaca65b830729dabfe459657cdf Mon Sep 17 00:00:00 2001 From: "fidrafid@gmail.com" <fidrafid@gmail.com> Date: Tue, 24 Apr 2018 08:59:10 +0700 Subject: [PATCH] fixing bug on kepegawaian controller --- .../Controllers/DataPegawaiController.php | 4 +- .../Controllers/KepegawaianController.php | 50 +++++++++++++++++++ app/Http/Controllers/RiwayatController.php | 3 +- app/Http/Controllers/SertifikatController.php | 2 +- public/js/profile.js | 20 ++++---- .../assets/js/components/ProfilPegawai.vue | 22 ++++---- routes/api.php | 4 +- 7 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 app/Http/Controllers/KepegawaianController.php diff --git a/app/Http/Controllers/DataPegawaiController.php b/app/Http/Controllers/DataPegawaiController.php index ceef77d..cf4215a 100644 --- a/app/Http/Controllers/DataPegawaiController.php +++ b/app/Http/Controllers/DataPegawaiController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\DenormalizedPegawai; use Illuminate\Http\Request; +use App\Http\Controllers\APIBaseController as APIBaseController; +use App\DataKepegawaian; class DataPegawaiController extends APIBaseController { @@ -70,8 +72,6 @@ class DataPegawaiController extends APIBaseController */ public function update(Request $request, $id) { - $input = $request->all(); - } diff --git a/app/Http/Controllers/KepegawaianController.php b/app/Http/Controllers/KepegawaianController.php new file mode 100644 index 0000000..904ba1e --- /dev/null +++ b/app/Http/Controllers/KepegawaianController.php @@ -0,0 +1,50 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use App\Http\Controllers\APIBaseController as APIBaseController; +use App\DataKepegawaian; +use App\Pegawai; + +class KepegawaianController extends APIBaseController +{ + public function update(Request $request, $id) + { + $input = $request->all(); + + $list = array(); + + for ($i = 0; $i < count($input['kepegawaian']); $i++) { + + $kepegawaian = DataKepegawaian::find($input['kepegawaian'][$i]['id_data_kepegawaian']); + + if(is_null($kepegawaian)){ + $postDataKepegawaian = DataKepegawaian::create([ + 'id_pegawai' => $id, + 'id_posisi' => $input['kepegawaian'][$i]['id_posisi'], + 'id_unit_kerja' => $input['kepegawaian'][$i]['id_unit_kerja'], + 'tahun_masuk' => $input['kepegawaian'][$i]['tahun_masuk'], + 'tahun_keluar' => $input['kepegawaian'][$i]['tahun_keluar'], + ]); + array_push($list, $postDataKepegawaian->id_data_kepegawaian); + }else{ + $kepegawaian->id_pegawai = $input['kepegawaian'][$i]['id_pegawai']; + $kepegawaian->id_posisi = $input['kepegawaian'][$i]['id_posisi']; + $kepegawaian->id_unit_kerja = $input['kepegawaian'][$i]['id_unit_kerja']; + $kepegawaian->tahun_masuk = $input['kepegawaian'][$i]['tahun_masuk']; + $kepegawaian->tahun_keluar = $input['kepegawaian'][$i]['tahun_keluar']; + + $kepegawaian->save(); + array_push($list, $input['kepegawaian'][$i]['id_data_kepegawaian']); + } + + } + + $data = DataKepegawaian::where('id_pegawai',$id)->whereNotIn('id_data_kepegawaian', $list); + $data->delete(); + + return $this->sendResponse($input, 'Kepegawaian updated successfully.'); + + } +} diff --git a/app/Http/Controllers/RiwayatController.php b/app/Http/Controllers/RiwayatController.php index 1435b89..f9a3908 100644 --- a/app/Http/Controllers/RiwayatController.php +++ b/app/Http/Controllers/RiwayatController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Http\Controllers\APIBaseController as APIBaseController; use App\RiwayatPekerjaan; use App\RiwayatPendidikan; @@ -41,6 +42,6 @@ class RiwayatController extends APIBaseController } - return $this->sendResponse($input, 'Riwayat Pendidikan & Pekerjaan created successfully.'); + return $this->sendResponse($input, 'Riwayat Pendidikan & Pekerjaan updated successfully.'); } } diff --git a/app/Http/Controllers/SertifikatController.php b/app/Http/Controllers/SertifikatController.php index 83917cf..39149e4 100644 --- a/app/Http/Controllers/SertifikatController.php +++ b/app/Http/Controllers/SertifikatController.php @@ -48,6 +48,6 @@ class SertifikatController extends APIBaseController $sertifikat->save(); } - return $this->sendResponse($input, 'Sertifikat created successfully.'); + return $this->sendResponse($input, 'Sertifikat updated successfully.'); } } diff --git a/public/js/profile.js b/public/js/profile.js index b0e509a..b04f423 100644 --- a/public/js/profile.js +++ b/public/js/profile.js @@ -15367,17 +15367,15 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope console.log(this.dataKepegawaian); - // axios.post('/api/kepegawaian/' + this.id, { - // kepegawaian: this.dataKepegawaian, - // _method: 'put' - // }) - // .then(function (response) { - // console.log(response); - // window.location.href = "/pages/profile"; - // }) - // .catch(function (error) { - // alert(error); - // }); + axios.post('/api/kepegawaian/' + this.id, { + kepegawaian: this.dataKepegawaian, + _method: 'put' + }).then(function (response) { + console.log(response); + window.location.href = "/pages/profile"; + }).catch(function (error) { + alert(error); + }); }, saveRiwayatPegawai: function saveRiwayatPegawai() { //sort diff --git a/resources/assets/js/components/ProfilPegawai.vue b/resources/assets/js/components/ProfilPegawai.vue index ebfdd11..1664384 100644 --- a/resources/assets/js/components/ProfilPegawai.vue +++ b/resources/assets/js/components/ProfilPegawai.vue @@ -1140,17 +1140,17 @@ console.log(this.dataKepegawaian); - // axios.post('/api/kepegawaian/' + this.id, { - // kepegawaian: this.dataKepegawaian, - // _method: 'put' - // }) - // .then(function (response) { - // console.log(response); - // window.location.href = "/pages/profile"; - // }) - // .catch(function (error) { - // alert(error); - // }); + axios.post('/api/kepegawaian/' + this.id, { + kepegawaian: this.dataKepegawaian, + _method: 'put' + }) + .then(function (response) { + console.log(response); + window.location.href = "/pages/profile"; + }) + .catch(function (error) { + alert(error); + }); }, saveRiwayatPegawai() { diff --git a/routes/api.php b/routes/api.php index b46f879..82f4cb6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -37,9 +37,9 @@ Route::post('kinerja/import', 'DataKinerjaController@import'); Route::resource('kinerja', 'DataKinerjaController'); -Route::resource('pegawai-denormalized', 'DataPegawaiController@index'); +Route::resource('pegawai-denormalized', 'DataPegawaiController'); -Route::resource('kepegawaian', 'DataPegawaiController@update'); +Route::resource('kepegawaian', 'KepegawaianController'); Route::resource('riwayat', 'RiwayatController'); -- GitLab