laporan file dan spd pada dbh

This commit is contained in:
Pusdatin BPKD Jkt
2022-10-27 14:44:04 +07:00
parent 2edffa6584
commit 2df12fe3d2
17 changed files with 596 additions and 45 deletions
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Tropd; use App\Models\Tropd;
use App\Models\Trbas;
use App\Models\Program; use App\Models\Program;
use App\Models\Kegiatan; use App\Models\Kegiatan;
use App\Models\SubKegiatan; use App\Models\SubKegiatan;
@@ -242,4 +243,22 @@ class ItemSearchController extends Controller
} }
return response()->json($sk); return response()->json($sk);
} }
public function rek_dana(Request $request)
{
$search = strtolower($request->q);
$ta = $request->ta;
$select = DB::raw("C_AKUN AS IDX,C_AKUN||' | '||N_AKUN as NAME");
$trbas = Trbas::select($select)->whereRaw("C_TAHUN_BERAKHIR>=$ta AND C_AKUN LIKE '4.2.01.01%' AND LENGTH(C_AKUN)>=17");
if (!empty($search)){
$trbas->whereRaw(" (LOWER(C_AKUN) LIKE '%$search%' OR LOWER(N_AKUN) LIKE '%$search%') ");
}
$trbas->orderby("C_AKUN");
$trbas = $trbas->get();
return response()->json($trbas);
}
} }
@@ -0,0 +1,206 @@
<?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\LaporanFile;
use App\Models\User;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\File;
class LaporanFileController extends Controller
{
public function __construct(){
$this->siteTitle = "Laporan File";
parent::__construct();
$this->setIconTitle("fa fa-reply");
}
public function index()
{
return view('laporan_file.index');
}
public function create()
{
$this->setSubtitle("Tambah Data");
return view('laporan_file.create');
}
public function store(Request $request)
{
try{
$date = date("Ymd");
DB::beginTransaction();
$req = $request->all();
$LaporanExists = LaporanFile::where("nama_laporan",$req["nama_laporan"])->count();
if ($LaporanExists > 0)
{
return redirect(URL::to("/laporan-file"))
->with('error','Data nama laporan '.$req["nama_laporan"].' sudah ada!');
}
$this->validate($request, [
'file' => 'required|mimes:pdf',
]);
$data["tahun"] = $req["ta"];
$data["kode_rekening"] = $req["opt_kode_rekening"];
$data["kode_skpd"] = Auth::user()->nrk;
$data["nama_skpd"] = Auth::user()->name;
$data["nama_laporan"] = $req["nama_laporan"];
$file = $request->file('file');
if ($file){
$fileName = $file->getClientOriginalName();
$ext = $file->getClientOriginalExtension();
$NewFileName = $req["nama_laporan"].".".$ext;
$tujuan_upload = config('constants.upload_path_laporan');
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["nama_file"] = $NewFileName;
}
LaporanFile::create($data);
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success','Laporan berhasil dibuat!');
}catch(\Exception $e){
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error',$e->getMessage());
}
}
public function edit(LaporanFile $laporanFile)
{
$this->setSubtitle("Ubah Data");
return view('laporan_file.edit',compact('laporanFile'));
}
public function update(Request $request, LaporanFile $laporanFile)
{
try{
DB::beginTransaction();
$req = $request->all();
$LaporanExists = LaporanFile::where("nama_laporan",$req["nama_laporan"])->where("id","<>",$laporanFile->id)->count();
if ($LaporanExists > 0)
{
return redirect(URL::to("/laporan-file"))
->with('error','Data nama laporan '.$req["nama_laporan"].' sudah ada!');
}
$data["tahun"] = $req["ta"];
$data["kode_rekening"] = $req["opt_kode_rekening"];
$data["kode_skpd"] = Auth::user()->nrk;
$data["nama_skpd"] = Auth::user()->name;
$data["nama_laporan"] = $req["nama_laporan"];
$file = $request->file('file');
$tujuan_upload = config('constants.upload_path_laporan');
if ($file){
$fileName = $file->getClientOriginalName();
$ext = $file->getClientOriginalExtension();
$NewFileName = $req["nama_laporan"].".".$ext;
File::isDirectory($tujuan_upload) or File::makeDirectory($tujuan_upload, 0777, true, true);
$file->move($tujuan_upload, $NewFileName);
$data["nama_file"] = $NewFileName;
}else{
$arrName = explode(".",$laporanFile->nama_file);
$ext = end($arrName);
rename($tujuan_upload.$laporanFile->nama_file, $tujuan_upload.$req["nama_laporan"].".".$ext);
$data["nama_file"] = $req["nama_laporan"].".".$ext;
}
$laporanFile->update($data);
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success','Laporan berhasil diubah.');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error','Laporan gagal diubah!');
}
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$kode_rekening = isset($post["kode_rekening"])?$post["kode_rekening"]:"";
$ta = $post["ta"];
$src = isset($post["search"]["value"]) ? strtolower($post["search"]["value"]):"";
$data = LaporanFile::where("tahun",$ta);
if (getRole()=="skpd"){
$data->where("kode_skpd",Auth::user()->nrk);
}
if($kode_rekening){
$data->where("kode_rekening", $kode_rekening);
}
if (!empty($src))
{
$src = strtolower($src);
//$data->whereRaw("( LOWER(simtrad4_uraian) like '%".$src."%' OR LOWER(simtrad4_sp2d_bun) like '%".$src."%' OR LOWER(rkud_no_sts) like '%".$src."%')");
}
$dataFilter = $data->count();
$dataTotal = LaporanFile::where("tahun",$ta);
if (getRole()=="skpd"){
$dataTotal->where("kode_skpd",Auth::user()->nrk);
}
return response()->json([
"recordsTotal" => $dataTotal->count(),
"recordsFiltered" => $dataFilter,
"data"=> $data->orderBy("created_at","ASC")->skip($offset)->take($limit)->get()
]);
}
public function destroy(LaporanFile $laporanFile)
{
try{
DB::beginTransaction();
$alamatFile = config('constants.upload_path_laporan').$laporanFile->nama_file;
if (file_exists($alamatFile)){
unlink($alamatFile);
}
$laporanFile->delete();
DB::commit();
return redirect(URL::to("/laporan-file"))->with('success','Data Laporan berhasil dihapus!');
}catch(Throwable $e){
DB::rollBack();
return redirect(URL::to("/laporan-file"))->with('error','Data Laporan gagal dihapus.');
}
}
public function show(LaporanFile $laporanFile)
{
$this->setSubtitle("Detail Data");
return view('laporan_file.show',compact("laporanFile"));
}
public function download($kode)
{
$laporanFile = LaporanFile::where("id", $kode)->firstorNew();
$headers = [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment;filename='.$laporanFile->nama_file
];
if ($laporanFile){
return response()->download(config('constants.upload_path_laporan').$laporanFile->nama_file);
}else{
echo "File tidak ditemukan!";
}
}
}
@@ -268,14 +268,14 @@ class RealisasiBelanjaController extends Controller
$vwAKB = json_decode(json_encode($vwAKB[0]), true); $vwAKB = json_decode(json_encode($vwAKB[0]), true);
$BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("belanja_realisasi_id",$id)->get(); $BelanjaRealisasiKontrak = BelanjaRealisasiKontrak::where("belanja_realisasi_id",$id)->get();
/*$vwSPD = DB::select(DB::raw( $vwSPD = [];
"SELECT x.I_SPDNO_DOK, x.D_SPDNO, sum(z.V_SPP) AS JML if ($BelanjaRealisasi->jenis_dana == "DBH" && $BelanjaRealisasi->sub_jenis_dana != "CHT")
FROM NEWSIPKD.TMSPD x {
LEFT JOIN NEWSIPKD.TMSPPRINCIBLJ y ON x.I_ID = y.I_IDSPD $vwSPD = BelanjaRealisasi::getSPD($BelanjaRealisasi->kode_sub_kegiatan,$BelanjaRealisasi->id_skpd);
LEFT JOIN NEWSIPKD.TMSPPRINCIBLJRSK z ON y.I_IDSPP = z.I_IDSPP }else{
WHERE z.I_IDRSK=".$BelanjaRealisasi->kode_rsk."GROUP BY x.I_SPDNO_DOK, x.D_SPDNO ORDER BY x.D_SPDNO " $vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get();
)); */ }
$vwSPD = BelanjaRealisasiSPD::where("id_rsk", $BelanjaRealisasi->kode_rsk)->get();
$vwSP2D = DB::select(DB::raw('SELECT x.I_ID as IDSP2D, x.I_SP2DNO_DOK, $vwSP2D = DB::select(DB::raw('SELECT x.I_ID as IDSP2D, x.I_SP2DNO_DOK,
TO_CHAR(x.D_SP2D_SAH,\'DD-MM-YYYY\') AS D_SP2D_SAH, sum(y.V_SPP) as V_SPP TO_CHAR(x.D_SP2D_SAH,\'DD-MM-YYYY\') AS D_SP2D_SAH, sum(y.V_SPP) as V_SPP
FROM NEWSIPKD.TMSP2D x FROM NEWSIPKD.TMSP2D x
@@ -304,8 +304,10 @@ class RealisasiBelanjaController extends Controller
$idSPS = isset($post["id_sps"])?$post["id_sps"]:""; $idSPS = isset($post["id_sps"])?$post["id_sps"]:"";
$fReview = isset($post["f_review"])?$post["f_review"]:""; $fReview = isset($post["f_review"])?$post["f_review"]:"";
$sqlStr = "SELECT x.* FROM BELANJA_REALISASI x $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 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'"; WHERE x.tahun_anggaran='$ta'";
if (getRole()=="skpd"){ if (getRole()=="skpd"){
@@ -554,30 +556,9 @@ class RealisasiBelanjaController extends Controller
public function ubahSPD(Request $request, $id) public function ubahSPD(Request $request, $id)
{ {
$req = $request->all(); $req = $request->all();
/* $SPDs = DB::select(DB::raw(
"SELECT x.I_SPDNO_DOKx, x.D_SPDNO, sum(z.V_SPP) AS JML
FROM NEWSIPKD.TMSPD x
LEFT JOIN NEWSIPKD.TMSPPRINCIBLJ y ON x.I_ID = y.I_IDSPD
LEFT JOIN NEWSIPKD.TMSPPRINCIBLJRSK z ON y.I_IDSPP = z.I_IDSPP
WHERE z.I_IDRSK=".$id." GROUP BY x.I_SPDNO_DOK, x.D_SPDNO ORDER BY x.D_SPDNO "
)); */
$detailRSK = DB::select(DB::raw("SELECT * FROM SAMASA.VW_DPA_RSK WHERE I_ID = $id")); $detailRSK = DB::select(DB::raw("SELECT * FROM SAMASA.VW_DPA_RSK WHERE I_ID = $id"));
$detailRSK = json_decode(json_encode($detailRSK[0]),true); $detailRSK = json_decode(json_encode($detailRSK[0]),true);
$SPDs = DB::select(DB::raw( $SPDs = BelanjaRealisasi::getSPD($detailRSK["c_subgiat"],$detailRSK["i_idopd"]);
"SELECT a.I_SPDNO_DOK, a.D_SPDNO, b.JML
FROM NEWSIPKD.TMSPD a
INNER JOIN (
SELECT I_IDSPD, SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y
ON x.I_IDSUBGIAT = y.I_ID
WHERE y.C_SUBGIAT = '".$detailRSK["c_subgiat"]."'
AND y.I_IDOPD = '".$detailRSK["i_idopd"]."'
GROUP BY I_IDSPD
) b
ON a.I_ID = b.I_IDSPD
WHERE a.C_ANGG_TAHUN = ".getTA()
));
$redirect = URL::to($req["redirect"]); $redirect = URL::to($req["redirect"]);
@@ -592,13 +573,13 @@ class RealisasiBelanjaController extends Controller
$SPDs = (array) $SPDs; $SPDs = (array) $SPDs;
foreach($itemSPD as $rowSPD) foreach($itemSPD as $rowSPD)
{ {
$check = array_search($rowSPD, array_column($SPDs, "i_spdno_dok")); $check = array_search($rowSPD, array_column($SPDs, "no_spd"));
if ($check > -1) if ($check > -1)
{ {
$data["id_rsk"] = $id; $data["id_rsk"] = $id;
$data["no_spd"] = $SPDs[$check]->i_spdno_dok; $data["no_spd"] = $SPDs[$check]->no_spd;
$data["tgl"] = $SPDs[$check]->d_spdno; $data["tgl"] = $SPDs[$check]->tgl;
$data["jumlah"] = $SPDs[$check]->jml; $data["jumlah"] = $SPDs[$check]->jumlah;
BelanjaRealisasiSPD::create($data); BelanjaRealisasiSPD::create($data);
} }
+20
View File
@@ -5,6 +5,7 @@ use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent; use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
use Illuminate\Support\Facades\DB;
class BelanjaRealisasi extends Eloquent class BelanjaRealisasi extends Eloquent
{ {
@@ -43,4 +44,23 @@ class BelanjaRealisasi extends Eloquent
"id_sps", "id_sps",
"f_view_sbpk" "f_view_sbpk"
]; ];
public function getSPD($subgiat,$skpd)
{
return DB::select(DB::raw(
"SELECT a.I_SPDNO_DOK as NO_SPD, a.D_SPDNO as TGL, b.JML as jumlah
FROM NEWSIPKD.TMSPD a
INNER JOIN (
SELECT I_IDSPD, SUM(V_SPD) AS JML
FROM NEWSIPKD.TMSPDRINCIBLJ x
LEFT JOIN NEWSIPKD.TMDPASUBGIAT y
ON x.I_IDSUBGIAT = y.I_ID
WHERE y.C_SUBGIAT = '".$subgiat."'
AND y.I_IDOPD = '".$skpd."'
GROUP BY I_IDSPD
) b
ON a.I_ID = b.I_IDSPD
WHERE a.C_ANGG_TAHUN = ".getTA()." ORDER BY a.D_SPDNO"
));
}
} }
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Models;
use App\Traits\Uuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class LaporanFile extends Eloquent
{
use HasFactory;
use Uuids;
protected $connection = 'Samasa';
protected $table = 'SAMASA.laporan_file';
protected $fillable = [
"tahun",
"tgl_upload",
"kode_rekening",
"kode_skpd",
"nama_skpd",
"nama_laporan",
"nama_file",
];
}
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Yajra\Oci8\Eloquent\OracleEloquent as Eloquent;
class Trbas extends Eloquent
{
use HasFactory;
protected $connection = 'oracle';
protected $table = 'NEWSIPKD.TRBAS';
}
+1
View File
@@ -3,6 +3,7 @@
'upload_path' => "uploadFiles/", 'upload_path' => "uploadFiles/",
'upload_path_kontrak' => "uploadFiles/kontrak/", 'upload_path_kontrak' => "uploadFiles/kontrak/",
'upload_path_sts' => "uploadFiles/sts/", 'upload_path_sts' => "uploadFiles/sts/",
'upload_path_laporan' => "uploadFiles/laporan/",
'download_path' => "downloadFiles/", 'download_path' => "downloadFiles/",
'options' => [ 'options' => [
'option_attachment' => '13', 'option_attachment' => '13',
@@ -13,8 +13,15 @@ class CreateLaporanTable extends Migration
*/ */
public function up() public function up()
{ {
Schema::create('laporan', function (Blueprint $table) { Schema::create('laporan_file', function (Blueprint $table) {
$table->id(); $table->uuid('id')->primary();
$table->string("tahun",4);
$table->date("tgl_upload")->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->string("kode_rekening",50);
$table->string("kode_skpd",50);
$table->string("nama_skpd",255);
$table->string("nama_laporan",50);
$table->string("nama_file",50);
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -26,6 +33,6 @@ class CreateLaporanTable extends Migration
*/ */
public function down() public function down()
{ {
Schema::dropIfExists('laporan'); Schema::dropIfExists('laporan_file');
} }
} }
+27 -1
View File
@@ -232,7 +232,8 @@ $('.prog_search').select2({
}; };
}, },
cache: true cache: true
} },
dropdownParent: $('#modal-default')
}); });
$('.keg_search').select2({ $('.keg_search').select2({
@@ -382,6 +383,31 @@ $('.sps_search').select2({
} }
}); });
let callKodeRekening = ()=>{
$('.kode_rekening').select2({
placeholder: 'Pilih Kode Rekening',
allowClear: true,
ajax: {
url: Url+'/item-search-rekening?ta='+ta,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.idx
}
})
};
},
cache: true,
}
});
}
callKodeRekening();
$(document).on("click",".modalButton",function (e){ $(document).on("click",".modalButton",function (e){
$("#overlayLoader").removeClass("d-flex"); $("#overlayLoader").removeClass("d-flex");
$("#overlayLoader").addClass("d-flex"); $("#overlayLoader").addClass("d-flex");
@@ -0,0 +1,6 @@
<form id="frmCreateLaporanFile" action="{{ URL::to("/laporan-file") }}" method="POST" autocomplete="off" enctype="multipart/form-data">
@csrf
@include('laporan_file.form')
</form>
<script type="text/javascript">
</script>
@@ -0,0 +1,9 @@
<form id="frmEditLaporanFile" action="{{ URL::to("/laporan-file/$laporanFile->id") }}" method="POST" autocomplete="off" enctype="multipart/form-data">
@csrf
@method("PUT")
@include('laporan_file.form')
</form>
<script type="text/javascript">
$("input[name=file]").prop("required", false);
$("#opt_kode_rekening").val("{{ $laporanFile->kode_rekening }}");
</script>
@@ -0,0 +1,32 @@
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<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-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label>Nama Laporan</label>
<input type="text" id="nama_laporan" required class="form-control form-control-sm" name="nama_laporan" value="{{ isset($laporanFile)?$laporanFile->nama_laporan:"" }}" placeholder="Nama Laporan">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label>Kode Rekening</label>
<select id="opt_kode_rekening" name="opt_kode_rekening" class="form-control kode_rekening" required></select>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label>File Laporan (*.pdf)</label>
<input class="form-control form-control-sm" type="file" name="file" required>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<button type="submit" class="btn btn-sm btn-success"><i class="fa fa-paper-plane"></i> Simpan</button>
</div>
</div>
<script type="text/javascript">
callKodeRekening();
</script>
@@ -0,0 +1,188 @@
@php
$siteBreadcumb = [
["url"=>"/laporan-file","label"=>$siteTitle],
];
@endphp
@extends('layouts.app')
@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('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('Create DBH Realisasi Pendapatan'))
<a class="modalButton btn btn-sm" title="Tambah Data" href="{{ route('laporan-file.create') }}"><i class="fa fa-edit"></i> Tambah Data</a>
@endif
</div>
</div>
@stop
@section('content')
<form id="frmLaporanFile" method="post" action="{{ $baseUrl }}/laporan-file/download">
@csrf
<div class="row">
<div class="col-1">
<div class="form-group">
<label>Periode</label>
<input class="form-control form-control-sm" id="srcTA" name="ta" value="{{ getTA() }}" readonly>
</div>
</div>
<div class="col-11">
<div class="form-group">
<label for="txt_simtrad4_kotor">Kode Rekening</label>
<select id="kode_rekening" class="form-control kode_rekening" required></select>
</div>
</div>
</div>
</form>
<table id="dtTableLaporan" class="table table-striped jambo_table tblClickRow" style="width:100%">
<thead>
<tr class="headings">
<th>No</th>
<th>Tgl Upload</th>
<th>Nama Laporan</th>
<th>Kode Rekening</th>
<th>Kode SKPD</th>
<th>Nama SKPD</th>
<th>Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
@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 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(){
dtTable.draw();
});
$('#kode_rekening').on('select2:select', function (e) {
dtTable.draw();
})
$('#kode_rekening').on('select2:clear', function (e) {
dtTable.draw();
})
var dtTable = $('#dtTableLaporan').DataTable( {
"processing": true,
"serverSide": true,
"ordering": false,
"autoWidth": false,
"ajax": {
url: "{{ $baseUrl }}/laporan-file/datatable",
type: "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: function (d) {
d.ta = $("#srcTA").val(),
d.kode_rekening = $("#kode_rekening").val()
}
},
"columnDefs": [
//{ className: "td-nowrap", "targets": [ 1 ] }
],
"dom": "<\"top\" <\"row\"<\"col-md-6\"l><\"col-md-6 text-right\"f>>>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": "tgl_upload" },
{ "data": "nama_laporan", "className":"text-right" },
{ "data": "kode_rekening", "className":"text-right" },
{ "data": "kode_skpd", "className":"text-right", "defaultContent":"0" },
{ "data": "nama_skpd", "className":"text-left", "defaultContent":"-" },
{ "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 btnEdit = "<a class='modalButton btn btn-warning btn-sm ml-1' href='{{ $baseUrl }}/laporan-file/" + aData["id"] + "/edit' title='Ubah Data'><i class='fa fa-edit'></i></a>";
let btnDelete = "<button type='submit' class='btn btn-danger btn-sm ml-1' title='Hapus'><i class='fa fa-trash'></i></button>";
$("td:eq(0)", nRow).html(index);
$("td:eq(6)", nRow).html(
"<form class='form-delete' action='{{ $baseUrl }}/laporan-file/"+aData['id']+"' method='POST'>"+
"<input type='hidden' name='_token' id='csrf-token' value='{{ Session::token() }}' /><input type='hidden' name='_method' value='DELETE'><a href='{{ $baseUrl }}/laporan-file/" + aData["id"] + "/download' class='btn btn-sm btn-success'><i class='fa fa-download'></i></a>"+
btnEdit + btnDelete + "</form>");
return nRow;
},
"language": {
"lengthMenu": "Display _MENU_ records per page",
"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>",
},
scrollX:true,
buttons: [
{
extend: "collection",
text: "Export",
buttons: [
{
text: "<i class=\'fas fa-file-excel\'></i> Excel",
className: "export-data link-excel",
attr: {
formid: "frmLaporanFile",
extype: "excel"
}
},
// {
// text: "<i class=\'fas fa-file-pdf\'></i> Pdf",
// className: "export-data link-pdf",
// attr: {
// formid: "frm_proses_spm_sp2d",
// extype: "pdf"
// }
// }
],
}
],
});
});
</script>
@endsection
+6
View File
@@ -90,6 +90,12 @@
</a> </a>
</li> </li>
<?php } ?> <?php } ?>
<li class="nav-item">
<a href="{{ $baseUrl }}/laporan-file" class="nav-link">
<i class="fas fa-file nav-icon"></i>
<p>Laporan</p>
</a>
</li>
@if ($role == "admin" || $role == "superadmin") @if ($role == "admin" || $role == "superadmin")
<li class="nav-header">MASTER DATA</li> <li class="nav-header">MASTER DATA</li>
<li class="nav-item"><a href="{{ $baseUrl }}/admin/users" class="nav-link"><i class="nav-icon fas fa-th-large nav-icon"></i><p>Pengguna</p></a></li> <li class="nav-item"><a href="{{ $baseUrl }}/admin/users" class="nav-link"><i class="nav-icon fas fa-th-large nav-icon"></i><p>Pengguna</p></a></li>
@@ -15,10 +15,10 @@
<?php <?php
foreach($SPDs as $spd){ ?> foreach($SPDs as $spd){ ?>
<tr> <tr>
<td><input type="checkbox" name="spd[]" value="{{ $spd->i_spdno_dok }}" {{ array_search($spd->i_spdno_dok, array_column($selected, "no_spd")) > -1?"checked":"" }}></td> <td><input type="checkbox" name="spd[]" value="{{ $spd->no_spd }}" {{ array_search($spd->no_spd, array_column($selected, "no_spd")) > -1?"checked":"" }}></td>
<td>{{ $spd->i_spdno_dok }}</td> <td>{{ $spd->no_spd }}</td>
<td class="text-center">{{ date("d-m-Y",strtotime($spd->d_spdno)) }}</td> <td class="text-center">{{ date("d-m-Y",strtotime($spd->tgl)) }}</td>
<td class="text-right">{{ separateNumberIndo($spd->jml) }}</td> <td class="text-right">{{ separateNumberIndo($spd->jumlah) }}</td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
@@ -119,6 +119,7 @@
"Volume Realisasi", "Volume Realisasi",
"Unit Realisasi", "Unit Realisasi",
"SPD", "SPD",
"Jenis",
"Aksi" "Aksi"
); );
@@ -272,6 +273,7 @@
{ "data": "volume_satuan_realisasi", "className":"text-center", "defaultContent":"0", "width":50 }, { "data": "volume_satuan_realisasi", "className":"text-center", "defaultContent":"0", "width":50 },
{ "data": "unit_satuan_realisasi", "className":"text-center", "defaultContent":"-", "width":50 }, { "data": "unit_satuan_realisasi", "className":"text-center", "defaultContent":"-", "width":50 },
{ "data": null}, { "data": null},
{ "data": "jenis_dana", "className":"text-center"},
{ "data": null} { "data": null}
], ],
"rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) { "rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) {
@@ -293,8 +295,9 @@
$("td:eq(6)", nRow).html(separateNumberIndo(aData["volume_satuan"])); $("td:eq(6)", nRow).html(separateNumberIndo(aData["volume_satuan"]));
$("td:eq(8)", nRow).html(realisasi); $("td:eq(8)", nRow).html(realisasi);
$("td:eq(9)", nRow).html(separateNumberIndo(aData["volume_satuan_realisasi"])); $("td:eq(9)", nRow).html(separateNumberIndo(aData["volume_satuan_realisasi"]));
$("td:eq(11)", nRow).html(<?= getRole()=="bendahara"?'"<a class=\"modalButton\" title=\"Pilih SPD\" href=\"'.URL::to("/").'/realisasi-belanja/"+aData["kode_rsk"]+"/ubah-spd/?redirect=/realisasi-belanja\">"+aData["jml_spd"]+"</a>"':'aData["jml_spd"]' ?>); $("td:eq(11)", nRow).html(<?= getRole()=="bendahara"?'"<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(12)", nRow).html(` $("td:eq(12)", nRow).html(aData["jenis_dana"]+"::"+aData["nama_subjenis_dana"]);
$("td:eq(13)", nRow).html(`
<form class="form-delete" action="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`" method="POST"> <form class="form-delete" action="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`" method="POST">
@csrf @csrf
@method('DELETE') @method('DELETE')
+9
View File
@@ -9,6 +9,7 @@ use App\Http\Controllers\JadwalSalurdanaController;
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;
use App\Http\Controllers\LaporanFileController;
use App\Http\Controllers\Admin\MstPenggunaController; use App\Http\Controllers\Admin\MstPenggunaController;
use App\Http\Controllers\Admin\MappingDbhSkpdController; use App\Http\Controllers\Admin\MappingDbhSkpdController;
use App\Http\Controllers\Admin\RolessController; use App\Http\Controllers\Admin\RolessController;
@@ -123,6 +124,7 @@ Route::group(['middleware' => 'auth'], function () {
Route::get('item-search-jenisbelanja', [ItemSearchController::class,'jenisBelanja']); Route::get('item-search-jenisbelanja', [ItemSearchController::class,'jenisBelanja']);
Route::get('item-search-subjenisbelanja', [ItemSearchController::class,'subjenisBelanja']); Route::get('item-search-subjenisbelanja', [ItemSearchController::class,'subjenisBelanja']);
Route::get('item-search-subjenisdana', [ItemSearchController::class,'subjenisDana']); Route::get('item-search-subjenisdana', [ItemSearchController::class,'subjenisDana']);
Route::get('item-search-rekening', [ItemSearchController::class,'rek_dana']);
Route::post('role-list', [MstPenggunaController::class,'roleList']); Route::post('role-list', [MstPenggunaController::class,'roleList']);
Route::get('logout', [AuthController::class, 'logout'])->name('logout'); Route::get('logout', [AuthController::class, 'logout'])->name('logout');
@@ -132,4 +134,11 @@ Route::group(['middleware' => 'auth'], function () {
}); });
Route::resource('notif', NotifikasiController::class); Route::resource('notif', NotifikasiController::class);
Route::get('tahun-anggaran/{ta}', [HomeController::class, 'ta']); Route::get('tahun-anggaran/{ta}', [HomeController::class, 'ta']);
// PENDAPATAN ==================================================
Route::group(['prefix' => 'laporan-file'], function () {
Route::post('/datatable', [LaporanFileController::class,'datatable']);
Route::get('/{kode}/download', [LaporanFileController::class,'download']);
});
Route::resource('laporan-file', LaporanFileController::class);
}); });