441 lines
22 KiB
PHP
441 lines
22 KiB
PHP
@php
|
|
// var_dump(Auth::user()->lock_ubah_data); exit;
|
|
$siteBreadcumb = [
|
|
["url" => "/realisasi-pendapatan", "label" => $siteTitle],
|
|
];
|
|
@endphp
|
|
|
|
@extends('layouts.empty')
|
|
|
|
@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-buttons/css/buttons.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>
|
|
<div class="card-tools">
|
|
{{-- @if(auth()->user()->can('Tambah SKPP')) --}}
|
|
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse">
|
|
<i class="fas fa-minus"></i>
|
|
</button>
|
|
{{-- @endif --}}
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<form id="frmRealisasi" method="post" action="{{ $baseUrl }}/realisasi-belanja/download">
|
|
@csrf
|
|
<div class="row">
|
|
<div class="col-1">
|
|
<div class="form-group">
|
|
<label>Tahun</label>
|
|
<input class="form-control form-control-sm" id="srcTA" name="ta" value="{{ getTA() }}" readonly>
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="form-group">
|
|
<label>Jenis Dana</label>
|
|
<select class="form-control form-control-sm" id="srcJenisDana" name="jenis_dana">
|
|
<option value="">Semua</option>
|
|
@php foreach (getJenisDana() as $jenisDana) { @endphp
|
|
<option value="{{ $jenisDana }}">{{ $jenisDana }}</option>
|
|
@php } @endphp
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="form-group">
|
|
<label>Sub Jenis Dana</label>
|
|
<select class="form-control sub_jenis_dana" id="srcSubJenisDana" name="sub_jenis_dana">
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<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>
|
|
</div>
|
|
</div>
|
|
<?php if (getRole() != "skpd") { ?>
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<label>SKPD</label>
|
|
<select class="form-control" id="skpd" name="skpd"></select>
|
|
</div>
|
|
</div>
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<label>Review SBPK</label>
|
|
<select class="form-control form-control-sm" id="f_review" name="f_review">
|
|
<option value="">Semua</option>
|
|
<option value=1>Sudah direview</option>
|
|
<option value=2>Belum direview</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<?php } ?>
|
|
{{-- <div class="col-5">
|
|
<div class="form-group">
|
|
<label>Berdasarkan Kata</label>
|
|
<input class="form-control form-control-sm" type="text" id="src">
|
|
</div>
|
|
</div> --}}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="card card-secondary">
|
|
<div class="card-header">
|
|
<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>
|
|
@php } @endphp
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<table id="tblRealisasi" class="table table-striped jambo_table tblClickRow" style="width:100%;">
|
|
<thead>
|
|
<tr class="headings">
|
|
<th>No</th>
|
|
<?php
|
|
$arrCol = array(
|
|
"SKPD",
|
|
"Program",
|
|
"Sub Kegiatan",
|
|
"Aktivitas",
|
|
"Rekening",
|
|
"Anggaran",
|
|
"Volume",
|
|
"Unit",
|
|
"Jumlah Realisasi",
|
|
"Volume Realisasi",
|
|
"Unit Realisasi",
|
|
"SPD",
|
|
"Jenis",
|
|
"Aksi"
|
|
);
|
|
|
|
foreach ($arrCol as $rowCol) {
|
|
echo "<th>$rowCol</th>";
|
|
}
|
|
?>
|
|
</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>
|
|
@stop
|
|
@section('scripts')
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables/jquery.dataTables.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/jszip/jszip.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/pdfmake/pdfmake.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/pdfmake/vfs_fonts.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.html5.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.print.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-rowgroup/js/dataTables.rowGroup.min.js"></script>
|
|
<script src="{{ $baseUrl }}/AdminLTE-3.2.0/plugins/datatables-rowgroup/js/rowGroup.bootstrap4.min.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/2.1.3/jquery.scrollTo.min.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
var srcDate1 = null, srcDate2 = null;
|
|
var selectionRow = "";
|
|
|
|
$("#srcJenisDana").on("change", function () {
|
|
subJenisDana($(this).val());
|
|
});
|
|
subJenisDana($("#srcJenisDana").val());
|
|
|
|
$("#srcJenisDana, #srcSubJenisDana, #srcTA, #id_sps, #f_review").on("change", function () {
|
|
dtTable.draw();
|
|
});
|
|
|
|
$("#src").keyup(function (e) {
|
|
if (e.keyCode == 13) {
|
|
e.preventDefault();
|
|
dtTable.draw();
|
|
}
|
|
});
|
|
|
|
$('#skpd').select2({
|
|
placeholder: 'Pilih SKPD',
|
|
allowClear: true,
|
|
ajax: {
|
|
url: '{{ $baseUrl }}/skpd-search?realisasi-belanja=ya&ta=' + $("#srcTA").val(),
|
|
dataType: 'json',
|
|
delay: 250,
|
|
processResults: function (data) {
|
|
return {
|
|
results: $.map(data, function (item) {
|
|
return {
|
|
text: item.name,
|
|
id: item.id
|
|
}
|
|
})
|
|
};
|
|
},
|
|
cache: true
|
|
}
|
|
});
|
|
|
|
$('#skpd').on('select2:select', function (e) {
|
|
dtTable.draw();
|
|
})
|
|
|
|
$('#skpd').on('select2:clear', function (e) {
|
|
dtTable.draw();
|
|
})
|
|
|
|
$('#subkeg').select2({
|
|
placeholder: 'Pilih Sub Kegiatan',
|
|
allowClear: true,
|
|
ajax: {
|
|
url: '{{ $baseUrl }}/item-search-sk?realisasi-belanja=ya&ta=' + $("#srcTA").val(),
|
|
dataType: 'json',
|
|
delay: 250,
|
|
processResults: function (data) {
|
|
return {
|
|
results: $.map(data, function (item) {
|
|
return {
|
|
text: item.name,
|
|
id: item.id
|
|
}
|
|
})
|
|
};
|
|
},
|
|
cache: true
|
|
}
|
|
});
|
|
|
|
$('#subkeg').on('select2:select', function (e) {
|
|
dtTable.draw();
|
|
})
|
|
|
|
$('#subkeg').on('select2:clear', function (e) {
|
|
dtTable.draw();
|
|
})
|
|
|
|
var dtTable = $('#tblRealisasi').DataTable({
|
|
"processing": true,
|
|
"serverSide": true,
|
|
"ordering": false,
|
|
"autoWidth": true,
|
|
"ajax": {
|
|
url: "{{ $baseUrl }}/realisasi-belanja/datatable",
|
|
type: "POST",
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
},
|
|
data: function (d) {
|
|
d.ta = $("#srcTA").val(),
|
|
d.jenis_dana = $("#srcJenisDana").val(),
|
|
d.sub_jenis_dana = $("#srcSubJenisDana").val(),
|
|
d.skpd = $("#skpd").val(),
|
|
d.id_sps = $("#id_sps").val(),
|
|
d.f_review = $("#f_review").val()
|
|
}
|
|
},
|
|
"columnDefs": [
|
|
//{ className: "td-nowrap", "targets": [ 1 ] }
|
|
],
|
|
"dom": "<\"top\" <\"row\"<\"col-md-6\"l><\"col-md-2 ml-auto \"f><\"col-md-1 text-right\"B>>>rt<\"bottom\" <\"row\"<\"col-md-6\"i><\"col-md-6\"p>> ><\"clear\">",
|
|
"lengthMenu": [
|
|
[10, 25, 50, -1],
|
|
["10", "25", "50", "All"]
|
|
],
|
|
"paging": true, // Table pagination
|
|
"columns": [
|
|
{ "data": null },
|
|
{ "data": "nama_skpd", "className": "text-left", "defaultContent": "-" },
|
|
{ "data": "nama_program", "className": "text-left", "defaultContent": "-" },
|
|
{ "data": "nama_sub_kegiatan", "className": "text-left", "defaultContent": "20%" },
|
|
{ "data": "nama_rsk", "className": "text-left", "defaultContent": "-", "width": "20%" },
|
|
{ "data": "nama_rekening", "className": "text-left", "defaultContent": "-", "width": "20%" },
|
|
{ "data": "jumlah_anggaran", "className": "text-right", "defaultContent": "0" },
|
|
{ "data": "volume_satuan", "className": "text-center", "defaultContent": "0", "width": 50 },
|
|
{ "data": "unit_satuan", "className": "text-center", "defaultContent": "-", "width": 50 },
|
|
{ "data": null, "className": "text-right" },
|
|
{ "data": "volume_satuan_realisasi", "className": "text-center", "defaultContent": "0", "width": 50 },
|
|
{ "data": "unit_satuan_realisasi", "className": "text-center", "defaultContent": "-", "width": 50 },
|
|
{ "data": null },
|
|
{ "data": "jenis_dana", "className": "text-center" },
|
|
{ "data": null }
|
|
],
|
|
"rowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) {
|
|
let info = dtTable.page.info();
|
|
let numStart = info.page;
|
|
let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1;
|
|
let realisasi = aData["jml"] > 0 ? "<span class='text-success font-weight-bold p-1'>" + separateNumberIndo(aData["jml"]) + "</span>" : "";
|
|
// let btnInput = parseInt(aData["f_view_sbpk"]) == 0 ? `<a class="btn btn-warning btn-sm" href="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`/edit" title="Ubah"><i class="fa fa-edit"></i></a>
|
|
// <button type="submit" class="btn btn-danger btn-sm"title="Hapus"><i class="fa fa-trash"></i></button>`:``;
|
|
let btnInput = `<a class="btn btn-warning btn-sm btnEdit" href="{{ URL::to("/realisasi-belanja") }}/` + aData["id"] + `/edit" title="Ubah" ><i class="fa fa-edit"></i></a>
|
|
<button type="submit" class="btn btn-danger btn-sm btnHapus"title="Hapus" id="btnHapus"><i class="fa fa-trash"></i></button>`;
|
|
let volume_satuan_realisasi = aData["volume_satuan_realisasi"] > 0 ? "<span class='text-success font-weight-bold p-1'>" + separateNumberIndo(aData["volume_satuan_realisasi"]) + "</span>" : "";
|
|
let unit_satuan_realisasi = aData["unit_satuan_realisasi"] != null ? "<span class='text-success font-weight-bold p-1'>" + aData["unit_satuan_realisasi"] + "</span>" : "";
|
|
|
|
$(nRow).addClass("c_row_" + aData["kode_rsk"]);
|
|
$("td:eq(0)", nRow).html(index);
|
|
$("td:eq(1)", nRow).html("<div style='width:200px;'>" + aData["kode_skpd"] + " | " + aData["nama_skpd"] + "</div>");
|
|
$("td:eq(2)", nRow).html("<div style='width:200px;'>" + aData["kode_program"] + " | " + aData["nama_program"] + "</div>");
|
|
$("td:eq(3)", nRow).html("<div style='width:200px;'>" + aData["kode_sub_kegiatan"] + " | " + aData["nama_sub_kegiatan"] + "</div>");
|
|
$("td:eq(4)", nRow).html("<div style='width:200px;'>" + aData["kode_rsk"] + " | " + aData["nama_rsk"] + "</div>");
|
|
$("td:eq(5)", nRow).html(aData["kode_rekening"] == null ? "-" : "<div style='width:200px;'>" + aData["kode_rekening"] + " | " + aData["nama_rekening"] + "</div>");
|
|
$("td:eq(6)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
|
|
$("td:eq(7)", nRow).html(separateNumberIndo(aData["volume_satuan"]));
|
|
$("td:eq(9)", nRow).html(realisasi);
|
|
$("td:eq(10)", nRow).html(volume_satuan_realisasi);
|
|
$("td:eq(11)", nRow).html(unit_satuan_realisasi);
|
|
$("td:eq(12)", nRow).html(<?= getRole() == "bendahara" ? '(aData["jenis_dana"] == "DBH" && aData["nama_subjenis_dana"] != "CHT") ? aData["jml_spd"]:"<a class=\"modalButton\" title=\"Pilih SPD [ RSK: "+aData["kode_rsk"]+" ]\" href=\"' . URL::to("/") . '/realisasi-belanja/"+aData["kode_rsk"]+"/ubah-spd/?redirect=/realisasi-belanja\">"+aData["jml_spd"]+"</a>"' : 'aData["jml_spd"]' ?>);
|
|
$("td:eq(13)", nRow).html(aData["jenis_dana"] + "::" + aData["nama_subjenis_dana"]);
|
|
$("td:eq(14)", nRow).html(`
|
|
<form class="form-delete" action="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] + `" method="POST">
|
|
@csrf
|
|
@method('DELETE')
|
|
<a href="{{ URL::to("/realisasi-belanja") }}/` + aData["id"] + `/submit" class="btn btn-sm btn-info"><i class="fa fa-eye"></i></a>
|
|
@php if (Auth::user()->can("Input Realisasi DBH Realisasi Belanja")) { @endphp
|
|
` + btnInput + `
|
|
@php } @endphp
|
|
</form>`);
|
|
|
|
return nRow;
|
|
},
|
|
"language": {
|
|
"lengthMenu": "Tampil _MENU_ data per Halaman",
|
|
"zeroRecords": "Data tidak ditemukan!",
|
|
"info": "Halaman _PAGE_ dari _PAGES_ Halaman ( _TOTAL_ Data )",
|
|
"infoEmpty": "Data tidak tersedia",
|
|
"infoFiltered": "(Disaring dari _MAX_ Data)",
|
|
"paginate": {
|
|
"previous": "<i class='fas fa-angle-double-left'></i>",
|
|
"next": "<i class='fas fa-angle-double-right'></i>",
|
|
},
|
|
"processing": "<div class='loading'></div>",
|
|
},
|
|
rowGroup: {
|
|
endRender: function (rows, group, index) {
|
|
let sum = rows.data().pluck("jumlah_anggaran").reduce(function (a, b) {
|
|
return a + b * 1;
|
|
}, 0);
|
|
|
|
let sum2 = rows.data().pluck("jml").reduce(function (a, b) {
|
|
return a + b * 1;
|
|
}, 0);
|
|
|
|
let textmuted = index == 1 ? "text-muted" : "";
|
|
let labelGroup = index == 1 ? "JUMLAH | " + group : "TOTAL";
|
|
return $("<tr/>")
|
|
.append("<td></td>")
|
|
.append("<td colspan='5' class=\'text-left " + textmuted + "\'><strong>" + labelGroup + "</strong></td>")
|
|
.append("<td class='text-right'><strong>" + separateNumberIndo(sum) + "</strong></td>")
|
|
.append("<td colspan='2'></td>")
|
|
.append("<td class='text-right'><strong>" + separateNumberIndo(sum2) + "</strong></td>")
|
|
.append("<td colspan='5'></td>")
|
|
},
|
|
startRender: function (rows, group, index) {
|
|
// let group1 = rows.data().pluck("GROUP1");
|
|
// let group2 = rows.data().pluck("GROUP2");
|
|
|
|
// let groupNumber = index == 0 ? group1[0] : group2[0];
|
|
// if (index == 0){
|
|
// return $("<tr/>")
|
|
// .append("<td colspan=5><a href=\'/akun/index/detail/?acc="+groupNumber.split(".").join("_")+"\'>" + groupNumber + ". " + group + "</a></td>")
|
|
// }else{
|
|
// return $("<tr/>")
|
|
// .append("<td colspan=5> <a href=\'/akun/index/detail/?acc="+groupNumber.split(".").join("_")+"\'><strong>" + groupNumber + ". " + group + "</strong></a></td>")
|
|
// }
|
|
},
|
|
dataSrc: ["tahun_anggaran", "nama_skpd"],
|
|
},
|
|
scrollX: true,
|
|
scrollY: "350px",
|
|
buttons: [
|
|
{
|
|
extend: "collection",
|
|
text: "Export",
|
|
buttons: [
|
|
{
|
|
text: "<i class=\'fas fa-file-excel\'></i> Excel",
|
|
className: "export-data link-excel",
|
|
attr: {
|
|
formid: "frmRealisasi",
|
|
extype: "excel"
|
|
}
|
|
},
|
|
],
|
|
}
|
|
],
|
|
"drawCallback": function (settings) {
|
|
$(".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));
|
|
}
|
|
});
|
|
|
|
$(document).on("submit", "#frmInputSPD", function (e) {
|
|
e.preventDefault();
|
|
$.ajax({
|
|
type: "POST",
|
|
data: $(this).serialize(),
|
|
url: $("#frmInputSPD").attr("action"),
|
|
success: function (data) {
|
|
$("#modal-default").modal("hide");
|
|
if (data.success == true) {
|
|
dtTable.ajax.reload(null, false);
|
|
selectionRow = $("input[name=id_rsk]").val();
|
|
Swal.fire(data.message, '', 'success');
|
|
} else {
|
|
Swal.fire(data.message, '', 'error');
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
@php echo Auth::user()->lock_tambah_data == 1 ? "$('#btnTambah').remove();\n" : ""; @endphp
|
|
|
|
});
|
|
</script>
|
|
@endsection
|