Update, maintenance dan bugs fix

This commit is contained in:
Pusdatin BPKD Jkt
2022-08-11 16:15:36 +07:00
parent 872674ad93
commit 23300ce262
16 changed files with 237 additions and 78 deletions
@@ -8,6 +8,7 @@ use App\Models\Roless;
use App\Models\RoleUser;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class MstPenggunaController extends Controller
{
@@ -18,7 +19,8 @@ class MstPenggunaController extends Controller
public function index()
{
$data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
$data = null;
// $data = User::where('role_name', "<>", "superadmin")->latest()->paginate(10);
return view('admin.mst_pengguna.index',compact('data'))
->with('i', (request()->input('page', 1) - 1) * 10);
}
@@ -122,4 +124,37 @@ class MstPenggunaController extends Controller
}
}
public function datatable(Request $request)
{
$post = $request->all();
$offset = $post["start"];
$limit = $post["length"];
$src = isset($post["src"]) ? $post["src"]:"";
$sqlstr = User::where('role_name', "<>", "superadmin");
$dataTotal = $sqlstr->count();
$data = $sqlstr->orderBy("role_name");
if (!empty($src)){
$data->where("name","like","%$src%");
$data->orWhere("role_name","like","%$src%");
}
$dataFilter = $data->count();
return response()->json([
"recordsTotal" => $dataTotal,
"recordsFiltered" => $dataFilter,
"data"=> $data->skip($offset)->take($limit)->get()
]);
}
public function lockUploadData(Request $req)
{
$user = User::query()->update([
"is_lock_upload"=>1,
"lock_upload_time"=>date("Y-m-d H:i"),
"lock_upload_by"=>Auth::user()->id
]);
return redirect()->route('users.index')
->with('success','User berhasil dibuat.');
}
}
@@ -109,7 +109,7 @@ class JadwalSalurdanaController extends Controller
$ta = $post["ta"];
$typeDanaFilter = $typeDana == "cht" ? " AND x.jenis_dana = 'DBH' AND x.sub_jenis_dana = 'CHT' ": " AND x.jenis_dana = 'DAK'";
$dataFilter=0;
$sqlstr = 'SELECT x.kode_rsk, x.nama_rsk, x.jumlah_anggaran, y.*
$sqlstr = 'SELECT x.kode_skpd, x.nama_skpd, x.kode_rsk, x.nama_rsk, x.jumlah_anggaran, y.*
FROM SAMASA.BELANJA_REALISASI x
LEFT JOIN
(
@@ -164,30 +164,31 @@ class JadwalSalurdanaController extends Controller
(
SELECT
RSK_BELANJARINCI_ID,
BULAN1 AS V_AKB_01,
BULAN2 AS V_AKB_02,
BULAN3 AS V_AKB_03,
BULAN4 AS V_AKB_04,
BULAN5 AS V_AKB_05,
BULAN6 AS V_AKB_06,
BULAN7 AS V_AKB_07,
BULAN8 AS V_AKB_08,
BULAN9 AS V_AKB_09,
BULAN10 AS V_AKB_10,
BULAN11 AS V_AKB_11,
BULAN12 AS V_AKB_12
sum(BULAN1) AS V_AKB_01,
sum(BULAN2) AS V_AKB_02,
sum(BULAN3) AS V_AKB_03,
sum(BULAN4) AS V_AKB_04,
sum(BULAN5) AS V_AKB_05,
sum(BULAN6) AS V_AKB_06,
sum(BULAN7) AS V_AKB_07,
sum(BULAN8) AS V_AKB_08,
sum(BULAN9) AS V_AKB_09,
sum(BULAN10) AS V_AKB_10,
sum(BULAN11) AS V_AKB_11,
sum(BULAN12) AS V_AKB_12
FROM BAPEDA_BUDGETING.P_SPB_BELANJARINCIAKB@EBUDGETING
WHERE TAHUN = \''.$ta.'\'
GROUP BY RSK_BELANJARINCI_ID
) yy
ON xx.IDRSK = yy.RSK_BELANJARINCI_ID
) y
ON x.KODE_RSK = y.IDRSK
WHERE x.TAHUN_ANGGARAN = \''.$ta.'\''.$typeDanaFilter;
// if (getRole()=="skpd"){
// $sqlstr.=" AND KODE_SKPD='".Auth::user()->nrk."'";
// }
$data = DB::connection('oracle')->select(DB::raw($sqlstr.' ORDER BY x.id OFFSET '.$offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY'));
if (getRole()=="skpd"){
$sqlstr.=" AND KODE_SKPD='".Auth::user()->nrk."'";
}
$data = DB::connection('oracle')->select(DB::raw($sqlstr.' ORDER BY x.kode_skpd,x.kode_rsk OFFSET '.$offset.' ROWS FETCH NEXT '.$limit.' ROWS ONLY'));
$dataTotal = count(DB::connection('oracle')->select(DB::raw($sqlstr)));
// if (!empty($src)){
//$data->whereRaw("(LOWER(NAMA_REKENING) LIKE '%".strtolower($src)."%' OR LOWER(KODE_REKENING) LIKE '%".strtolower($src)."%')");
@@ -231,10 +231,10 @@ class RealisasiBelanjaController extends Controller
// "kode_rekening"=>$datas[$i]["kode_rekening"]
])->firstOrNew();
if (!$cekData==null){
/* if (!$cekData==null){
$cekData->delete();
// BelanjaRealisasi::where(["kode_rsk"=>$datas[$i]["kode_rsk"],"kode_rekening"=>$datas[$i]["kode_rekening"]])->delete();
}
} */
$input = [
"tahun_anggaran"=>$datas[$i]["tahun_anggaran"],
"jenis_belanja"=>$datas[$i]["jenis_belanja"],
@@ -256,8 +256,13 @@ class RealisasiBelanjaController extends Controller
"sub_jenis_dana"=>$datas[$i]["sub_jenis_dana"],
"created_by"=>$datas[$i]["userid"]
];
if (!$cekData==null){
$cekData->update($input);
}else{
BelanjaRealisasi::create($input);
}
}
TempRealisasiBelanja::where("userid",Auth::user()->id)->delete();
DB::commit();
return redirect(URL::to("/upload-realisasi-belanja/".$typeDana))->with('success','Data Realisasi belanja berhasil diupload.');
@@ -373,6 +378,7 @@ class RealisasiBelanjaController extends Controller
$data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]);
$data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]);
$data["file_kontrak"] = $fileName;
$data["nomor_bast"] = $req["nomor_bast"];
$data["created_by"] = Auth::user()->id;
BelanjaRealisasiKontrak::create($data);
@@ -402,6 +408,7 @@ class RealisasiBelanjaController extends Controller
$data["nomor_kontrak"] = $req["nomor_kontrak"];
$data["tgl_kontrak"] = ConvertIndoDate($req["tgl_kontrak"]);
$data["nominal_kontrak"] = replaceMoney($req["nominal_kontrak"]);
$data["nomor_bast"] = $req["nomor_bast"];
$fileName = $this->uploadFileKontrak($request);
if ($fileName){
$data["file_kontrak"] = $fileName;
+1
View File
@@ -17,6 +17,7 @@ class BelanjaRealisasiKontrak extends Eloquent
"tgl_kontrak",
"nominal_kontrak",
"file_kontrak",
"nomor_bast",
"created_by"
];
}
+4 -1
View File
@@ -24,7 +24,10 @@ class User extends Authenticatable
'name',
'nrk',
'password',
'role_name'
'role_name',
'is_lock_upload',
'lock_upload_time',
'lock_upload_by'
];
/**
@@ -20,6 +20,9 @@ class CreateUsersTable extends Migration
$table->string('role_name', 30);
// $table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->tinyInteger('is_lock_upload')->nullable();
$table->timestamp('lock_upload_time')->nullable();
$table->string('lock_upload_by')->nullable();
$table->rememberToken();
$table->timestamps();
});
@@ -20,6 +20,7 @@ class CreateBelanjaRealisasiKontrakTable extends Migration
$table->date("tgl_kontrak",50);
$table->decimal('nominal_kontrak', 19, 2);
$table->string("file_kontrak",100)->nullable();
$table->string("nomor_bast",50);
$table->uuid("created_by");
$table->timestamps();
});
+1 -1
View File
@@ -310,7 +310,7 @@ hr{
}
.width-200{
width:400px;
width:300px;
}
.card-title{
@@ -5,31 +5,37 @@
];
@endphp
@extends('layouts.app')
@extends('layouts.empty')
@section('styles')
<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-rowgroup/css/rowGroup.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="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h5><i class="fa fa-th-list"></i> @php echo $sitesubTitle; @endphp</h5>
</div>
<div class="pull-right">
<a class="btn btn-sm btn-success" href="{{ route('users.create') }}"><i class="fa fa-edit"></i> Tambah Data</a>
<div class="card">
<div class="card-header">
<h5 class="card-title"><i class="fa fa-th-list"></i> @php echo $sitesubTitle; @endphp</h5>
<div class="card-tools">
<a class="btn btn-tool btn-success" href="{{ route('users.create') }}"><i class="fa fa-edit"></i> Tambah Data</a>
</div>
</div>
</div>
<table class="table table-striped jambo_table">
<div class="card-body">
<table id="dtTableUser" class="table table-striped jambo_table">
<tr>
<thead>
<th width="50">No</th>
<th>NRK</th>
<th>Nama</th>
<th>Level</th>
<th>Lock Upload</th>
<th width="150px" class="text-center">Action</th>
</thead>
</tr>
@foreach ($data as $key => $value)
{{-- @foreach ($data as $key => $value)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $value->nrk }}</td>
@@ -45,13 +51,92 @@
</form>
</td>
</tr>
@endforeach
@endforeach --}}
</table>
{!! $data->links() !!}
{{-- {!! $data->links() !!} --}}
</div>
</div>
@section('scripts')
<!-- <script>
Swal.fire('Any fool can use a computer')
</script> -->
<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 dtTable = $('#dtTableUser').DataTable( {
"processing": true,
"serverSide": true,
"ordering": false,
"autoWidth": true,
"ajax": {
url: "{{ $baseUrl }}/admin/users/datatable",
type: "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: function (d) {
d.src = $("#src").val()
}
},
"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": "nrk", "className":"text-center" },
{ "data": "name", "className":"text-left" },
{ "data": "role_name", "className":"text-center" },
{ "data": null, "className":"text-center" },
{ "data": null, "className":"text-center" },
],
"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(4)", nRow).html("<input type='checkbox' class='chk-upload' value='"+aData["id"]+"'>");
$("td:eq(5)", nRow).html(
`<form class="form-delete" action="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" method="POST">
<a class="btn btn-default btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" title="Lihat"><i class="fa fa-bullseye"></i></a>
<a class="btn btn-default btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`/update" title="Ubah"><i class="fa fa-edit"></i></a>
@csrf
@method("DELETE")
<button type="submit" class="btn btn-default btn-sm"title="Hapus"><i class="fa fa-trash"></i></button>
</form>`);
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>",
},
});
});
</script>
@endsection
@stop
@@ -114,6 +114,7 @@
<thead>
<tr class="headings">
<th rowspan=2>No</th>
<th rowspan=2>SKPD</th>
<th rowspan=2>RSK</th>
<th rowspan=2>Anggaran</th>
<th colspan=2 class="text-right">Jan</th>
@@ -325,6 +326,7 @@
"paging": true, // Table pagination
"columns": [
{ "data": null},
{ "data": "nama_skpd", "width": "400px" },
{ "data": "nama_rsk", "width": "400px" },
{ "data": "jumlah_anggaran", "className":"text-right" },
{ "data": "v_akb_01", "className":"text-right" },
@@ -366,10 +368,11 @@
let total = 0;
let totalReal = 0;
let Jadwalcol=3;
let Jadwalcol=4;
$("td:eq(0)", nRow).html(index);
$("td:eq(1)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_rsk"] + " | " + aData["nama_rsk"] + "</div>");
$("td:eq(2)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
$("td:eq(1)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_skpd"] + " | " + aData["nama_skpd"] + "</div>");
$("td:eq(2)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_rsk"] + " | " + aData["nama_rsk"] + "</div>");
$("td:eq(3)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
$.each(akb, function(i,x){
let nAKB = akb[i] == null ? 0 : parseFloat(akb[i]);
let nReal = real[i] == null ? 0 : parseFloat(real[i]);
@@ -380,8 +383,8 @@
total+=parseFloat(nAKB);
totalReal+=parseFloat(nReal);
})
$("td:eq(27)", nRow).html(separateNumberIndo(total));
$("td:eq(28)", nRow).html(separateNumberIndo(totalReal));
$("td:eq(28)", nRow).html(separateNumberIndo(total));
$("td:eq(29)", nRow).html(separateNumberIndo(totalReal));
return nRow;
},
@@ -128,6 +128,7 @@
<thead>
<tr class="headings">
<th rowspan=2>No</th>
<th rowspan=2>SKPD</th>
<th rowspan=2>RSK</th>
<th rowspan=2>Anggaran</th>
<th colspan=2 class="text-right">Jan</th>
@@ -451,6 +452,7 @@
"paging": true, // Table pagination
"columns": [
{ "data": null},
{ "data": "nama_skpd", "width": "400px" },
{ "data": "nama_rsk", "width": "400px" },
{ "data": "jumlah_anggaran", "className":"text-right" },
{ "data": "v_akb_01", "className":"text-right" },
@@ -492,10 +494,11 @@
let total = 0;
let totalReal = 0;
let Jadwalcol=3;
let Jadwalcol=4;
$("td:eq(0)", nRow).html(index);
$("td:eq(1)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_rsk"] + " | " + aData["nama_rsk"] + "</div>");
$("td:eq(2)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
$("td:eq(1)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_skpd"] + " | " + aData["nama_skpd"] + "</div>");
$("td:eq(2)", nRow).html("<div class='text-wrap width-200'>" + aData["kode_rsk"] + " | " + aData["nama_rsk"] + "</div>");
$("td:eq(3)", nRow).html(separateNumberIndo(aData["jumlah_anggaran"]));
$.each(akb, function(i,x){
let nAKB = akb[i] == null ? 0 : parseFloat(akb[i]);
let nReal = real[i] == null ? 0 : parseFloat(real[i]);
@@ -506,8 +509,8 @@
total+=parseFloat(nAKB);
totalReal+=parseFloat(nReal);
})
$("td:eq(27)", nRow).html(separateNumberIndo(total));
$("td:eq(28)", nRow).html(separateNumberIndo(totalReal));
$("td:eq(28)", nRow).html(separateNumberIndo(total));
$("td:eq(29)", nRow).html(separateNumberIndo(totalReal));
return nRow;
},
+2 -1
View File
@@ -36,7 +36,7 @@
</a>
</li>
<?php } ?>
<?php if (Auth::user()->can("Read DAK Jadwal") || $role == "superadmin"){ ?>
<?php if (Auth::user()->can("Read DAK Jadwal") || $role == "superadmin" || $role == "admin"){ ?>
<li class="nav-item">
<a href="{{ $baseUrl }}/jadwal-salurdana/dak" class="nav-link">
<i class="nav-icon fa fa-minus"></i>
@@ -91,6 +91,7 @@
@if ($role == "admin" || $role == "superadmin")
<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>Mapping Rek DBH/DAK</p></a></li>
@endif
@if ($role == "superadmin")
<li class="nav-header">PENGATURAN</li>
@@ -22,6 +22,12 @@
<input type="text" id="nominal_kontrak" required class="form-control number-separator-indo" name="nominal_kontrak" value="{{ isset($BelanjaRealisasiKontrak)?separateNumberIndo($BelanjaRealisasiKontrak->nominal_kontrak):"" }}" placeholder="Nominal Kontrak">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label>Nomor BAST</label>
<input type="text" id="nomor_bast" required class="form-control" name="nomor_bast" value="{{ isset($BelanjaRealisasiKontrak)?$BelanjaRealisasiKontrak->nomor_bast:"" }}" placeholder="Nomor BAST">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label>File Kontrak (*.pdf)</label>
@@ -137,6 +137,7 @@
<th class="text-center">Tanggal</th>
<th class="text-right">Jumlah</th>
<th class="text-center">File</th>
<th>Nomor BAST</th>
<?php if (Auth::user()->can("Create Kontrak")){ ?>
<th class="text-center"></th>
<?php } ?>
@@ -147,10 +148,11 @@
foreach($BelanjaRealisasiKontrak as $key=>$kontrak){ ?>
<tr>
<td>{{ $key+1 }}</td>
<td>{{ $kontrak->nomor_kontrak }}</td>
<td class="text-left">{{ $kontrak->nomor_kontrak }}</td>
<td class="text-center">{{ date("d-m-Y",strtotime($kontrak->tgl_kontrak)) }}</td>
<td class="text-right">{{ separateNumberIndo($kontrak->nominal_kontrak) }}</td>
<td class="text-center"><?= empty($kontrak->file_kontrak)?"-":"<a href='".url("/realisasi-belanja/".$BelanjaRealisasi->id.'__'.$kontrak->id ."/download-kontrak")."'>".$kontrak->file_kontrak."</a>" ?></td>
<td class="text-left">{{ $kontrak->nomor_bast }}</td>
<?php if (Auth::user()->can("Create Kontrak")){ ?>
<td class="text-center">
<form class='form-delete' action='{{ $baseUrl }}/realisasi-belanja/{{ $kontrak->id }}/kontrak' method='POST'>
@@ -124,6 +124,12 @@
<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({
+2
View File
@@ -21,6 +21,8 @@ Route::get('register', [AuthController::class, 'showFormRegister'])->name('regis
Route::post('register', [AuthController::class, 'register']);
Route::group(['middleware' => 'auth'], function () {
Route::group(['prefix' => 'admin', 'middleware'=>'role:admin|superadmin'], function () {
Route::post('users/datatable', [MstPenggunaController::class,'datatable']);
Route::get('users/lock-upload-all', [MstPenggunaController::class, 'lockUploadData']);
Route::resource('users', MstPenggunaController::class);
});