update dau rinci (realisasi belanja)

This commit is contained in:
Marsa
2026-07-06 10:00:46 +07:00
parent b6dd0b04bc
commit fbc640485f
6 changed files with 483 additions and 300 deletions
+21 -3
View File
@@ -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;
@@ -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);
}
}
@@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\MappingDauRinci;
use Illuminate\Http\Request;
class MappingDauRinciController extends Controller
{
public function index()
{
$items = MappingDauRinci::paginate(15);
return response()->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);
}
}
@@ -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
]);
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class MappingDauRinci extends Eloquent
{
use HasFactory;
protected $connection = 'Samasa';
protected $table = 'mapping_dau_rinci';
protected $fillable = [
"id_dau_rinci",
"id_jenis_dana",
"tahun",
"kode_skpd"
];
}
@@ -1,5 +1,9 @@
<div class="row">
<div class="col-6">
<div class="form-group">
<label class="col-form-label label-align" for="txt_simtrad4_kotor">Kode Rekening</label>
<select id="id_sps" name="id_sps" style="width:100%" class="form-control sps_search"></select>
</div>
<div class="form-group">
<label class="col-form-label label-align" for="jenis">Jenis Dana</label>
<select id="jenis_dana" name="jenis_dana" class="form-control form-control-sm jenis_dana" required>
@@ -12,10 +16,6 @@
<label class="col-form-label label-align" for="jenis">Sub Jenis Dana</label>
<select id="sub_jenis_dana" name="sub_jenis_dana" class="form-control sub_jenis_dana" required></select>
</div>
<div class="form-group">
<label class="col-form-label label-align" for="txt_simtrad4_kotor">Kode Rekening</label>
<select id="id_sps" name="id_sps" style="width:100%" class="form-control sps_search"></select>
</div>
<div class="form-group">
<label class="col-form-label label-align" for="jenis">Jenis Belanja</label>
<select id="jenis" name="jenis" class="form-control jenis_belanja_search" required></select>
@@ -82,7 +82,8 @@
<label class="col-form-label label-align" for="sk">Sumber Dana Anggaran DAU </label>
<select class="form-control form-control-sm" id="periode_anggaran" name="dau[periode_anggaran][]">
<option value="DAU Tahun Berjalan" name="dau[periode_anggaran][]">DAU Tahun Berjalan</option>
<option value="Sisa DAU Tahun Sebelumnya" name="dau[periode_anggaran][]">Sisa DAU Tahun Sebelumnya</option>
<option value="Sisa DAU Tahun Sebelumnya" name="dau[periode_anggaran][]">Sisa DAU Tahun
Sebelumnya</option>
</select>
</div>
</div>
@@ -96,7 +97,8 @@
<div class="col-2">
<div class="form-group">
<label class="col-form-label label-align">Anggaran</label>
<input type="text" class="form-control form-control-sm number-separator-indo anggaran-dau" name="dau[anggaran][]" required>
<input type="text" class="form-control form-control-sm number-separator-indo anggaran-dau"
name="dau[anggaran][]" required>
</div>
</div>
<div class="col-2">
@@ -108,20 +110,21 @@
<div class="col-2">
<div class="form-group">
<label class="col-form-label label-align" for="sk">Unit</label>
<input class="form-control form-control-sm dau-satuan" name="dau[unit][]" readonly required placeholder="Unit Realisasi">
<input class="form-control form-control-sm dau-satuan" name="dau[unit][]" readonly required
placeholder="Unit Realisasi">
</div>
</div>
</div>
</div>
<button id="btnAddRinciDAU" type="button" class="btn btn-primary"><i class="fa fa-plus"></i> Tambah Rincian</button>
</div>
{{-- <button id="btn_save_realisasi_pendapatan" type="submit" class="btn btn-sm btn-success"><i class="fa fa-save"></i> Simpan</button> --}}
{{-- <button id="btn_save_realisasi_pendapatan" type="submit" class="btn btn-sm btn-success"><i class="fa fa-save"></i>
Simpan</button> --}}
@section('scripts')
<script type="text/javascript">
var cekInputKontrak = (dat) => {
if (dat == "Fisik")
{
if (dat == "Fisik") {
$("#div_jml_rencana_kontrak").show();
$("input[name=jml_rencana_kontrak]").prop("required", true);
} else {
@@ -171,7 +174,8 @@
})
$("#btnAddRinciDAU").on("click", () => {
$("#div-rinci-dau").append(`
// $("#div-rinci-dau").append(
const rowHtml = `
<div class="data-dau row">
<div class="col-2">
<div class="form-group">
@@ -210,11 +214,21 @@
<button type="button" class="btn btn-danger hapusRinciDau mt-3">x</button>
</div>
</div>
`);
`;
const $newRow = $(rowHtml);
$("#div-rinci-dau").append($newRow);
populateJenisOutput($newRow.find('.rinci_dau'));
dauRinci();
});
$('#sub_jenis_dana').on('change', function () {
// Find every generated row's dropdown and update them all
$('.rinci_dau').each(function () {
populateJenisOutput($(this));
});
});
$(document).on("click", ".hapusRinciDau", function () {
$(this).closest(".data-dau").remove()
})
@@ -239,6 +253,28 @@
});
function populateJenisOutput($targetDropdown) {
let subJenisDana = $("#sub_jenis_dana").val();
// let searchGroup = "DAU";
$targetDropdown.empty().append('<option value="">Pilih Deskripsi</option>');
if (!subJenisDana) return;
$.ajax({
url: "{{ url("/item-search-dau-rinci-detail") }}",
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
type: "json",
method: "POST",
data: {
'sub_jenis_dana': subJenisDana
},
success: function (data) {
data.forEach(function (item) {
$targetDropdown.append('<option value="' + item.id + '">' + item.deskripsi + '</option>');
});
}
});
}
var cekInputDAU = function () {
if ($("#jenis_dana").val() == "DAU") {
@@ -10,16 +10,19 @@
@section('styles')
<!-- DataTables -->
<link rel="stylesheet" href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet"
href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
<link rel="stylesheet" href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.min.css">
<link rel="stylesheet"
href="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.min.css">
@endsection
@section('content')
<div class="card card-secondary">
<div class="card-header">
<h2 class="card-title"><i class="fa fa-filter mr-2"></i> FILTER DATA
<?= !empty($BelanjaRealisasi->f_view_sbpk) && getRole()!="skpd"?"<span class='text-success'><strong>[ Review SBPK ]</strong></span>":"" ?></h2>
<?= !empty($BelanjaRealisasi->f_view_sbpk) && getRole() != "skpd" ? "<span class='text-success'><strong>[ Review SBPK ]</strong></span>" : "" ?>
</h2>
<div class="card-tools">
{{-- @if(auth()->user()->can('Tambah SKPP')) --}}
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse">
@@ -59,7 +62,8 @@
<div class="col-3">
<div class="form-group">
<label>Kode Rekening</label>
<select id="id_sps" name="id_sps" style="width:100%" class="form-control sps_search" required></select>
<select id="id_sps" name="id_sps" style="width:100%" class="form-control sps_search"
required></select>
</div>
</div>
<?php if (getRole() != "skpd") { ?>
@@ -95,7 +99,9 @@
<h2 class="card-title"><i class="fa fa-th-list mr-2"></i> {{ $sitesubTitle }}</h2>
<div class="card-tools">
@php if (Auth::user()->can("Input Realisasi DBH Realisasi Belanja")) { @endphp
<a id= "btnTambah" class="modalButton btn btn-sm btn-success" size="modal-xl" title="Tambah Data Realisasi Belanja" href="{{ URL::to("/realisasi-belanja/create-from-rsk") }}"><i class='fa fa-edit'></i> Tambah Data</a>
<a id="btnTambah" class="modalButton btn btn-sm btn-success" size="modal-xl"
title="Tambah Data Realisasi Belanja" href="{{ URL::to("/realisasi-belanja/create-from-rsk") }}"><i
class='fa fa-edit'></i> Tambah Data</a>
@php } @endphp
</div>
</div>
@@ -129,6 +135,16 @@
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr class="bg-light font-weight-bold">
<td></td>
<td colspan="5" class="text-left">TOTAL KESELURUHAN</td>
<td id="grand-total-anggaran" class="text-right">0</td>
<td colspan="2"></td>
<td id="grand-total-realisasi" class="text-right">0</td>
<td colspan="5"></td>
</tr>
</tfoot>
</table>
</div>
</div>
@@ -383,6 +399,19 @@
$(".dataTables_scrollBody").scrollTo($("#tblRealisasi .c_row_" + selectionRow));
@php echo Auth::user()->lock_ubah_data == 1 ? "$('.btnEdit').remove();\n" : ""; @endphp
@php echo Auth::user()->lock_hapus_data == 1 ? "$('.btnHapus').remove();\n" : ""; @endphp
}
});
dtTable.on('xhr', function () {
var json = dtTable.ajax.json();
if (json) {
let totalAnggaran = json.grandTotalAnggaran ?? 0;
let totalRealisasi = json.grandTotalRealisasi ?? 0;
$('#grand-total-anggaran').html(separateNumberIndo(totalAnggaran));
$('#grand-total-realisasi').html(separateNumberIndo(totalRealisasi));
}
});
@@ -394,8 +423,7 @@
url: $("#frmInputSPD").attr("action"),
success: function (data) {
$("#modal-default").modal("hide");
if (data.success == true)
{
if (data.success == true) {
dtTable.ajax.reload(null, false);
selectionRow = $("input[name=id_rsk]").val();
Swal.fire(data.message, '', 'success');