Jadwal Belanja CHT

This commit is contained in:
Pusdatin BPKD Jkt
2022-07-28 16:34:10 +07:00
parent 919cd46b34
commit 3884b894a7
8 changed files with 369 additions and 11 deletions
@@ -0,0 +1,53 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\Sps_pendapatan;
class JadwalBelanjadanaController extends Controller
{
public function __construct(){
$this->siteTitle = "Jadwal Belanja Dana";
parent::__construct();
}
public function index()
{
return view('jadwal_belanjadana.index');
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = $post["src"];
$ta = $post["ta"];
$dataFilter=0;
$sqlstr = 'SELECT x.kode_rsk, x.nama_rsk, x.jumlah_anggaran, y.v_akb_01,y.v_akb_02,y.v_akb_03,y.v_akb_04,y.v_akb_05,
y.v_akb_06,y.v_akb_07,y.v_akb_08,y.v_akb_09,y.v_akb_10,y.v_akb_11,y.v_akb_12,
y.v_bku_01,y.v_bku_02,y.v_bku_03,y.v_bku_04,y.v_bku_05,
y.v_bku_06,y.v_bku_07,y.v_bku_08,y.v_bku_09,y.v_bku_10,y.v_bku_11,y.v_bku_12
FROM SAMASA.DBH_BELANJA_REALISASI x
LEFT JOIN NEWSIPKD.VW_AKB_SPD_REALISASI_RSK y
ON x.KODE_RSK = y.I_IDRSK WHERE x.TAHUN_ANGGARAN = '.$ta.' AND V_SPD=0 ';
$data = DB::connection('oracle')->select(DB::raw($sqlstr.' ORDER BY x.id OFFSET '.$offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY'));
if (!empty($src)){
//$data->whereRaw("(LOWER(NAMA_REKENING) LIKE '%".strtolower($src)."%' OR LOWER(KODE_REKENING) LIKE '%".strtolower($src)."%')");
}
$dataFilter = count(DB::connection('oracle')->select(DB::raw($sqlstr)));
$dataTotal = 0;
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data
]);
}
}
+4
View File
@@ -300,4 +300,8 @@ hr{
.table td, .table th{ .table td, .table th{
padding: 0.5rem; padding: 0.5rem;
}
.dataTables_processing .card{
display: none;
} }
+5 -1
View File
@@ -385,4 +385,8 @@ refreshNotif = ()=>{
} }
}) })
} }
refreshNotif(); refreshNotif();
$.extend( $.fn.dataTable.ext.classes, {
sProcessing: "dataTables_processing",
});
@@ -0,0 +1,294 @@
@php
$siteBreadcumb = [
["url"=>"/jadwal-belanjadana","label"=>$siteTitle],
];
@endphp
@extends('layouts.app')
@section('styles')
<link rel="stylesheet" href="/AdminLTE-3.2.0/plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="/AdminLTE-3.2.0/plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="/AdminLTE-3.2.0/plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
<link rel="stylesheet" href="/AdminLTE-3.2.0/plugins/datatables-rowgroup/css/rowGroup.bootstrap4.min.css">
<link rel="stylesheet" href="/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/css/fixedColumns.bootstrap4.min.css">
@endsection
@section('card_header')
<div class="card-header">
<h2 class="card-title"><i class="fa fa-th-list mr-2"></i> {{ $sitesubTitle }}</h2>
<div class="card-tools">
{{-- @if(auth()->user()->can('Tambah SKPP')) --}}
{{-- <button class="btn btn-sm btn-success" onclick="location.href='{{ route('salur-dana.create') }}'"><i class="fa fa-edit"></i> Tambah Data</button> --}}
{{-- @endif --}}
</div>
</div>
@stop
@section('content')
<div class="row">
<div class="col-1">
<div class="form-group">
<label>Periode</label>
<select class="form-control form-control-sm" id="srcTA">
@php
$listTA = Session::get('listTA');
foreach($listTA as $rowTA){
echo "<option>$rowTA</option>";
}
@endphp
</select>
</div>
</div>
<div class="col-11">
<div class="form-group">
<label>Berdasarkan Kata</label>
<input class="form-control form-control-sm" type="text" id="src">
</div>
</div>
</div>
<table id="dtTableJadwalBelanja" class="table table-bordered table-striped jambo_table tblClickRow" style="width:150%">
<thead>
<tr class="headings">
<th rowspan=2>No</th>
<th rowspan=2>RSK</th>
<th rowspan=2>Anggaran</th>
<th colspan=2 class="text-right">Jan</th>
<th colspan=2 class="text-right">Feb</th>
<th colspan=2 class="text-right">Mar</th>
<th colspan=2 class="text-right">Apr</th>
<th colspan=2 class="text-right">Mei</th>
<th colspan=2 class="text-right">Juni</th>
<th colspan=2 class="text-right">Juli</th>
<th colspan=2 class="text-right">Agu</th>
<th colspan=2 class="text-right">Sep</th>
<th colspan=2 class="text-right">Okt</th>
<th colspan=2 class="text-right">Nov</th>
<th colspan=2 class="text-right">Des</th>
<th colspan=2 class="text-right">Jumlah</th>
</tr>
<tr>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
<td>AKB</td>
<td>Realisasi</td>
</tr>
</thead>
<tbody></tbody>
</table>
@stop
@section('scripts')
<script src="/AdminLTE-3.2.0/plugins/datatables/jquery.dataTables.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/jszip/jszip.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/pdfmake/pdfmake.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/pdfmake/vfs_fonts.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.html5.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.print.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/js/dataTables.fixedColumns.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-fixedcolumns/js/fixedColumns.bootstrap4.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-rowgroup/js/dataTables.rowGroup.min.js"></script>
<script src="/AdminLTE-3.2.0/plugins/datatables-rowgroup/js/rowGroup.bootstrap4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var srcDate1 = null, srcDate2 = null;
$("#src").keyup(function(e){
if (e.keyCode == 13){
e.preventDefault();
dtTable.draw();
}
});
$("#srcTA").on("change",function(e){
dtTable.draw();
});
var dtTable = $('#dtTableJadwalBelanja').DataTable( {
"processing": true,
"serverSide": true,
"ordering": false,
"autoWidth": false,
"ajax": {
url: "/jadwal-belanjadana/datatable",
type: "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: function (d) {
d.src = $("#src").val(),
d.ta = $("#srcTA").val()
}
},
"columnDefs": [
//{ className: "td-nowrap", "targets": [ 1 ] }
],
"dom": "<\"top\" <\"row\"<\"col-md-6\"l><\"col-md-6 text-right\">>>rt<\"bottom\" <\"row\"<\"col-md-6\"i><\"col-md-6\"p>> ><\"clear\">",
"lengthMenu": [
[ 10, 25, 50 ],
[ "10", "25", "50" ]
],
"paging": true, // Table pagination
"columns": [
{ "data": null},
{ "data": "nama_rsk", "width": "400px" },
{ "data": "jumlah_anggaran", "className":"text-right" },
{ "data": "v_akb_01", "className":"text-right" },
{ "data": "v_bku_01", "className":"text-right text-success" },
{ "data": "v_akb_02", "className":"text-right" },
{ "data": "v_bku_02", "className":"text-right text-success" },
{ "data": "v_akb_03", "className":"text-right" },
{ "data": "v_bku_03", "className":"text-right text-success" },
{ "data": "v_akb_04", "className":"text-right" },
{ "data": "v_bku_04", "className":"text-right text-success" },
{ "data": "v_akb_05", "className":"text-right" },
{ "data": "v_bku_05", "className":"text-right text-success" },
{ "data": "v_akb_06", "className":"text-right" },
{ "data": "v_bku_06", "className":"text-right text-success" },
{ "data": "v_akb_07", "className":"text-right" },
{ "data": "v_bku_07", "className":"text-right text-success" },
{ "data": "v_akb_08", "className":"text-right" },
{ "data": "v_bku_08", "className":"text-right text-success" },
{ "data": "v_akb_09", "className":"text-right" },
{ "data": "v_bku_09", "className":"text-right text-success" },
{ "data": "v_akb_10", "className":"text-right" },
{ "data": "v_bku_10", "className":"text-right text-success" },
{ "data": "v_akb_11", "className":"text-right" },
{ "data": "v_bku_11", "className":"text-right text-success" },
{ "data": "v_akb_12", "className":"text-right" },
{ "data": "v_bku_12", "className":"text-right text-success" },
{ "data": null, "className":"text-right " },
{ "data": null, "className":"text-right text-success" },
//{ "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 akb = [aData["v_akb_01"],aData["v_akb_02"],aData["v_akb_03"],aData["v_akb_04"],aData["v_akb_05"],aData["v_akb_06"]
,aData["v_akb_07"],aData["v_akb_08"],aData["v_akb_09"],aData["v_akb_10"],aData["v_akb_11"],aData["v_akb_12"]];
let real = [aData["v_bku_01"],aData["v_bku_02"],aData["v_bku_03"],aData["v_bku_04"],aData["v_bku_05"],aData["v_bku_06"]
,aData["v_bku_07"],aData["v_bku_08"],aData["v_bku_09"],aData["v_bku_10"],aData["v_bku_11"],aData["v_bku_12"]];
let total = 0;
let totalReal = 0;
let Jadwalcol=3;
$("td:eq(0)", nRow).html(index);
$("td:eq(1)", nRow).html(aData["kode_rsk"] + " | " + aData["nama_rsk"]);
$("td:eq(2)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
$.each(akb, function(i,x){
$("td:eq("+Jadwalcol+")", nRow).html(separateNumberIndo(parseFloat(akb[i])));
Jadwalcol++;
$("td:eq("+(Jadwalcol)+")", nRow).html(separateNumberIndo(parseFloat(real[i])));
total+=parseFloat(akb[i]);
totalReal+=parseFloat(real[i]);
Jadwalcol++;
})
$("td:eq(27)", nRow).html(separateNumberIndo(total));
$("td:eq(28)", nRow).html(separateNumberIndo(totalReal));
return nRow;
},
"language": {
"lengthMenu": "Tampilkan _MENU_ Data per Halaman",
"zeroRecords": "Data tidak ditemukan!",
"info": "Halaman _PAGE_ dari _PAGES_ Halaman",
"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>",
},
fixedColumns: {
left: 3,
},
rowGroup: {
endRender: function ( rows, group, index ) {
let sum = [];
let sumReal = [];
let total = 0;
let totalReal = 0;
for(let x=0;x<12;x++){
xx = ("00"+(x+1));
xx = xx.substring(xx.length - 2);
sum[x] = rows.data().pluck("v_akb_"+xx).reduce( function (a, b) {
return a + b * 1;
}, 0);
total += sum[x];
sumReal[x] = rows.data().pluck("v_bku_"+xx).reduce( function (a, b) {
return a + b * 1;
}, 0);
totalReal += sumReal[x];
}
let textmuted = index == 1 ? "text-muted":"";
let labelGroup = index == 1 ?"JUMLAH | " + group : "TOTAL";
return $("<tr/>")
.append( "<td></td>")
.append( "<td colspan='2' class=\'text-left " + textmuted +"\'><strong>"+labelGroup+"</strong></td>")
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[0]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[0]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[1]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[1]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[2]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[2]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[3]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[3]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[4]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[4]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[5]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[5]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[6]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[6]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[7]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[7]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[8]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[8]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[9]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[9]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[10]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[10]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(sum[11]) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(sumReal[11]) +"</strong></td>" )
.append( "<td class=\'text-right " + textmuted +"\'><strong>"+ separateNumberIndo(total) +"</strong></td>" )
.append( "<td class='text-success text-right'><strong>"+ separateNumberIndo(totalReal) +"</strong></td>" )
},
startRender: function ( rows, group, index ) {
},
dataSrc: ["kode_skpd"]
},
scrollX: true,
scrollY: "350px",
});
});
</script>
@endsection
@@ -151,8 +151,8 @@
], ],
"dom": "<\"top\" <\"row\"<\"col-md-6\"l><\"col-md-6 text-right\">>>rt<\"bottom\" <\"row\"<\"col-md-6\"i><\"col-md-6\"p>> ><\"clear\">", "dom": "<\"top\" <\"row\"<\"col-md-6\"l><\"col-md-6 text-right\">>>rt<\"bottom\" <\"row\"<\"col-md-6\"i><\"col-md-6\"p>> ><\"clear\">",
"lengthMenu": [ "lengthMenu": [
[ 20, 50, 75, 100 ], [ 50, 75, 100 ],
[ "20", "50", "75", "100" ] [ "50", "75", "100" ]
], ],
"paging": true, // Table pagination "paging": true, // Table pagination
"columns": [ "columns": [
@@ -206,7 +206,6 @@
$("td:eq("+(Jadwalcol+1)+")", nRow).html(separateNumberIndo(real[i])); $("td:eq("+(Jadwalcol+1)+")", nRow).html(separateNumberIndo(real[i]));
total+=parseFloat(sps[i]); total+=parseFloat(sps[i]);
totalReal+=parseFloat(real[i]); totalReal+=parseFloat(real[i]);
console.log(real[i]);
}) })
$("td:eq(26)", nRow).html(separateNumberIndo(total)); $("td:eq(26)", nRow).html(separateNumberIndo(total));
$("td:eq(27)", nRow).html(separateNumberIndo(totalReal)); $("td:eq(27)", nRow).html(separateNumberIndo(totalReal));
@@ -225,7 +224,6 @@
}, },
"processing": "<div class='loading'></div>", "processing": "<div class='loading'></div>",
}, },
scrollX:true,
fixedColumns: { fixedColumns: {
left: 2, left: 2,
}, },
@@ -294,6 +292,8 @@
}, },
dataSrc: ["groupall", "kodegrup"] dataSrc: ["groupall", "kodegrup"]
}, },
scrollX:true,
scrollY: "350px",
}); });
}); });
</script> </script>
+1 -1
View File
@@ -23,7 +23,6 @@
<script src="/js/moment.min.js"></script> <script src="/js/moment.min.js"></script>
<script src="/js/typeahead.bundle.min.js"></script> <script src="/js/typeahead.bundle.min.js"></script>
<script src="/js/daterangepicker.js"></script> <script src="/js/daterangepicker.js"></script>
<script src="/js/app.js"></script>
@yield('scripts') @yield('scripts')
@yield('scripts2') @yield('scripts2')
<script type="text/javascript"> <script type="text/javascript">
@@ -38,5 +37,6 @@
$("#loader-wrapper").hide(); $("#loader-wrapper").hide();
}); });
</script> </script>
<script src="/js/app.js"></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -68,7 +68,7 @@
<ul class="nav nav-treeview"> <ul class="nav nav-treeview">
<?php if (Auth::user()->can("Read DBH Jadwal")){ ?> <?php if (Auth::user()->can("Read DBH Jadwal")){ ?>
<li class="nav-item"> <li class="nav-item">
<a href="{{ url('/cht/jadwal-salurdana') }}" class="nav-link"> <a href="{{ url('/jadwal-belanjadana') }}" class="nav-link">
<i class="nav-icon fa fa-minus"></i> <i class="nav-icon fa fa-minus"></i>
<p>Jadwal CHT</p> <p>Jadwal CHT</p>
</a> </a>
+7 -4
View File
@@ -6,6 +6,7 @@ use App\Http\Controllers\HomeController;
use App\Http\Controllers\SkpdController; use App\Http\Controllers\SkpdController;
use App\Http\Controllers\ItemSearchController; use App\Http\Controllers\ItemSearchController;
use App\Http\Controllers\JadwalSalurdanaController; use App\Http\Controllers\JadwalSalurdanaController;
use App\Http\Controllers\JadwalBelanjadanaController;
use App\Http\Controllers\RealisasiPendapatanController; use App\Http\Controllers\RealisasiPendapatanController;
use App\Http\Controllers\RealisasiBelanjaController; use App\Http\Controllers\RealisasiBelanjaController;
use App\Http\Controllers\LaporanController; use App\Http\Controllers\LaporanController;
@@ -37,11 +38,13 @@ Route::group(['middleware' => 'auth'], function () {
Route::group(['prefix' => 'jadwal-salurdana'], function () { Route::group(['prefix' => 'jadwal-salurdana'], function () {
Route::get('/', [JadwalSalurdanaController::class,'index']); Route::get('/', [JadwalSalurdanaController::class,'index']);
Route::post('/datatable', [JadwalSalurdanaController::class,'datatable']); Route::post('/datatable', [JadwalSalurdanaController::class,'datatable']);
Route::group(['middleware' => ['permission:Cetak SKPP']], function () {
Route::post('/print', [JadwalSalurdanaController::class,'printData']);
});
}); });
Route::group(['prefix' => 'jadwal-belanjadana'], function () {
Route::get('/', [JadwalBelanjadanaController::class,'index']);
Route::post('/datatable', [JadwalBelanjadanaController::class,'datatable']);
});
Route::group(['prefix' => 'dbh'], function () { Route::group(['prefix' => 'dbh'], function () {
Route::group(['prefix' => 'realisasi-pendapatan'], function () { Route::group(['prefix' => 'realisasi-pendapatan'], function () {
Route::post('/datatable', [RealisasiPendapatanController::class,'datatable']); Route::post('/datatable', [RealisasiPendapatanController::class,'datatable']);