diff --git a/app/Http/Controllers/Admin/PengaturanController.php b/app/Http/Controllers/Admin/PengaturanController.php new file mode 100644 index 0000000..cc15759 --- /dev/null +++ b/app/Http/Controllers/Admin/PengaturanController.php @@ -0,0 +1,48 @@ +siteTitle = "Pengaturan"; + parent::__construct(); + } + + public function index() + { + $this->setIconTitle("fa fa-cog"); + return view('admin.pengaturan.index'); + } + + public function rekonAnggaran() + { + try{ + DB::beginTransaction(); + DB::raw( + "UPDATE BELANJA_REALISASI t1 + SET t1.JUMLAH_ANGGARAN = ( + SELECT V_ANGG_TAPD FROM VW_DPA_RSK t2 + WHERE t1.KODE_RSK = t2.I_ID + ) WHERE t1.TAHUN_ANGGARAN = ".getTA() + ); + DB::commit(); + return response()->json([ + "success" => true, + "message" => "Data anggaran berhasil disesuaikan!" + ]); + + }catch(Throwable $e){ + + DB::rollBack(); + return response()->json([ + "success" => false, + "message" => "Data anggaran gagal disesuaikan!" + ]); + } + } +} diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index de7edc3..84f30a2 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -222,7 +222,7 @@ class RealisasiBelanjaController extends Controller $BelanjaRealisasi = $BelanjaRealisasi[0]; $this->setTitle("Realisasi Belanja"); - $this->setSubtitle("Realisasi Belanja :: ".$BelanjaRealisasi->jenis_dana." ".$BelanjaRealisasi->nama_jenis_dana); + $this->setSubtitle("Realisasi Belanja :: ".$BelanjaRealisasi->jenis_dana." ".$BelanjaRealisasi->nama_subjenis_dana); if (getRole()=="sbpk"){ $sbpkUpdate = BelanjaRealisasi::where("id", $id)->firstOrNew(); @@ -266,7 +266,7 @@ class RealisasiBelanjaController extends Controller $vwAKB = json_decode(json_encode($vwAKB[0]), true); $vwSPD = []; - if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_jenis_dana != "CHT") + if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->nama_subjenis_dana != "CHT") { $vwSPD = BelanjaRealisasi::getSPD($BelanjaRealisasi->kode_sub_kegiatan,$BelanjaRealisasi->id_skpd); }else{ @@ -305,13 +305,10 @@ class RealisasiBelanjaController extends Controller return view('realisasi_belanja.submit_realisasi', compact("BelanjaRealisasi","BelanjaRealisasiDetail","BelanjaRealisasiRinci","jmlRealisasi1","jmlRealisasi2")); } - public function datatable(Request $request) + public function tableFilter(Request $request) { $post = $request->all(); - $offset = $post["start"]; - $limit = $post["length"]; $src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):""; - $ta = $post["ta"]; $JenisDana = isset($post["jenis_dana"])?$post["jenis_dana"]:""; $SubJenisDana = isset($post["sub_jenis_dana"])?$post["sub_jenis_dana"]:""; $skpd = isset($post["skpd"])?$post["skpd"]:""; @@ -319,43 +316,33 @@ class RealisasiBelanjaController extends Controller $idSPS = isset($post["id_sps"])?$post["id_sps"]:""; $fReview = isset($post["f_review"])?$post["f_review"]:""; - $sqlStr = "SELECT x.*,z1.name as nama_subjenis_dana - FROM BELANJA_REALISASI x - LEFT JOIN NEWSIPKD.TROPD z ON x.KODE_SKPD = z.C_OPD - LEFT JOIN MST_JENIS_DANA z1 ON x.sub_jenis_dana = z1.id - WHERE x.tahun_anggaran='$ta'"; - + $filter=" WHERE tahun_anggaran = ".getTA(); + if (getRole()=="skpd"){ - $sqlStr.=" AND KODE_SKPD='".Auth::user()->nrk."'"; + $filter.=" AND KODE_SKPD='".Auth::user()->nrk."'"; }elseif (getRole()=="sbpk"){ - $sqlStr.=" AND z.C_WIL_SP2DPROSES=".Auth::user()->wilayah; + $filter.=" AND KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=".Auth::user()->wilayah.")"; } if (!empty($skpd)){ - $sqlStr.=" AND KODE_SKPD='".$skpd."'"; + $filter.=" AND KODE_SKPD='".$skpd."'"; } - $filter=""; if (!empty($JenisDana)){ - $filter.= " AND x.JENIS_DANA = '".$JenisDana."'"; + $filter.= " AND JENIS_DANA = '".$JenisDana."'"; } if (!empty($SubJenisDana)){ - // CHT - $filter.= " AND x.SUB_JENIS_DANA = ".$SubJenisDana; + $filter.= " AND SUB_JENIS_DANA = ".$SubJenisDana; } - // if (!empty($subkeg)){ - // $filter.= " AND x.KODE_SUB_KEGIATAN = '".$subkeg."'"; - // } - if (!empty($idSPS)){ - $filter.= " AND x.id_sps = ".$idSPS; + $filter.= " AND id_sps = ".$idSPS; } if (!empty($fReview)){ $fReview = $fReview == 2 ? 0: $fReview; - $filter.= " AND x.f_view_sbpk = $fReview"; + $filter.= " AND f_view_sbpk = $fReview"; } if (!empty($src)){ @@ -366,40 +353,27 @@ class RealisasiBelanjaController extends Controller kode_rsk = '".$src."' ) "; } - $dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM ($sqlStr $filter) x")); - $dataTotal = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM ($sqlStr) x")); - $data = DB::select(DB::raw("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 - FROM (".$sqlStr.$filter.") a - LEFT JOIN ( - SELECT I_IDRSK, SUM(REALISASI_1) AS jml - FROM NEWSIPKD.VW_REALISASI_BELANJA_PERBULAN - 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 - ORDER BY a.KODE_SKPD, a.KODE_RSK OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY")); + return $filter; + } + + public function datatable(Request $request) + { + $post = $request->all(); + $offset = $post["start"]; + $limit = $post["length"]; + $ta = $post["ta"]; + + $dataFilter = DB::select(DB::raw("SELECT COUNT(ID) as JML FROM VW_BELANJA_REALISASI ".$this->tableFilter($request))); + $dataTotal = BelanjaRealisasi::count(); + if (getRole()=="skpd"){ + $dataTotal = BelanjaRealisasi::whereRaw("KODE_SKPD='".Auth::user()->nrk."'")->count(); + }elseif (getRole()=="sbpk"){ + $dataTotal = BelanjaRealisasi::whereRaw("KODE_SKPD IN (SELECT C_OPD FROM NEWSIPKD.TROPD WHERE C_WIL_SP2DPROSES=".Auth::user()->wilayah.")"); + } + $data = DB::select(DB::raw(BelanjaRealisasi::tableData($ta, $this->tableFilter($request), $offset, $limit))); return response()->json([ - "recordsTotal" => $dataTotal[0]->jml, + "recordsTotal" => $dataTotal, "recordsFiltered" => $dataFilter[0]->jml, "data"=> $data ]); @@ -1003,47 +977,8 @@ class RealisasiBelanjaController extends Controller public function download(Request $request) { - $post = $request->all(); - $sps = isset($post["sps"])?$post["sps"]:""; - $ta = $post["ta"]; - $JenisDana = isset($post["jenis_dana"])?$post["jenis_dana"]:""; - $SubJenisDana = isset($post["sub_jenis_dana"])?$post["sub_jenis_dana"]:""; - $skpd = isset($post["skpd"])?$post["skpd"]:""; - $subkeg = isset($post["subkeg"])?$post["subkeg"]:""; - $fReview = isset($post["f_review"])?$post["f_review"]:""; - - $data = BelanjaRealisasi::orderBy("created_at","ASC"); - $filter=""; - if (!empty($sps)){ - $filter.= " AND id_sps = ".$sps; - } - - if (getRole()=="skpd"){ - $filter.=" AND KODE_SKPD='".Auth::user()->nrk."'"; - }elseif (getRole()=="sbpk"){ - // $filter.=" AND z.C_WIL_SP2DPROSES=".Auth::user()->wilayah; - } - - if (!empty($skpd)){ - $filter.=" AND KODE_SKPD='".$skpd."'"; - } - - if (!empty($JenisDana)){ - $filter.= " AND JENIS_DANA = '".$JenisDana."'"; - } - - if (!empty($SubJenisDana)){ - $filter.= " AND SUB_JENIS_DANA = ".$SubJenisDana; - } - - if (!empty($idSPS)){ - $filter.= " AND id_sps = ".$idSPS; - } - - if (!empty($fReview)){ - $fReview = $fReview == 2 ? 0: $fReview; - $filter.= " AND f_view_sbpk = $fReview"; - } + $data = DB::select(DB::raw(BelanjaRealisasi::tableData(getTA(), $this->tableFilter($request)))); + $data = json_decode(json_encode($data), true); $fileName = 'Realisasi-belanja.xlsx'; $spreadsheet = new Spreadsheet(); @@ -1056,17 +991,17 @@ class RealisasiBelanjaController extends Controller $sheet->setCellValue(getAlphabetCell(5).'1', 'Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(6).'1', 'Kode Rinci Sub Kegiatan'); $sheet->setCellValue(getAlphabetCell(7).'1', 'Rinci Sub Kegiatan'); - $sheet->setCellValue(getAlphabetCell(6).'1', 'Kode Rekening'); - $sheet->setCellValue(getAlphabetCell(7).'1', 'Nama Rekening'); - $sheet->setCellValue(getAlphabetCell(8).'1', 'Anggaran'); - $sheet->setCellValue(getAlphabetCell(9).'1', 'Volume'); - $sheet->setCellValue(getAlphabetCell(10).'1', 'Unit'); - $sheet->setCellValue(getAlphabetCell(11).'1', 'Realisasi'); - $sheet->setCellValue(getAlphabetCell(12).'1', 'Volume'); - $sheet->setCellValue(getAlphabetCell(13).'1', 'Unit'); + $sheet->setCellValue(getAlphabetCell(8).'1', 'Kode Rekening'); + $sheet->setCellValue(getAlphabetCell(9).'1', 'Nama Rekening'); + $sheet->setCellValue(getAlphabetCell(10).'1', 'Anggaran'); + $sheet->setCellValue(getAlphabetCell(11).'1', 'Volume'); + $sheet->setCellValue(getAlphabetCell(12).'1', 'Unit'); + $sheet->setCellValue(getAlphabetCell(13).'1', 'Realisasi'); + $sheet->setCellValue(getAlphabetCell(14).'1', 'Volume'); + $sheet->setCellValue(getAlphabetCell(15).'1', 'Unit'); $rows = 2; - foreach ($data->get() as $val){ + foreach ($data as $val){ $sheet->setCellValue(getAlphabetCell(0) . $rows, $val["kode_skpd"]); $sheet->setCellValue(getAlphabetCell(1) . $rows, $val["nama_skpd"]); $sheet->setCellValue(getAlphabetCell(2) . $rows, $val["kode_program"]); @@ -1075,14 +1010,14 @@ class RealisasiBelanjaController extends Controller $sheet->setCellValue(getAlphabetCell(5) . $rows, $val["nama_sub_kegiatan"]); $sheet->setCellValue(getAlphabetCell(6) . $rows, $val["kode_rsk"]); $sheet->setCellValue(getAlphabetCell(7) . $rows, $val["nama_rsk"]); - $sheet->setCellValue(getAlphabetCell(6) . $rows, $val["kode_rekening"]); - $sheet->setCellValue(getAlphabetCell(7) . $rows, $val["nama_rekening"]); - $sheet->setCellValue(getAlphabetCell(8) . $rows, $val["jumlah_anggaran"]); - $sheet->setCellValue(getAlphabetCell(9) . $rows, $val["volume_satuan"]); - $sheet->setCellValue(getAlphabetCell(10) . $rows, $val["unit_satuan"]); - $sheet->setCellValue(getAlphabetCell(11) . $rows, $val["jumlah_realisasi"]); - $sheet->setCellValue(getAlphabetCell(12) . $rows, $val["volume_satuan_realisasi"]); - $sheet->setCellValue(getAlphabetCell(13) . $rows, $val["unit_satuan_realisasi"]); + $sheet->setCellValue(getAlphabetCell(8) . $rows, $val["kode_rekening"]); + $sheet->setCellValue(getAlphabetCell(9) . $rows, $val["nama_rekening"]); + $sheet->setCellValue(getAlphabetCell(10) . $rows, $val["jumlah_anggaran"]); + $sheet->setCellValue(getAlphabetCell(11) . $rows, $val["volume_satuan"]); + $sheet->setCellValue(getAlphabetCell(12) . $rows, $val["unit_satuan"]); + $sheet->setCellValue(getAlphabetCell(13) . $rows, $val["jml"]); + $sheet->setCellValue(getAlphabetCell(14) . $rows, $val["volume_satuan_realisasi"]); + $sheet->setCellValue(getAlphabetCell(15) . $rows, $val["unit_satuan_realisasi"]); $rows++; } diff --git a/app/Models/BelanjaRealisasi.php b/app/Models/BelanjaRealisasi.php index fad1bcb..0d006bf 100644 --- a/app/Models/BelanjaRealisasi.php +++ b/app/Models/BelanjaRealisasi.php @@ -64,4 +64,44 @@ class BelanjaRealisasi extends Eloquent WHERE a.C_ANGG_TAHUN = ".getTA()." ORDER BY a.D_SPDNO" )); } + + public function tableData($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 + FROM VW_BELANJA_REALISASI a + LEFT JOIN ( + SELECT I_IDRSK, SUM(REALISASI_1) AS jml + FROM NEWSIPKD.VW_REALISASI_BELANJA_PERBULAN + 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.= $offset>0?"OFFSET ".$offset." ROWS FETCH NEXT ".$limit." ROWS ONLY":""; + + return $sqlstr; + } } diff --git a/resources/views/admin/pengaturan/index.blade.php b/resources/views/admin/pengaturan/index.blade.php new file mode 100644 index 0000000..ba599e9 --- /dev/null +++ b/resources/views/admin/pengaturan/index.blade.php @@ -0,0 +1,56 @@ +@php + $siteBreadcumb = [ + ["url"=>"/admin/MstJenisBelanja","label"=>$siteTitle], + ["url"=>"/admin/MstJenisBelanja","label"=>$sitesubTitle] + ]; +@endphp + +@extends('layouts.empty') + +@section('styles') + +@endsection + +@section('content') +
+
+ Penyesuian Anggaran Tahun Anggaran {{ getTA(); }} +
+
+ + @section('scripts') + + @endsection +@stop \ No newline at end of file diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 4d8b505..14864fa 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -103,6 +103,7 @@ + @endif @if ($role == "superadmin") diff --git a/resources/views/realisasi_belanja/edit.blade.php b/resources/views/realisasi_belanja/edit.blade.php index 1c5f4f5..c416c32 100644 --- a/resources/views/realisasi_belanja/edit.blade.php +++ b/resources/views/realisasi_belanja/edit.blade.php @@ -36,10 +36,10 @@ $("select[name=jenis_dana]").val("{{ $realisasi_belanja->jenis_dana }}"); $('select[name=jenis_dana]').change(); - let $newOptionSubJenisDana = $("").val("{{ $realisasi_belanja->sub_jenis_dana }}").text("{{ $realisasi_belanja->nama_jenis_dana }}") + let $newOptionSubJenisDana = $("").val("{{ $realisasi_belanja->sub_jenis_dana }}").text("{{ $realisasi_belanja->nama_subjenis_dana }}") $("select[name=sub_jenis_dana]").val("{{ $realisasi_belanja->sub_jenis_dana }}"); $("select[name=sub_jenis_dana]").append($newOptionSubJenisDana).trigger('change'); - cekInputKontrak("{{ $realisasi_belanja->nama_jenis_dana }}"); + cekInputKontrak("{{ $realisasi_belanja->nama_subjenis_dana }}"); id_sps)) { ?> let $newOptionSps = $("").val("{{ $realisasi_belanja->id_sps }}").text("{{ $sps->name }}") diff --git a/resources/views/realisasi_belanja/index.blade.php b/resources/views/realisasi_belanja/index.blade.php index 161b844..f107c07 100644 --- a/resources/views/realisasi_belanja/index.blade.php +++ b/resources/views/realisasi_belanja/index.blade.php @@ -339,7 +339,7 @@ let labelGroup = index == 1 ?"JUMLAH | " + group : "TOTAL"; return $("") .append("") - .append(""+labelGroup+"") + .append(""+labelGroup+"") .append(""+ separateNumberIndo(sum) +"" ) .append("") .append(""+ separateNumberIndo(sum2) +"" ) diff --git a/resources/views/realisasi_belanja/submit.blade.php b/resources/views/realisasi_belanja/submit.blade.php index a10c4a5..073668f 100644 --- a/resources/views/realisasi_belanja/submit.blade.php +++ b/resources/views/realisasi_belanja/submit.blade.php @@ -63,12 +63,12 @@ $("select[name=jenis_dana]").attr("disabled", true); $('select[name=jenis_dana]').change(); - let $newOptionSubJenisDana = $("").val("{{ $BelanjaRealisasi->sub_jenis_dana }}").text("{{ $BelanjaRealisasi->nama_jenis_dana }}") + 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'); $("select[name=sub_jenis_dana]").attr("disabled", true); - cekInputKontrak("{{ $BelanjaRealisasi->nama_jenis_dana }}"); + cekInputKontrak("{{ $BelanjaRealisasi->nama_subjenis_dana }}"); id_sps)) { ?> let $newOptionSps = $("").val("{{ $BelanjaRealisasi->id_sps }}").text("{{ $sps->name }}") diff --git a/resources/views/realisasi_belanja/submit_akb_spd_kontrak.blade.php b/resources/views/realisasi_belanja/submit_akb_spd_kontrak.blade.php index 4b151d0..500ef2b 100644 --- a/resources/views/realisasi_belanja/submit_akb_spd_kontrak.blade.php +++ b/resources/views/realisasi_belanja/submit_akb_spd_kontrak.blade.php @@ -131,7 +131,7 @@ -jenis_dana) == "DAK" && strtoupper($BelanjaRealisasi->nama_jenis_dana) == "FISIK") { ?> +jenis_dana) == "DAK" && strtoupper($BelanjaRealisasi->nama_subjenis_dana) == "FISIK") { ?>

KONTRAK can("Create Kontrak")?'[ Tambah Kontrak ]':'' ?>

diff --git a/routes/web.php b/routes/web.php index 490ee3b..58a1f68 100644 --- a/routes/web.php +++ b/routes/web.php @@ -18,6 +18,7 @@ use App\Http\Controllers\Admin\MstJenisDanaController; 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\NotifikasiController; Route::get('/', [AuthController::class, 'showFormLogin']); @@ -46,6 +47,8 @@ Route::group(['middleware' => 'auth'], function () { Route::resource('MstSubJenisBelanja', MstSubJenisBelanjaController::class); Route::post('MstSatuan/datatable', [MstSatuanController::class,'datatable']); Route::resource('MstSatuan', MstSatuanController::class); + Route::get('Pengaturan', [PengaturanController::class,'index']); + Route::post('Pengaturan/adjust-anggaran', [PengaturanController::class,'rekonAnggaran']); }); Route::get('users/change-password/{userId}', [MstPenggunaController::class,'changePass'])->name("users.changepass");