From fbc640485f10d3747249d33b18386103cee2c6ed Mon Sep 17 00:00:00 2001 From: Marsa Date: Mon, 6 Jul 2026 10:00:46 +0700 Subject: [PATCH] update dau rinci (realisasi belanja) --- app/Http/Controllers/ItemSearchController.php | 34 +- .../Controllers/MappingDauRinciController.php | 65 +++ .../RealisasiBelanjaController.php | 38 +- app/Models/MappingDauRinci.php | 20 + .../views/realisasi_belanja/form.blade.php | 194 ++++---- .../views/realisasi_belanja/index.blade.php | 432 ++++++++++-------- 6 files changed, 483 insertions(+), 300 deletions(-) create mode 100644 app/Http/Controllers/MappingDauRinciController.php create mode 100644 app/Models/MappingDauRinci.php diff --git a/app/Http/Controllers/ItemSearchController.php b/app/Http/Controllers/ItemSearchController.php index baeba78..a09a0eb 100644 --- a/app/Http/Controllers/ItemSearchController.php +++ b/app/Http/Controllers/ItemSearchController.php @@ -18,10 +18,12 @@ use App\Models\MstJenisDana; use App\Models\MstJenisBelanja; use App\Models\MstSubJenisBelanja; use App\Models\VwRekeningPendapatan; +use App\Models\MappingDauRinci; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Session; use App\Models\PendapatanRealisasiSts; use App\Models\AkunTamsilTpg; @@ -193,14 +195,14 @@ class ItemSearchController extends Controller if (in_array($kode_akun, $arrTPG)) { $cek = PendapatanRealisasiSts::where("rkud_no_sts", $no_skprd) - ->where("rkud_kode_akun", $kode_akun) - ->count(); + ->where("rkud_kode_akun", $kode_akun) + ->count(); if ($cek > 0) { $urlAPIDev = "http://10.15.34.90:8820/api/tpg-tamsil/cek-sp2t"; $userDev = "sidata_tpgtamsil_dev"; $passDev = "sidataAp!TpgT4ms1lD3v"; - + $urlAPI = "https://simpad.jakarta.go.id/api/tpg-tamsil/cek-sp2t'"; $user = "sidata_tpgtamsil"; $pass = "sidataAp!TpgT4ms1l"; @@ -218,8 +220,8 @@ class ItemSearchController extends Controller $sts["kode_bas"] = $httpSTS["data"]["kode_rekening"]; $sts["n_akun"] = $httpSTS["data"]["nam_rekening"]; $sts["nilai_bayar"] = separateNumberIndo($httpSTS["data"]["jumlah"]); - } - } + } + } } else { $select = DB::raw("NO_SKPRD,TGL_VALIDASI,KODE_BAS,NILAI_BAYAR,TRBAS.N_AKUN"); $sts = Siesetpembayaran::select($select) @@ -334,9 +336,25 @@ class ItemSearchController extends Controller public function dau_rinci_detail(Request $request) { - $search = $request->id; - $sk = MstDauRinci::where('id', $search)->first(); + // $search = $request->id; + // $sk = MstDauRinci::where('id', $search)->first(); - return response()->json($sk); + // return response()->json($sk); + $subJenisDana = $request->sub_jenis_dana; + $tahun = Session::get('Tahun_Anggaran'); + $kodeSkpd = Auth::user()->kode_skpd; + + if (!$subJenisDana || !$tahun || !$kodeSkpd) { + return response()->json([]); + } + + $idDauRinciList = MappingDauRinci::where('ID_JENIS_DANA', $subJenisDana) + ->where('TAHUN', $tahun) + ->where('KODE_SKPD', $kodeSkpd) + ->pluck('ID_DAU_RINCI'); + + $outputs = MstDauRinci::whereIn('id', $idDauRinciList)->get(); + + return response()->json($outputs); } } diff --git a/app/Http/Controllers/MappingDauRinciController.php b/app/Http/Controllers/MappingDauRinciController.php new file mode 100644 index 0000000..e7af598 --- /dev/null +++ b/app/Http/Controllers/MappingDauRinciController.php @@ -0,0 +1,65 @@ +json($items); + } + + public function create() + { + return response()->json(['message' => 'Display form for creating resource']); + } + + public function store(Request $request) + { + $data = $request->validate([ + 'field1' => 'required|string|max:255', + 'field2' => 'nullable|string', + 'field3' => 'nullable|numeric', + ]); + + $item = MappingDauRinci::create($data); + + return response()->json($item, 201); + } + + public function show(MappingDauRinci $mappingDauRinci) + { + return response()->json($mappingDauRinci); + } + + public function edit(MappingDauRinci $mappingDauRinci) + { + return response()->json($mappingDauRinci); + } + + public function update(Request $request, MappingDauRinci $mappingDauRinci) + { + $data = $request->validate([ + 'field1' => 'sometimes|required|string|max:255', + 'field2' => 'nullable|string', + 'field3' => 'nullable|numeric', + ]); + + $mappingDauRinci->update($data); + + return response()->json($mappingDauRinci); + } + + public function destroy(MappingDauRinci $mappingDauRinci) + { + $mappingDauRinci->delete(); + + return response()->json(null, 204); + } +} diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index 552da6b..fddcc84 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -51,10 +51,10 @@ class RealisasiBelanjaController extends Controller abort(403, 'Tidak diperbolehkan menambah data oleh admin!'); } $get = $request->all(); - $rskExists = BelanjaRealisasi::where("tahun_anggaran",getTA()) - ->where("kode_skpd",Auth::user()->kode_skpd) - ->where("kode_rsk", $get["rsk"]) - ->count(); + $rskExists = BelanjaRealisasi::where("tahun_anggaran", getTA()) + ->where("kode_skpd", Auth::user()->kode_skpd) + ->where("kode_rsk", $get["rsk"]) + ->count(); if ($rskExists > 0) { return redirect(URL::to("/realisasi-belanja")) ->with('error', 'Data dengan RSK yang dipilih sudah ada!'); @@ -305,7 +305,7 @@ class RealisasiBelanjaController extends Controller if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_subjenis_dana != "CHT") { $vwSPD = BelanjaRealisasi::getSPD($BelanjaRealisasi->kode_sub_kegiatan, $BelanjaRealisasi->id_skpd); } else { - $vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get(); + $vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get(); } $vwSP2D = DB::select( @@ -430,18 +430,34 @@ class RealisasiBelanjaController extends Controller $dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM VW_BELANJA_REALISASI " . $this->tableFilter($request))); $dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->count(); - $sqlStr = "SELECT * FROM VW_DPA_RSK WHERE C_ANGG_TAHUN=" . getTA(); + // $sqlStr = "SELECT * FROM VW_DPA_RSK WHERE C_ANGG_TAHUN=" . getTA(); if (getRole() == "skpd") { $dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD='" . Auth::user()->nrk . "'")->count(); } elseif (getRole() == "sbpk") { - $dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=" . Auth::user()->wilayah . ")"); + $dataTotal = BelanjaRealisasi::where("tahun_anggaran", $ta)->whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=" . Auth::user()->wilayah . ")") - count(); } + + $filterClause = $this->tableFilter($request); + + $grandTotals = DB::select(DB::raw(" + SELECT + NVL(SUM(JUMLAH_ANGGARAN),0) AS total_anggaran, + NVL(SUM(JUMLAH_REALISASI),0) AS total_realisasi + FROM VW_BELANJA_REALISASI + $filterClause + ")); + + $grandTotalAnggaran = !empty($grandTotals) ? $grandTotals[0]->total_anggaran : 0; + $grandTotalRealisasi = !empty($grandTotals) ? $grandTotals[0]->total_realisasi : 0; + $data = DB::select(DB::raw(BelanjaRealisasi::tableDataReport($ta, $this->tableFilter($request), $offset, $limit))); return response()->json([ "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter[0]->jml, - "data" => $data + "data" => $data, + "grandTotalAnggaran" => $grandTotalAnggaran, + "grandTotalRealisasi" => $grandTotalRealisasi ]); } @@ -690,7 +706,7 @@ class RealisasiBelanjaController extends Controller $semester = ""; $redirect = isset($req["redirect_link"]) ? $req["redirect_link"] : URL::to("/realisasi-belanja"); if ($req["type"] == "sms") { - $sms = (int)$req["sms"]; + $sms = (int) $req["sms"]; if ($sms == 1) { $semester = "SEMESTER 1"; $filter = " AND D_POSTING BETWEEN '" . $ta . "0101' AND '" . $ta . "0630' "; @@ -714,7 +730,7 @@ class RealisasiBelanjaController extends Controller $data["volume_satuan_realisasi"] = $req["vol_realisasi"]; $data["unit_satuan_realisasi"] = $req["unit_realisasi"]; // $data["periode_anggaran"] = $req["periode_anggaran"]; - $data["semester"] = (int)$req["sms"]; + $data["semester"] = (int) $req["sms"]; $data["created_by"] = Auth::user()->id; BelanjaRealisasiDetail::create($data); @@ -1092,7 +1108,7 @@ class RealisasiBelanjaController extends Controller foreach ($arrCol as $key => $fieldVal) { if (is_array($fieldVal)) { foreach ($fieldVal as $rowfieldVal) { - $valNotNull = $val[$rowfieldVal] ? $val[$rowfieldVal] : 0; + $valNotNull = $val[$rowfieldVal] ? $val[$rowfieldVal] : 0; $contentVal = str_contains($rowfieldVal, "volume_satuan_realisasi") ? $valNotNull . " " . $val["unit_satuan"] : $valNotNull; $sheet->setCellValue(getAlphabetCell($i) . $rows, $contentVal); $i++; diff --git a/app/Models/MappingDauRinci.php b/app/Models/MappingDauRinci.php new file mode 100644 index 0000000..a3a5780 --- /dev/null +++ b/app/Models/MappingDauRinci.php @@ -0,0 +1,20 @@ +
+
+ + +
@@ -12,10 +16,6 @@
-
- - -
@@ -61,8 +61,8 @@
@@ -77,17 +77,18 @@
-
+
- - +
-
+
-
+
@@ -96,7 +97,8 @@
- +
@@ -108,30 +110,31 @@
- +
-{{-- --}} +{{-- --}} @section('scripts') @@ -152,21 +168,21 @@