Update upload data dak

This commit is contained in:
Pusdatin BPKD Jkt
2022-08-29 13:53:59 +07:00
parent 779f446924
commit 34f95b22ef
8 changed files with 313 additions and 41 deletions
@@ -16,6 +16,7 @@ use App\Models\VwAkbSpdRealRsk;
use App\Models\UnitSatuan; use App\Models\UnitSatuan;
use App\Models\Sp2d; use App\Models\Sp2d;
use App\Imports\RealisasiBelanjaImport; use App\Imports\RealisasiBelanjaImport;
use App\Imports\RealisasiBelanjaImportDak;
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\URL;
@@ -98,10 +99,10 @@ class RealisasiBelanjaController extends Controller
$limit = $post["length"]; $limit = $post["length"];
//$src = $post["src"]; //$src = $post["src"];
$ta = $post["ta"]; $ta = $post["ta"];
$JenisDana = $post["jenis_dana"]; $JenisDana = isset($post["jenis_dana"])?$post["jenis_dana"]:"";
$SubJenisDana = $post["sub_jenis_dana"]; $SubJenisDana = isset($post["sub_jenis_dana"])?$post["sub_jenis_dana"]:"";
$skpd = $post["skpd"]; $skpd = isset($post["skpd"])?$post["skpd"]:"";
$subkeg = $post["subkeg"]; $subkeg = isset($post["subkeg"])?$post["subkeg"]:"";
$sqlStr = "SELECT x.* $sqlStr = "SELECT x.*
FROM BELANJA_REALISASI x FROM BELANJA_REALISASI x
@@ -192,7 +193,14 @@ class RealisasiBelanjaController extends Controller
DB::beginTransaction(); DB::beginTransaction();
TempRealisasiBelanja::where("userid",Auth::user()->id)->delete(); TempRealisasiBelanja::where("userid",Auth::user()->id)->delete();
Excel::import(new RealisasiBelanjaImport($ta, strtoupper($typeDana),$subJenisDana), $tujuan_upload."/".$file->getClientOriginalName()); if ($typeDana == "dbh")
{
Excel::import(new RealisasiBelanjaImport($ta, strtoupper($typeDana),$subJenisDana), $tujuan_upload."/".$file->getClientOriginalName());
}
else
{
Excel::import(new RealisasiBelanjaImportDak($ta, strtoupper($typeDana),$subJenisDana), $tujuan_upload."/".$file->getClientOriginalName());
}
DB::commit(); DB::commit();
return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('success','Data Rencana belanja berhasil diupload, Silahkan validasi data!'); return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('success','Data Rencana belanja berhasil diupload, Silahkan validasi data!');
@@ -206,7 +214,8 @@ class RealisasiBelanjaController extends Controller
} }
} }
$this->siteTitle = "Rencana Belanja"; $this->siteTitle = "Rencana Belanja";
return view('realisasi_belanja.upload',compact("typeDana")); $view = $typeDana == "dbh"?"upload":"upload_dak";
return view('realisasi_belanja.'.$view);
} }
public function uploadDatatable(Request $request) public function uploadDatatable(Request $request)
@@ -217,7 +226,7 @@ class RealisasiBelanjaController extends Controller
$src = isset($post["search"])?$post["search"]["value"]:""; $src = isset($post["search"])?$post["search"]["value"]:"";
$dataFilter=0; $dataFilter=0;
$data = TempRealisasiBelanja::orderBy("id","ASC"); $data = TempRealisasiBelanja::where("userid",Auth::user()->id)->orderBy("id","ASC");
if (!empty($src)){ if (!empty($src)){
$data->whereRaw("(LOWER(jenis_belanja) LIKE '%".strtolower($src)."%' $data->whereRaw("(LOWER(jenis_belanja) LIKE '%".strtolower($src)."%'
OR LOWER(sub_jenis_belanja) LIKE '%".strtolower($src)."%' OR LOWER(sub_jenis_belanja) LIKE '%".strtolower($src)."%'
@@ -230,7 +239,7 @@ class RealisasiBelanjaController extends Controller
)"); )");
} }
$dataFilter = $data->count(); $dataFilter = $data->count();
$dataTotal = TempRealisasiBelanja::count(); $dataTotal = TempRealisasiBelanja::where("userid",Auth::user()->id)->count();
return response()->json([ return response()->json([
"recordsTotal" => $dataTotal, "recordsTotal" => $dataTotal,
@@ -243,7 +252,7 @@ class RealisasiBelanjaController extends Controller
{ {
try{ try{
DB::beginTransaction(); DB::beginTransaction();
$datas = TempRealisasiBelanja::orderBy("id","ASC")->get(); $datas = TempRealisasiBelanja::where("userid",Auth::user()->id)->orderBy("id","ASC")->get();
for($i=0;$i<$datas->count();$i++){ for($i=0;$i<$datas->count();$i++){
$cekData = BelanjaRealisasi::where([ $cekData = BelanjaRealisasi::where([
"kode_rsk"=>$datas[$i]["kode_rsk"], "kode_rsk"=>$datas[$i]["kode_rsk"],
-4
View File
@@ -48,10 +48,6 @@ class RealisasiBelanjaImport implements ToModel, WithStartRow
"userid"=>Auth::user()->id "userid"=>Auth::user()->id
]; ];
if ($this->subjenisDana == "Fisik"){
$data["jml_rencana_kontrak"] = $row[15];
}
return new TempRealisasiBelanja($data); return new TempRealisasiBelanja($data);
} }
} }
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace App\Imports;
use App\Models\TempRealisasiBelanja;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Illuminate\Support\Facades\Auth;
class RealisasiBelanjaImportDak implements ToModel, WithStartRow
{
use Importable;
protected $ta;
protected $jenisDana;
protected $subjenisDana;
public function __construct($ta, $jenisDana, $subjenisDana){
$this->ta = $ta;
$this->jenisDana = $jenisDana;
$this->subjenisDana = $subjenisDana;
}
public function startRow(): int
{
return 2;
}
public function model(array $row)
{
$data = [
"tahun_anggaran"=>$this->ta,
"jenis_belanja"=>$row[0],
"sub_jenis_belanja"=>$row[1],
"kode_program"=>$row[2],
"nama_program"=>$row[3],
"kode_skpd"=>Auth::user()->nrk,
"nama_skpd"=>Auth::user()->name,
"kode_kegiatan"=>$row[4],
"nama_kegiatan"=>$row[5],
"kode_sub_kegiatan"=>$row[6],
"nama_sub_kegiatan"=>$row[7],
"kode_rsk"=>$row[8],
"nama_rsk"=>$row[9],
"jumlah_anggaran"=>$row[10],
"volume_satuan"=>$row[11],
"unit_satuan"=>$row[12],
"jenis_dana"=>$this->jenisDana,
"sub_jenis_dana"=>$this->subjenisDana,
"userid"=>Auth::user()->id
];
if ($this->subjenisDana == "Fisik"){
$data["jml_rencana_kontrak"] = $row[13];
}
return new TempRealisasiBelanja($data);
}
}
@@ -15,7 +15,7 @@ class CreateMstJenisbelanjaTable extends Migration
{ {
Schema::create('mst_jenis_belanja', function (Blueprint $table) { Schema::create('mst_jenis_belanja', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('name', 300);
$table->string('description'); $table->string('description');
$table->timestamps(); $table->timestamps();
}); });
@@ -16,7 +16,7 @@ class CreateMstSubJenisBelanjaTable extends Migration
Schema::create('mst_sub_jenis_belanja', function (Blueprint $table) { Schema::create('mst_sub_jenis_belanja', function (Blueprint $table) {
$table->id(); $table->id();
$table->integer('id_jenis_belanja'); $table->integer('id_jenis_belanja');
$table->string('name'); $table->string('name',300);
$table->string('description'); $table->string('description');
$table->timestamps(); $table->timestamps();
}); });
@@ -59,12 +59,14 @@
</select> </select>
</div> </div>
</div> </div>
<div class="col-3"> <?php if (getRole()!="skpd"){ ?>
<div class="form-group"> <div class="col-3">
<label>SKPD</label> <div class="form-group">
<select class="form-control" id="skpd" name="skpd"></select> <label>SKPD</label>
<select class="form-control" id="skpd" name="skpd"></select>
</div>
</div> </div>
</div> <?php } ?>
<div class="col-3"> <div class="col-3">
<div class="form-group"> <div class="form-group">
<label>Sub Kegiatan</label> <label>Sub Kegiatan</label>
@@ -97,6 +99,7 @@
"Unit Realisasi", "Unit Realisasi",
"Aksi" "Aksi"
); );
foreach($arrCol as $rowCol){ foreach($arrCol as $rowCol){
echo "<th>$rowCol</th>"; echo "<th>$rowCol</th>";
} }
@@ -301,14 +304,6 @@
extype: "excel" extype: "excel"
} }
}, },
// {
// text: "<i class=\'fas fa-file-pdf\'></i> Pdf",
// className: "export-data link-pdf",
// attr: {
// formid: "frm_proses_spm_sp2d",
// extype: "pdf"
// }
// }
], ],
} }
], ],
@@ -4,13 +4,7 @@
["url"=>"/realisasi-belanja/create","label"=>$sitesubTitle] ["url"=>"/realisasi-belanja/create","label"=>$sitesubTitle]
]; ];
$jenisDana = []; $jenisDana = ["All","CHT"];
if ($typeDana == "dbh"){
$jenisDana = ["All","CHT"];
}else if($typeDana == "dak"){
$jenisDana = ["Fisik","Non-Fisik"];
}
@endphp @endphp
@extends('layouts.empty') @extends('layouts.empty')
@@ -29,7 +23,7 @@
<div class="card-tools"></div> <div class="card-tools"></div>
</div> </div>
<div class="card-body"> <div class="card-body">
<form id="uploadData" action="/upload-realisasi-belanja/{{ $typeDana }}" method="POST" autocomplete="off" enctype="multipart/form-data"> <form id="uploadData" action="/upload-realisasi-belanja/dak" method="POST" autocomplete="off" enctype="multipart/form-data">
@csrf @csrf
<div class="form-group"> <div class="form-group">
<label>Periode</label> <label>Periode</label>
@@ -73,8 +67,7 @@
"nama_rsk", "nama_rsk",
"jumlah_anggaran", "jumlah_anggaran",
"volume_satuan", "volume_satuan",
"unit_satuan", "unit_satuan"
"jml_rencana_kontrak"
</p> </p>
</form> </form>
</div> </div>
@@ -136,7 +129,7 @@
$(document).on("click","#upload_validated",function (e){ $(document).on("click","#upload_validated",function (e){
e.preventDefault(); e.preventDefault();
let test = Swal.fire({ let test = Swal.fire({
title: 'Data Rencana Belanja {{ strtoupper($typeDana) }} akan diUpload?', title: 'Data Rencana Belanja DAK akan diUpload?',
showDenyButton: true, showDenyButton: true,
showCancelButton: false, showCancelButton: false,
confirmButtonText: 'Ya', confirmButtonText: 'Ya',
@@ -145,7 +138,7 @@
}).then((result) => { }).then((result) => {
/* Read more about isConfirmed, isDenied below */ /* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) { if (result.isConfirmed) {
location.href='{{ url('/upload-realisasi-belanja/'.$typeDana.'/upload') }}'; location.href='{{ url('/upload-realisasi-belanja/dak/upload') }}';
} }
}) })
}); });
@@ -156,7 +149,7 @@
"ordering": false, "ordering": false,
"autoWidth": false, "autoWidth": false,
"ajax": { "ajax": {
url: "{{ $baseUrl }}/upload-realisasi-belanja/{{ $typeDana }}/datatable", url: "{{ $baseUrl }}/upload-realisasi-belanja/dak/datatable",
type: "POST", type: "POST",
headers: { headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
@@ -0,0 +1,222 @@
@php
$siteBreadcumb = [
["url"=>"/realisasi-belanja","label"=>$siteTitle],
["url"=>"/realisasi-belanja/create","label"=>$sitesubTitle]
];
$jenisDana = ["Fisik","Non-Fisik"];
@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">
<div class="card-header">
<h2 class="card-title"><i class="fa fa-th-list mr-2"></i> {{ $sitesubTitle }}</h2>
<div class="card-tools"></div>
</div>
<div class="card-body">
<form id="uploadData" action="/upload-realisasi-belanja/dak" method="POST" autocomplete="off" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label>Periode</label>
<select class="form-control form-control-sm" id="srcTA" name="ta">
@php
$listTA = Session::get('listTA');
foreach($listTA as $rowTA){
echo "<option>$rowTA</option>";
}
@endphp
</select>
</div>
<div class="form-group">
<label>Jenis Dana</label>
<select class="form-control" required name="optJenisDana">
@php
foreach($jenisDana as $dana){
echo "<option value='$dana'>$dana</option>";
}
@endphp
</select>
</div>
<div class="form-group">
<label>File</label>
<input class="form-control" type="file" name="file" required>
</div>
<div class="form-group"><button type="submit" class="btn btn-sm btn-success"><i class="fas fa-file-excel"></i> Upload File</button></div>
<p>
<strong>Format:xlsx | Columns:</strong>
"kode_jenis_belanja",
"kode_sub_jenis_belanja",
"kode_program",
"nama_program",
"kode_kegiatan",
"nama_kegiatan",
"kode_sub_kegiatan",
"nama_sub_kegiatan",
"kode_rsk",
"nama_rsk",
"jumlah_anggaran",
"volume_satuan",
"unit_satuan",
"jml_rencana_kontrak"
</p>
</form>
</div>
</div>
<div class="card">
<div class="card-header">
<h2 class="card-title"><i class="fa fa-check mr-2"></i> Validasi Data Rencana Belanja</h2>
<div class="card-tools">
{{-- @if(auth()->user()->can('Tambah SKPP')) --}}
<button id="upload_validated" class="btn btn-tool btn-warning"><i class="fa fa-save"></i> Upload Data</button>
{{-- @endif --}}
</div>
</div>
<div class="card-body">
<table id="tempUploadRealisasi" class="table table-striped jambo_table tblClickRow" style="width:100%">
<thead>
<tr class="headings">
<th>No</th>
<?php
$arrCol = array("Tahun", "Jenis", "Sub Jenis", "Kode Program",
"Nama Program", "Kode SKPD", "Nama SKPD", "Kode Kegiatan", "Nama Kegiatan", "Kode Sub Kegiatan",
"Nama Sub Kegiatan", "Kode RSK", "Nama RSK",
//"Kode Rek", "Nama Rek",
"Anggaran", "Volume", "Unit","Jml Rencana Kontrak","Jenis Dana","Sub Jenis Dana");
foreach($arrCol as $rowCol){
echo "<th>$rowCol</th>";
}
?>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
@endsection
@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 type="text/javascript">
$(document).ready(function(){
$("#uploadData").on("submit",function(e){
e.preventDefault();
$("body").append("<div class='loading'></div>");
return e.currentTarget.submit();
});
$(document).on("click","#upload_validated",function (e){
e.preventDefault();
let test = Swal.fire({
title: 'Data Rencana Belanja DAK akan diUpload?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href='{{ url('/upload-realisasi-belanja/dak/upload') }}';
}
})
});
var dtTable = $('#tempUploadRealisasi').DataTable( {
"processing": true,
"serverSide": true,
"ordering": false,
"autoWidth": false,
"ajax": {
url: "{{ $baseUrl }}/upload-realisasi-belanja/dak/datatable",
type: "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: function (d) {
}
},
"columnDefs": [
//{ className: "td-nowrap", "targets": [ 1 ] }
],
"lengthMenu": [
[ 10, 25, 50 ],
[ "10", "25", "50" ]
],
"paging": true, // Table pagination
"columns": [
{ "data": null},
{ "data": "tahun_anggaran", "width": "400px" },
{ "data": "jenis_belanja", "className":"text-left","defaultContent":"-" },
{ "data": "sub_jenis_belanja", "className":"text-left", "defaultContent":"-" },
{ "data": "kode_program", "className":"text-center", "defaultContent":"-" },
{ "data": "nama_program", "className":"text-left", "defaultContent":"-" },
{ "data": "kode_skpd", "className":"text-center", "defaultContent":"-" },
{ "data": "nama_skpd", "className":"text-left", "defaultContent":"-" },
{ "data": "kode_kegiatan", "className":"text-center", "defaultContent":"-" },
{ "data": "nama_kegiatan", "className":"text-left", "defaultContent":"-" },
{ "data": "kode_sub_kegiatan", "className":"text-center", "defaultContent":"-" },
{ "data": "nama_sub_kegiatan", "className":"text-left", "defaultContent":"-" },
{ "data": "kode_rsk", "className":"text-center", "defaultContent":"-" },
{ "data": "nama_rsk", "className":"text-left", "defaultContent":"-", "width":300 },
{ "data": "jumlah_anggaran", "className":"text-right", "defaultContent":"0" },
{ "data": "volume_satuan", "className":"text-center", "defaultContent":"0" },
{ "data": "unit_satuan", "className":"text-center", "defaultContent":"-" },
{ "data": "jml_rencana_kontrak", "className":"text-center", "defaultContent":"-" },
{ "data": "jenis_dana", "className":"text-center", "defaultContent":"-" },
{ "data": "sub_jenis_dana", "className":"text-center", "defaultContent":"-" },
],
"rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) {
let info = dtTable.page.info();
let numStart = info.page;
let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1;
$("td:eq(0)", nRow).html(index);
$("td:eq(14)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
return nRow;
},
"drawCallback": function( settings ) {
if (dtTable.page.info().recordsTotal == 0){
$("#upload_validated").prop("disabled", true)
}
},
"language": {
"lengthMenu": "Tampil _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>",
},
scrollX:true,
});
});
</script>
@endsection