From cd56b76e3fce4f6719ced900234e211851002f11 Mon Sep 17 00:00:00 2001 From: izuddin Date: Tue, 24 Sep 2024 14:00:49 +0700 Subject: [PATCH] Update --- .../Admin/UploadDataController.php | 119 ---------- .../Controllers/DataBosOmspanController.php | 210 ++++++++++++++++++ app/Imports/ImportDataBos.php | 62 +++--- app/Models/DataBosOmspan.php | 16 ++ app/Models/DataUploadBosOmspan.php | 1 - app/helpers.php | 5 + ...4_09_23_110625_create_import_bos_table.php | 6 +- ...24_110625_create_data_bos_omspan_table.php | 59 +++++ resources/views/data_omspan/index.blade.php | 194 ++++++++++++++++ .../upload.blade.php} | 82 +++++-- resources/views/partials/menu.blade.php | 8 + routes/web.php | 18 +- 12 files changed, 602 insertions(+), 178 deletions(-) delete mode 100644 app/Http/Controllers/Admin/UploadDataController.php create mode 100644 app/Http/Controllers/DataBosOmspanController.php create mode 100644 app/Models/DataBosOmspan.php create mode 100644 database/migrations/2024_09_24_110625_create_data_bos_omspan_table.php create mode 100644 resources/views/data_omspan/index.blade.php rename resources/views/{admin/upload_data/index.blade.php => data_omspan/upload.blade.php} (73%) diff --git a/app/Http/Controllers/Admin/UploadDataController.php b/app/Http/Controllers/Admin/UploadDataController.php deleted file mode 100644 index 86b82ed..0000000 --- a/app/Http/Controllers/Admin/UploadDataController.php +++ /dev/null @@ -1,119 +0,0 @@ -siteTitle = "Upload Data"; - parent::__construct(); - $this->setIconTitle("fa fa-share"); - } - - public function index(Request $request) - { - $method = $request->method(); - $this->setTitle("Upload Data"); - $this->setSubtitle("Upload File"); - $this->setIconTitle("fas fa-upload"); - if ($request->isMethod('post')) { - $req = $request->all(); - try{ - $this->validate($request, [ - 'file' => 'required|mimes:xls,xlsx', - ]); - - $file = $request->file('file'); - $subJenisDana = $request->optJenisDana; - $ta = $request->ta; - $tujuan_upload = 'uploadFiles'; - $file->move($tujuan_upload,$file->getClientOriginalName()); - - DB::beginTransaction(); - - // DataUploadBosOmspan::truncate(); - Excel::import(new ImportDataBos($ta), $tujuan_upload."/".$file->getClientOriginalName()); - - DB::commit(); - - return redirect(URL::to("/admin/upload-data/"))->with('success','Data berhasil diupload, Silahkan validasi data terlebih dahulu!'); - } - catch(\Exception $e) - { - // throw new \Exception($e->getMessage()); - DB::rollBack(); - abort(500, $e->getMessage()); - // return redirect(URL::to("/upload-data/".$typeDana))->with('error',$e->getMessage()); - } - } - $this->siteTitle = "Upload Data"; - return view('admin.upload_data.index'); - } - - public function uploadDatatable(Request $request) - { - $post = $request->all(); - $offset = $post["start"]; - $limit = $post["length"]; - $src = isset($post["search"])?$post["search"]["value"]:""; - - $dataFilter=0; - $data = DataUploadBosOmspan::orderBy("created_at","ASC"); - if (!empty($src)){ - // $data->whereRaw("(LOWER(kode_skpd) LIKE '%".strtolower($src)."%' - // OR LOWER(nama_skpd) LIKE '%".strtolower($src)."%' - // OR LOWER(kode_rekening) LIKE '%".strtolower($src)."%' - // OR LOWER(nama_rekening) LIKE '%".strtolower($src)."%')"); - } - $dataFilter = $data->count(); - $dataTotal = DataUploadBosOmspan::count(); - - return response()->json([ - "recordsTotal" => $dataTotal, - "recordsFiltered" => $dataFilter, - "data"=> $data->skip($offset)->take($limit)->get() - ]); - } - - public function uploadValidate(Request $request) - { - try{ - DB::beginTransaction(); - - UploadData::where("tahun",getTA())->delete(); - DB::statement("INSERT INTO upload_data(tahun,kode_skpd,kode_rekening,total_lra) - SELECT tahun,kode_skpd,kode_rekening,total_lra FROM tmp_upload_data "); - - $skpds = DB::table('tmp_upload_data')->distinct()->select('kode_skpd')->get(); - foreach($skpds as $skpd){ - // CEK MAIN INDIKATOR - $txIndikator = TxIndikator::firstOrCreate(["tahun"=>getTA(),"kode_skpd"=>$skpd->kode_skpd],[ - "status_approval"=>3, // Operator - ]); - - $calculation = new CalculationIndikator($txIndikator->id); - $calculation->rasio(); - $calculation->summary(); - } - TempUploadData::truncate(); - DB::commit(); - return redirect(URL::to("/admin/upload-data"))->with('success','Data Realisasi belanja berhasil diupload.'); - }catch(\Exception $e){ - throw new \Exception($e->getMessage()); - DB::rollBack(); - return redirect(URL::to("/admin/upload-data"))->with('error',$e->getMessage()); - } - } - -} \ No newline at end of file diff --git a/app/Http/Controllers/DataBosOmspanController.php b/app/Http/Controllers/DataBosOmspanController.php new file mode 100644 index 0000000..6144333 --- /dev/null +++ b/app/Http/Controllers/DataBosOmspanController.php @@ -0,0 +1,210 @@ +setIconTitle("fa fa-graduation-cap"); + } + + public function index(Request $request) + { + $method = $request->method(); + $this->setTitle("Data BOS Omspan"); + $this->setIconTitle("fa fa-graduation-cap"); + $this->siteTitle = "Daftar"; + return view('data_omspan.index'); + } + + public function upload(Request $request) + { + $method = $request->method(); + $this->setTitle("Data BOS Omspan"); + $this->setSubtitle("Upload File"); + $this->setIconTitle("fas fa-upload"); + if ($request->isMethod('post')) { + $req = $request->all(); + try{ + $this->validate($request, [ + 'file' => 'required|mimes:xls,xlsx', + ]); + + $file = $request->file('file'); + $subJenisDana = $request->optJenisDana; + $ta = $request->ta; + $tujuan_upload = 'uploadFiles'; + $file->move($tujuan_upload,$file->getClientOriginalName()); + + DB::beginTransaction(); + + // DataUploadBosOmspan::truncate(); + Excel::import(new ImportDataBos($ta), $tujuan_upload."/".$file->getClientOriginalName()); + + DB::commit(); + + return redirect(URL::to("/data-omspan/upload/"))->with('success','Data berhasil diupload, Silahkan validasi data terlebih dahulu!'); + } + catch(\Exception $e) + { + // throw new \Exception($e->getMessage()); + DB::rollBack(); + abort(500, $e->getMessage()); + // return redirect(URL::to("/upload-data/".$typeDana))->with('error',$e->getMessage()); + } + } + $this->siteTitle = "Upload Data"; + return view('data_omspan.upload'); + } + + public function datatable(Request $request) + { + $post = $request->all(); + $offset = $post["start"]; + $limit = $post["length"]; + $src = isset($post["search"])?$post["search"]["value"]:""; + + $dataFilter=0; + $data = DataBosOmspan::orderBy("created_at","ASC"); + if (!empty($src)){ + $data->whereRaw("( + LOWER(kanwil) LIKE '%".strtolower($src)."%' + OR LOWER(kppn) LIKE '%".strtolower($src)."%' + OR LOWER(lokasi_kewenangan) LIKE '%".strtolower($src)."%' + OR LOWER(jenis_bos) LIKE '%".strtolower($src)."%' + OR LOWER(no_rekening_nama_rekening) LIKE '%".strtolower($src)."%' + OR LOWER(npsn) LIKE '%".strtolower($src)."%' + OR LOWER(no_tgl_sp2d_detail) LIKE '%".strtolower($src)."%' + OR LOWER(status_sekolah) LIKE '%".strtolower($src)."%' + )"); + } + $dataFilter = $data->count(); + $dataTotal = DataBosOmspan::count(); + + return response()->json([ + "recordsTotal" => $dataTotal, + "recordsFiltered" => $dataFilter, + "data"=> $data->skip($offset)->take($limit)->get() + ]); + } + + public function uploadDatatable(Request $request) + { + $post = $request->all(); + $offset = $post["start"]; + $limit = $post["length"]; + $src = isset($post["search"])?$post["search"]["value"]:""; + + $dataFilter=0; + $data = DataUploadBosOmspan::orderBy("created_at","ASC"); + if (!empty($src)){ + $data->whereRaw("( + LOWER(kanwil) LIKE '%".strtolower($src)."%' + OR LOWER(kppn) LIKE '%".strtolower($src)."%' + OR LOWER(lokasi_kewenangan) LIKE '%".strtolower($src)."%' + OR LOWER(jenis_bos) LIKE '%".strtolower($src)."%' + OR LOWER(no_rekening_nama_rekening) LIKE '%".strtolower($src)."%' + OR LOWER(npsn) LIKE '%".strtolower($src)."%' + OR LOWER(no_tgl_sp2d_detail) LIKE '%".strtolower($src)."%' + OR LOWER(status_sekolah) LIKE '%".strtolower($src)."%' + )"); + } + $dataFilter = $data->count(); + $dataTotal = DataUploadBosOmspan::count(); + + return response()->json([ + "recordsTotal" => $dataTotal, + "recordsFiltered" => $dataFilter, + "data"=> $data->skip($offset)->take($limit)->get() + ]); + } + + public function uploadValidate(Request $request) + { + try{ + DB::beginTransaction(); + DB::statement("INSERT INTO DATA_BOS_OMSPAN( + tahun, + kanwil, + kppn, + lokasi_kewenangan, + lokasi_sekolah, + no_tgl_sk, + jenis_bos, + tahap, + gelombang, + npsn_nama_sekolah, + jenis_satuan_pendidikan, + status_sekolah, + bank, + no_rekening_nama_rekening, + npsn, + rekening, + nama, + jenjang_sekolah, + no_tgl_sp2d_detail, + no_sp2d, + tgl_sp2d, + status, + nilai, + pagu, + jmlh_siswa, + ket_retur + ) + SELECT + tahun, + kanwil, + kppn, + lokasi_kewenangan, + lokasi_sekolah, + no_tgl_sk, + jenis_bos, + tahap, + gelombang, + npsn_nama_sekolah, + jenis_satuan_pendidikan, + status_sekolah, + bank, + no_rekening_nama_rekening, + npsn, + rekening, + nama, + jenjang_sekolah, + no_tgl_sp2d_detail, + no_sp2d, + tgl_sp2d, + status, + nilai, + pagu, + jmlh_siswa, + ket_retur + FROM DATA_UPLOAD_BOS_OMSPAN + WHERE NOT EXISTS( + SELECT * + FROM DATA_BOS_OMSPAN + WHERE (tahun ='".getTA()."' AND DATA_BOS_OMSPAN.no_tgl_sp2d_detail = DATA_UPLOAD_BOS_OMSPAN.no_tgl_sp2d_detail) + )"); + DataUploadBosOmspan::truncate(); + DB::commit(); + return redirect(URL::to("/data-omspan/upload"))->with('success','Data Omspan berhasil diupload.'); + }catch(\Exception $e){ + throw new \Exception($e->getMessage()); + DB::rollBack(); + return redirect(URL::to("/data-omspan/upload"))->with('error',$e->getMessage()); + } + } + +} \ No newline at end of file diff --git a/app/Imports/ImportDataBos.php b/app/Imports/ImportDataBos.php index 5b66627..87a8cb7 100644 --- a/app/Imports/ImportDataBos.php +++ b/app/Imports/ImportDataBos.php @@ -22,39 +22,41 @@ class ImportDataBos implements WithColumnFormatting, ToModel, WithStartRow return 2; } + protected function replaceIni($str) + { + return str_replace(["'"],"",$str); + } + public function model(array $row) { - // if (!isset($row[0])) { - // return null; - // } - var_dump($row); exit; $data = [ - "no"=>$row[0], - "kanwil"=>$row[1], - "kppn"=>$row[2], - "lokasi_kewenangan"=>$row[3], - "lokasi_sekolah"=>$row[4], - "no_tgl_sk"=>$row[5], - "jenis_bos"=>$row[6], - "tahap"=>$row[7], - "gelombang"=>$row[8], - "npsn_nama_sekolah"=>$row[9], - "jenis_satuan_pendidikan"=>$row[10], - "status_sekolah"=>$row[11], - "bank"=>$row[12], - "no_rekening_nama_rekening"=>$row[13], - "npsn"=>$row[14], - "rekening"=>$row[15], - "nama"=>$row[16], - "jenjang_sekolah"=>$row[17], - "no_tgl_sp2d_detail"=>$row[18], - "no_sp2d"=>$row[19], - "tgl_sp2d"=>$row[20], - "status"=>$row[21], - "nilai"=>$row[22], - "pagu"=>$row[23], - "jmlh_siswa"=>$row[24], - "ket_retur"=>$row[25] + "tahun"=>getTA(), + "no"=>$this->replaceIni($row[0]), + "kanwil"=>$this->replaceIni($row[1]), + "kppn"=>$this->replaceIni($row[2]), + "lokasi_kewenangan"=>$this->replaceIni($row[3]), + "lokasi_sekolah"=>$this->replaceIni($row[4]), + "no_tgl_sk"=>$this->replaceIni($row[5]), + "jenis_bos"=>$this->replaceIni($row[6]), + "tahap"=>$this->replaceIni($row[7]), + "gelombang"=>$this->replaceIni($row[8]), + "npsn_nama_sekolah"=>$this->replaceIni($row[9]), + "jenis_satuan_pendidikan"=>$this->replaceIni($row[10]), + "status_sekolah"=>$this->replaceIni($row[11]), + "bank"=>$this->replaceIni($row[12]), + "no_rekening_nama_rekening"=>$this->replaceIni($row[13]), + "npsn"=>$this->replaceIni($row[14]), + "rekening"=>$this->replaceIni($row[15]), + "nama"=>$this->replaceIni($row[16]), + "jenjang_sekolah"=>$this->replaceIni($row[17]), + "no_tgl_sp2d_detail"=>$this->replaceIni($row[18]), + "no_sp2d"=>$this->replaceIni($row[19]), + "tgl_sp2d"=>is_numeric($row[20])?convertSerialDate($row[20]):$row[20], + "status"=>$this->replaceIni($row[21]), + "nilai"=>$this->replaceIni($row[22]), + "pagu"=>$this->replaceIni($row[23]), + "jmlh_siswa"=>$this->replaceIni($row[24]), + "ket_retur"=>$this->replaceIni($row[25]) ]; return new DataUploadBosOmspan($data); diff --git a/app/Models/DataBosOmspan.php b/app/Models/DataBosOmspan.php new file mode 100644 index 0000000..8a738d8 --- /dev/null +++ b/app/Models/DataBosOmspan.php @@ -0,0 +1,16 @@ +id(); - + $table->string('tahun',4); $table->smallInteger("no")->nullable(); $table->string("kanwil",100); $table->string('kppn',50); @@ -26,13 +26,13 @@ class CreateImportBosTable extends Migration $table->smallInteger('tahap'); $table->smallInteger('gelombang'); $table->string('npsn_nama_sekolah',100); - $table->string('jenis_satuan_pendidikan',10); + $table->string('jenis_satuan_pendidikan',10)->nullable(); $table->string('status_sekolah',30); $table->string('bank',30); $table->string('no_rekening_nama_rekening',150); $table->string('npsn',30); $table->string('rekening',30); - $table->string('nama',10); + $table->string('nama',100); $table->string('jenjang_sekolah',10); $table->string('no_tgl_sp2d_detail',100); $table->string('no_sp2d',50); diff --git a/database/migrations/2024_09_24_110625_create_data_bos_omspan_table.php b/database/migrations/2024_09_24_110625_create_data_bos_omspan_table.php new file mode 100644 index 0000000..3bba41b --- /dev/null +++ b/database/migrations/2024_09_24_110625_create_data_bos_omspan_table.php @@ -0,0 +1,59 @@ +id(); + $table->string('tahun',4); + $table->smallInteger("no")->nullable(); + $table->string("kanwil",100); + $table->string('kppn',50); + $table->string('lokasi_kewenangan',50); + $table->string('lokasi_sekolah',20); + $table->string('no_tgl_sk',50); + $table->string('jenis_bos',20); + $table->smallInteger('tahap'); + $table->smallInteger('gelombang'); + $table->string('npsn_nama_sekolah',100); + $table->string('jenis_satuan_pendidikan',10)->nullable(); + $table->string('status_sekolah',30); + $table->string('bank',30); + $table->string('no_rekening_nama_rekening',150); + $table->string('npsn',30); + $table->string('rekening',30); + $table->string('nama',100); + $table->string('jenjang_sekolah',10); + $table->string('no_tgl_sp2d_detail',100); + $table->string('no_sp2d',50); + $table->date('tgl_sp2d'); + $table->string('status',50); + $table->decimal('nilai',18,2); + $table->decimal('pagu',18,2); + $table->integer('jmlh_siswa',50); + $table->string('ket_retur',100)->nullable(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('data_bos_omspan'); + } +} diff --git a/resources/views/data_omspan/index.blade.php b/resources/views/data_omspan/index.blade.php new file mode 100644 index 0000000..a7a30f4 --- /dev/null +++ b/resources/views/data_omspan/index.blade.php @@ -0,0 +1,194 @@ +@php + $siteBreadcumb = [ + ["url"=>"/realisasi-belanja","label"=>$siteTitle], + ["url"=>"/realisasi-belanja/create","label"=>$sitesubTitle] + ]; + + $jenisDana = ["All","CHT"]; +@endphp + +@extends('layouts.empty') +@section('styles') + + + + + +@endsection + +@section('content') +
+
+

Daftar

+
+ Upload +
+
+
+ + + + + $rowCol"; + } + ?> + + + +
No
+
+
+@endsection +@section('scripts') + + + + + + + + + + + + + + + +@endsection + diff --git a/resources/views/admin/upload_data/index.blade.php b/resources/views/data_omspan/upload.blade.php similarity index 73% rename from resources/views/admin/upload_data/index.blade.php rename to resources/views/data_omspan/upload.blade.php index 0ba0b4a..d655b9c 100644 --- a/resources/views/admin/upload_data/index.blade.php +++ b/resources/views/data_omspan/upload.blade.php @@ -27,7 +27,7 @@
-
+ @csrf
@@ -37,7 +37,10 @@
-
+
+ Batal + +

Format:xlsx | Columns: "no", @@ -85,7 +88,32 @@ No $rowCol"; } @@ -133,7 +161,7 @@ /* Read more about isConfirmed, isDenied below */ if (result.isConfirmed) { $("body").append("

"); - location.href='{{ url('/admin/upload-data/proses') }}'; + location.href='{{ url('/data-omspan/upload/proses') }}'; } }) }); @@ -153,10 +181,8 @@ var dtTable = $('#tempUploadRealisasi').DataTable( { "processing": true, "serverSide": true, - "ordering": false, - "autoWidth": false, "ajax": { - url: "{{ $baseUrl }}/admin/upload-data/datatable", + url: "{{ $baseUrl }}/data-omspan/upload/datatable", type: "POST", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') @@ -174,13 +200,32 @@ ], "paging": true, // Table pagination "columns": [ - { "data": null}, - { "data": "tahun", "width": "50px" }, - { "data": "kode_skpd", "className":"text-center", "defaultContent":"-" }, - { "data": "nama_skpd", "className":"text-left", "defaultContent":"-" }, - { "data": "kode_rekening", "className":"text-center", "defaultContent":"-" }, - { "data": "nama_rekening", "className":"text-left", "defaultContent":"-" }, - { "data": "total_lra", "className":"text-right", "defaultContent":"0" }, + {"data":null}, + {"data":"kanwil"}, + {"data":"kppn"}, + {"data":"lokasi_kewenangan"}, + {"data":"lokasi_sekolah"}, + {"data":"no_tgl_sk"}, + {"data":"jenis_bos"}, + {"data":"tahap"}, + {"data":"gelombang"}, + {"data":"npsn_nama_sekolah"}, + {"data":"jenis_satuan_pendidikan"}, + {"data":"status_sekolah"}, + {"data":"bank"}, + {"data":"no_rekening_nama_rekening"}, + {"data":"npsn"}, + {"data":"rekening"}, + {"data":"nama"}, + {"data":"jenjang_sekolah"}, + {"data":"no_tgl_sp2d_detail"}, + {"data":"no_sp2d"}, + {"data":"tgl_sp2d"}, + {"data":"status"}, + {"data":"nilai"}, + {"data":"pagu"}, + {"data":"jmlh_siswa"}, + {"data":"ket_retur"} ], "rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) { let info = dtTable.page.info(); @@ -188,7 +233,9 @@ let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1; $("td:eq(0)", nRow).html(index); - $("td:eq(6)", nRow).html(separateNumberIndo(aData["total_lra"])); + $("td:eq(22)", nRow).html(separateNumberIndo(aData["nilai"])); + $("td:eq(23)", nRow).html(separateNumberIndo(aData["pagu"])); + $("td:eq(24)", nRow).html(separateNumberIndo(aData["jmlh_siswa"])); return nRow; }, @@ -209,8 +256,9 @@ }, "processing": "
", }, - scrollX:true, + "scrollX":true, }); }); -@endsection \ No newline at end of file +@endsection + diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 07b5d46..2b391a7 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -106,6 +106,14 @@

Laporan

+ + + @if ($role == "admin" || $role == "superadmin") diff --git a/routes/web.php b/routes/web.php index 6182d3f..12d0340 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,7 +21,7 @@ use App\Http\Controllers\Admin\MstJenisBelanjaController; use App\Http\Controllers\Admin\MstSubJenisBelanjaController; use App\Http\Controllers\Admin\MstSatuanController; use App\Http\Controllers\Admin\PengaturanController; -use App\Http\Controllers\Admin\UploadDataController; +use App\Http\Controllers\DataBosOmspanController; use App\Http\Controllers\NotifikasiController; Route::get('/', [AuthController::class, 'showFormLogin']); @@ -73,16 +73,18 @@ Route::group(['middleware' => 'auth'], function () { Route::post('Pengaturan/update-user', [PengaturanController::class,'updateuser']); Route::post('Pengaturan/adjust-anggaran', [PengaturanController::class,'rekonAnggaran']); Route::post('Pengaturan/adjust-akb-pendapatan', [PengaturanController::class,'adjustAKBPendapatan']); - - Route::group(['prefix' => 'upload-data'], function () { - Route::get('/', [UploadDataController::class,'index']); - Route::post('/', [UploadDataController::class,'index']); - Route::post('/datatable', [UploadDataController::class,'uploadDatatable']); - Route::get('/proses', [UploadDataController::class,'uploadValidate']); - }); }); + Route::group(['prefix' => 'data-omspan'], function () { + Route::get('/', [DataBosOmspanController::class,'index']); + Route::get('/upload', [DataBosOmspanController::class,'upload']); + Route::post('/upload', [DataBosOmspanController::class,'upload']); + Route::post('/upload/datatable', [DataBosOmspanController::class,'uploadDatatable']); + Route::post('/datatable', [DataBosOmspanController::class,'datatable']); + Route::get('/upload/proses', [DataBosOmspanController::class,'uploadValidate']); + }); + Route::get('users/change-password/{userId}', [MstPenggunaController::class,'changePass'])->name("users.changepass"); Route::post('users/change-password/{userId}', [MstPenggunaController::class,'changePassSubmit'])->name("users.changepass.submit");