diff --git a/app/Http/Controllers/Admin/MstDauRinciController.php b/app/Http/Controllers/Admin/MstDauRinciController.php index 0bc6f60..f6390ec 100644 --- a/app/Http/Controllers/Admin/MstDauRinciController.php +++ b/app/Http/Controllers/Admin/MstDauRinciController.php @@ -34,12 +34,14 @@ class MstDauRinciController extends Controller $request->validate([ 'name' => 'required', 'grup' => 'required', + 'satuan' => 'required', ]); $req = $request->all(); MstDauRinci::where("name", $req["name"])->delete(); $data["name"] = $req["name"]; $data["grup"] = $req["grup"]; + $data["satuan"] = $req["satuan"]; MstDauRinci::create($data); return redirect("/admin/MstDauRinci")->with('success','Data Perincian DAU berhasil dibuat.'); @@ -62,22 +64,24 @@ class MstDauRinciController extends Controller $request->validate([ 'grup' => 'required', 'name' => 'required', + 'satuan' => 'required', ]); $req = $request->all(); $data["grup"] = $req["grup"]; $data["name"] = $req["name"]; + $data["satuan"] = $req["satuan"]; $MstDauRinci->update($req); return redirect()->route('MstDauRinci.index') - ->with('success','Data Jenis Dana berhasil diubah!'); + ->with('success','Data Perincian DAU berhasil diubah!'); } public function destroy(MstDauRinci $MstDauRinci) { $MstDauRinci->delete(); return redirect()->route('MstDauRinci.index') - ->with('success','Data Jenis Dana berhasil dihapus!'); + ->with('success','Data Perincian DAU berhasil dihapus!'); } public function datatable(Request $request) @@ -86,7 +90,7 @@ class MstDauRinciController extends Controller $offset = $post["start"]; $limit = $post["length"]; $src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):""; - $select = DB::raw("ID,NAME,GRUP"); + $select = DB::raw("ID,NAME,GRUP,SATUAN"); $sqlstr = MstDauRinci::select($select); $dataTotal = $sqlstr->count(); $data = $sqlstr->orderBy("GRUP","DESC"); diff --git a/app/Http/Controllers/ItemSearchController.php b/app/Http/Controllers/ItemSearchController.php index f42c3c0..328e03b 100644 --- a/app/Http/Controllers/ItemSearchController.php +++ b/app/Http/Controllers/ItemSearchController.php @@ -286,4 +286,12 @@ class ItemSearchController extends Controller } return response()->json($sk); } + + public function dau_rinci_detail(Request $request) + { + $search = $request->id; + $sk = MstDauRinci::where('id',$search)->first(); + + return response()->json($sk); + } } diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index 6c58210..55dc4d7 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -122,9 +122,9 @@ class RealisasiBelanjaController extends Controller "kode_rekening"=>null, "nama_rekening"=>null, "jumlah_anggaran"=>$VwDpaRsk["v_angg_tapd"], - "alokasi_anggaran"=>replaceMoney($req["alokasi_anggaran"]), - "volume_satuan"=>replaceMoney($req["vol"]), - "unit_satuan"=>$req["unit"], + "alokasi_anggaran"=>isset($req["alokasi_anggaran"])?replaceMoney($req["alokasi_anggaran"]):0, + "volume_satuan"=>isset($req["vol"])?replaceMoney($req["vol"]):0, + "unit_satuan"=>isset($req["unit"])?$req["unit"]:"", "jml_rencana_kontrak"=>isset($req["jml_rencana_kontrak"])?$req["jml_rencana_kontrak"]:0, "jenis_dana"=>$req["jenis_dana"], "sub_jenis_dana"=>$req["sub_jenis_dana"], @@ -152,8 +152,8 @@ class RealisasiBelanjaController extends Controller "sub_jenis_dana"=>"required", "jenis"=>"required", "rsk"=>"required", - "vol"=>"required", - "unit"=>"required", + // "vol"=>"required", + // "unit"=>"required", //"id_sps"=>"required", // Karena ada yg tidak memakai SPS ]); @@ -206,8 +206,8 @@ class RealisasiBelanjaController extends Controller "sub_jenis_dana"=>"required", "jenis"=>"required", "rsk"=>"required", - "vol"=>"required", - "unit"=>"required", + // "vol"=>"required", + // "unit"=>"required", //"id_sps"=>"required", ]); @@ -322,11 +322,11 @@ class RealisasiBelanjaController extends Controller $realisasi = $this->getRealisasi($BelanjaRealisasi->kode_rsk); $jmlRealisasi1 = empty($realisasi->sms1)?0:$realisasi->sms1; $jmlRealisasi2 = empty($realisasi->sms2)?0:$realisasi->sms2; - + $totalRealisasi = $jmlRealisasi2; $BelanjaRealisasiRinciDau = BelanjaRealisasiRinciDau::where("belanja_realisasi_id",$BelanjaRealisasi->id)->get(); $unitSatuan = UnitSatuan::orderBy("id")->get(); - return view('realisasi_belanja.submit_realisasi', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiRinci","BelanjaRealisasiRinciDau","jmlRealisasi1","jmlRealisasi2","unitSatuan")); + return view('realisasi_belanja.submit_realisasi', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiRinci","BelanjaRealisasiRinciDau","jmlRealisasi1","jmlRealisasi2","unitSatuan","totalRealisasi")); } public function realisasiDau(Request $request) @@ -1023,7 +1023,7 @@ class RealisasiBelanjaController extends Controller public function download(Request $request) { - $data = DB::select(DB::raw(BelanjaRealisasi::tableData(getTA(), $this->tableFilter($request)))); + $data = DB::select(DB::raw(BelanjaRealisasi::tableDataReport(getTA(), $this->tableFilter($request)))); $data = json_decode(json_encode($data), true); $fileName = 'Realisasi-belanja.xlsx'; @@ -1044,7 +1044,10 @@ class RealisasiBelanjaController extends Controller 'Alokasi Anggaran'=>'alokasi_anggaran', 'Volume'=>'volume_satuan', 'Unit'=>'unit_satuan', - 'Realisasi'=>'jml', + 'Realisasi'=>'jumlah_realisasi', + 'Volume Realisasi'=>'volume_satuan_realisasi', + 'Unit Realisasi'=>'unit_satuan_realisasi', + 'Total Realisasi'=>'jml', 'Volume'=>'volume_satuan_realisasi', 'Unit'=>'unit_satuan_realisasi', 'Jenis Belanja'=>'nama_jenis_belanja', diff --git a/app/Models/BelanjaRealisasi.php b/app/Models/BelanjaRealisasi.php index b4bd895..b110e06 100644 --- a/app/Models/BelanjaRealisasi.php +++ b/app/Models/BelanjaRealisasi.php @@ -123,6 +123,64 @@ class BelanjaRealisasi extends Eloquent return $sqlstr; } + public function tableDataReport($ta, $filter, $offset=0, $limit=0) + { + $ta = getTA(); + $sqlstr = "SELECT a.*,NVL(b.jml,0) as jml, + CASE WHEN a.jenis_dana = 'DBH' AND a.nama_subjenis_dana<>'CHT' + THEN NVL(d.jml_spd, 0) ELSE NVL(c.jml_spd, 0) END AS jml_spd, + a2.semester1,a2.semester2,a2.satuan_sms1,a2.satuan_sms2, + volume_satuan_realisasi_1,volume_satuan_realisasi_2,volume_satuan_realisasi_3,volume_satuan_realisasi_4,volume_satuan_realisasi_5,volume_satuan_realisasi_6,volume_satuan_realisasi_7, + volume_satuan_realisasi_8,volume_satuan_realisasi_9,volume_satuan_realisasi_10,volume_satuan_realisasi_11,volume_satuan_realisasi_12, + jumlah_realisasi_1,jumlah_realisasi_2,jumlah_realisasi_3,jumlah_realisasi_4,jumlah_realisasi_5,jumlah_realisasi_6,jumlah_realisasi_7, + jumlah_realisasi_8,jumlah_realisasi_9,jumlah_realisasi_10,jumlah_realisasi_11,jumlah_realisasi_12 + FROM VW_BELANJA_REALISASI_REPORT a + LEFT JOIN BELANJA_REALISASI_RINCI a1 + ON a.id=a1.belanja_realisasi_id + LEFT JOIN ( + SELECT BELANJA_REALISASI_ID,SUM(SEMESTER1) SEMESTER1,SUM(SEMESTER2) SEMESTER2, + SUM(SATUAN_SMS1) SATUAN_SMS1,SUM(SATUAN_SMS2) SATUAN_SMS2 + FROM ( SELECT BELANJA_REALISASI_ID,JUMLAH_REALISASI AS SEMESTER1, 0 AS SEMESTER2, + VOLUME_SATUAN_REALISASI AS SATUAN_SMS1, 0 AS SATUAN_SMS2 + FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 1 + UNION ALL SELECT BELANJA_REALISASI_ID,0 AS SEMESTER1, JUMLAH_REALISASI AS SEMESTER2, + 0 AS SATUAN_SMS2, VOLUME_SATUAN_REALISASI AS SATUAN_SMS2 + FROM BELANJA_REALISASI_DETAIL WHERE SEMESTER = 2 + ) GROUP BY BELANJA_REALISASI_ID + ) a2 ON a.id = a2.BELANJA_REALISASI_ID + LEFT JOIN ( + SELECT I_IDRSK,SUM(REALISASI) AS jml + FROM MV_ANGGARAN_REALISASI_RSK + WHERE C_ANGG_TAHUN = $ta + GROUP BY I_IDRSK + ) b ON a.kode_rsk = b.I_IDRSK + LEFT JOIN ( + SELECT id_rsk,count(id_rsk) as jml_spd + FROM SAMASA.belanja_realisasi_spd + WHERE TO_CHAR(TGL,'YYYY') = $ta + GROUP BY id_rsk + ) c ON a.kode_rsk = c.id_rsk + LEFT JOIN ( + SELECT C_OPD,C_SUBGIAT,COUNT(JML) AS jml_spd + FROM + ( + SELECT C_OPD,C_SUBGIAT,SUM(V_SPD) AS JML + FROM NEWSIPKD.TMSPDRINCIBLJ x + LEFT JOIN NEWSIPKD.TMDPASUBGIAT y ON x.I_IDSUBGIAT = y.I_ID + AND x.C_ANGG_TAHUN = $ta + LEFT JOIN NEWSIPKD.TROPD z ON z.I_ID = y.I_IDOPD + WHERE C_SUBGIAT IS NOT NULL + GROUP BY C_OPD,C_SUBGIAT,I_IDSPD + ) GROUP BY C_OPD,C_SUBGIAT + ) d ON a.KODE_SUB_KEGIATAN = d.C_SUBGIAT AND a.KODE_SKPD = d.C_OPD + ".$filter." + ORDER BY a.KODE_SKPD, a.KODE_RSK "; + + $sqlstr.= $limit > 0?" OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY ":""; + + return $sqlstr; + } + public function akbRealisasi() { $ta = getTA(); diff --git a/app/Models/MstDauRinci.php b/app/Models/MstDauRinci.php index fb149cc..d3273ef 100644 --- a/app/Models/MstDauRinci.php +++ b/app/Models/MstDauRinci.php @@ -14,5 +14,6 @@ class MstDauRinci extends Eloquent protected $fillable = [ "name", "grup", + "satuan" ]; } diff --git a/database/migrations/2023_02_21_160255_create_mst_dau_rinci_table.php b/database/migrations/2023_02_21_160255_create_mst_dau_rinci_table.php index 293066f..1a0620f 100644 --- a/database/migrations/2023_02_21_160255_create_mst_dau_rinci_table.php +++ b/database/migrations/2023_02_21_160255_create_mst_dau_rinci_table.php @@ -17,6 +17,7 @@ class CreateMstDauRinciTable extends Migration $table->id(); $table->string('name', 255); $table->enum('grup',["Pembangunan","Pemberdayaan"])->default("Pembangunan"); + $table->string('satuan', 50); $table->timestamps(); }); } diff --git a/resources/views/admin/mst_dau_rinci/create.blade.php b/resources/views/admin/mst_dau_rinci/create.blade.php index 8624ff1..c35b602 100644 --- a/resources/views/admin/mst_dau_rinci/create.blade.php +++ b/resources/views/admin/mst_dau_rinci/create.blade.php @@ -38,6 +38,16 @@ +
+
+ + +
+
diff --git a/resources/views/admin/mst_dau_rinci/edit.blade.php b/resources/views/admin/mst_dau_rinci/edit.blade.php index a59fff0..7d336c8 100644 --- a/resources/views/admin/mst_dau_rinci/edit.blade.php +++ b/resources/views/admin/mst_dau_rinci/edit.blade.php @@ -1,7 +1,7 @@ @php $siteBreadcumb = [ - ["url"=>"/admin/MstJenisDana","label"=>$siteTitle], - ["url"=>"/admin/MstJenisDana","label"=>$sitesubTitle] + ["url"=>"/admin/MstDauRinci","label"=>$siteTitle], + ["url"=>"/admin/MstDauRinci","label"=>$sitesubTitle] ]; @endphp @@ -14,12 +14,12 @@
@php echo $sitesubTitle; @endphp
- Kembali + Kembali
-
+ @csrf @method('PUT')
@@ -27,16 +27,25 @@
Grup
Nama - + +
+
+
+
+ +
@@ -48,7 +57,8 @@ @section('scripts') @endsection \ No newline at end of file diff --git a/resources/views/admin/mst_dau_rinci/index.blade.php b/resources/views/admin/mst_dau_rinci/index.blade.php index 84c4323..0c7439c 100644 --- a/resources/views/admin/mst_dau_rinci/index.blade.php +++ b/resources/views/admin/mst_dau_rinci/index.blade.php @@ -30,6 +30,7 @@ No Grup Nama + Satuan Unit Action @@ -80,6 +81,7 @@ { "data": null}, { "data": "grup", "className":"text-center" }, { "data": "name", "className":"text-left" }, + { "data": "satuan", "className":"text-center" }, { "data": null, "className":"text-center" }, ], "rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) { @@ -89,7 +91,7 @@ let checked = aData["is_lock_upload"] == 1 ? "checked":""; $("td:eq(0)", nRow).html(index); - $("td:eq(3)", nRow).html(` + $("td:eq(4)", nRow).html(` @csrf @method('DELETE') diff --git a/resources/views/realisasi_belanja/form.blade.php b/resources/views/realisasi_belanja/form.blade.php index e929d92..34a38c0 100644 --- a/resources/views/realisasi_belanja/form.blade.php +++ b/resources/views/realisasi_belanja/form.blade.php @@ -99,11 +99,7 @@
- +
@@ -142,10 +138,16 @@ $("#sub_jenis").val('').trigger('change'); subJenisDana($(this).val()); jenisBelanja($(this).val()); + $("input[name=alokasi_anggaran]").prop("disabled",false); + $("input[name=vol]").prop("disabled",false); + $("select[name=unit]").prop("disabled",false); $("#divDAU").hide(); $("#divDAU input").prop("disabled", true); if ($(this).val()=="DAU"){ $("#divDAU").show(); + $("input[name=alokasi_anggaran]").prop("disabled",true); + $("input[name=vol]").prop("disabled",true); + $("select[name=unit]").prop("disabled",true ); $("#divDAU input, #divDAU select").prop("disabled", false); } }) @@ -180,11 +182,7 @@
- +
@@ -202,7 +200,20 @@ $(document).on('select2:select','.rinci_dau', function (e) { let data = e.params.data; - $($(".txt_rinci_dau")[$(".rinci_dau").index($(this))]).val(data.text); + let idx = $(".rinci_dau").index($(this)); + $($(".txt_rinci_dau")[idx]).val(data.text); + $.ajax({ + url: "{{ url("/item-search-dau-rinci-detail") }}", + headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, + type: "json", + method: "POST", + data:{ + 'id': data.id + }, + success: function(datax){ + $($(".dau-satuan")[idx]).val(datax.satuan); + } + }) }) }); @@ -216,7 +227,7 @@ } if (jmlAnggaran != parseFloat(replaceValue($("input[name=anggaran]").val()))){ - Swal.fire("Info","Jumlah Perincian tidak sama dengan Anggaran!","error") + Swal.fire("Info","Jumlah Anggaran yang diinput tidak sesuai!","error") return false; } } diff --git a/resources/views/realisasi_belanja/submit.blade.php b/resources/views/realisasi_belanja/submit.blade.php index 0cd565c..6057eea 100644 --- a/resources/views/realisasi_belanja/submit.blade.php +++ b/resources/views/realisasi_belanja/submit.blade.php @@ -63,10 +63,6 @@ $("select[name=jenis_dana]").attr("disabled", true); $('select[name=jenis_dana]').change(); - @php if ($BelanjaRealisasi->jenis_dana != "DAU"){ @endphp - $("#detail_dau").remove(); - @php } @endphp - let $newOptionSubJenisDana = $("").val("{{ $BelanjaRealisasi->sub_jenis_dana }}").text("{{ $BelanjaRealisasi->nama_subjenis_dana }}") $("select[name=sub_jenis_dana]").val("{{ $BelanjaRealisasi->sub_jenis_dana }}"); $("select[name=sub_jenis_dana]").append($newOptionSubJenisDana).trigger('change'); diff --git a/resources/views/realisasi_belanja/submit_realisasi.blade.php b/resources/views/realisasi_belanja/submit_realisasi.blade.php index d165230..f09ba25 100644 --- a/resources/views/realisasi_belanja/submit_realisasi.blade.php +++ b/resources/views/realisasi_belanja/submit_realisasi.blade.php @@ -20,11 +20,15 @@ +
+
Semester 1
@@ -54,6 +58,7 @@
+
Semester 2
@@ -110,49 +115,45 @@ can("Input Realisasi DBH Realisasi Belanja")){ ?> Input Rincian -
+
+
-
Detail DAU
- @csrf - - + @csrf +
Detail DAU
+
Total Realisasi :{{ number_format($totalRealisasi) }}
+ +
+ + + + + + + + + + + + + + $rinciDau){ ?> - - - - - - - - + + + + + + + + - - - $rinciDau){ ?> - - - - - - - - - - - - -
NoUraianAnggaranVolumeSatuanRealisasiVolume RealisasiSatuan Realisasi
NoUraianAnggaranVolumeSatuanRealisasiVolume RealisasiSatuan Realisasi{{ ($k+1) }}{{ $rinciDau->deskripsi }}{{ separateNumberIndo($rinciDau->jml_anggaran) }}{{ $rinciDau->volume_satuan }}{{ $rinciDau->unit_satuan }} + + +
{{ ($k+1) }}{{ $rinciDau->deskripsi }}{{ separateNumberIndo($rinciDau->jml_anggaran) }}{{ $rinciDau->volume_satuan }}{{ $rinciDau->unit_satuan }} - - - - - -
+ + +
@@ -166,6 +167,8 @@ $(document).on("click","#btnSimpanDau",function(){ let cancel = false; let msg=""; + let totalRealisasi = $("#totalRealisasi").val(); + for(let x=0;x<$(".input_dau").length;x++){ if ($($(".input_dau")[x]).val()==""){ cancel = true; @@ -173,11 +176,23 @@ } } + let currentRealisasi = 0; for(let x=0;x<$(".input_dau_realisasi").length;x++){ if ($($(".input_dau_anggaran")[x]).val() 0){ + if (currentRealisasi!=totalRealisasi){ + msg = "Jumlah Realisasi yang Diinput tidak sesuai!"; + cancel = true; + } + }else{ + msg = "Data Realisasi masih kosong !"; + cancel = true; } if (cancel){ @@ -204,5 +219,14 @@ $("#btnSimpanDau").remove(); + @php if ($BelanjaRealisasi->jenis_dana == "DAU"){ @endphp + $("#custom-tabs-four-home-tab").hide(); + $("#custom-tabs-four-profile-tab").hide(); + $("#custom-tabs-four-detail-tab").hide(); + $("#custom-tabs-four-dau-tab").click(); + @php }else{ @endphp + $("#custom-tabs-four-dau-tab").hide(); + @php } @endphp + }); \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 8c75d19..81be176 100644 --- a/routes/web.php +++ b/routes/web.php @@ -141,6 +141,7 @@ Route::group(['middleware' => 'auth'], function () { Route::get('item-search-subjenisdana', [ItemSearchController::class,'subjenisDana']); Route::get('item-search-rekening', [ItemSearchController::class,'rek_dana']); Route::get('item-search-dau-rinci', [ItemSearchController::class,'dau_rinci']); + Route::post('item-search-dau-rinci-detail', [ItemSearchController::class,'dau_rinci_detail']); Route::post('role-list', [MstPenggunaController::class,'roleList']); Route::get('logout', [AuthController::class, 'logout'])->name('logout');