Commit d2ac3ac2 by nurchamim

modul: Bug filter payroll komponen tidak tetap

status: selesai
keterangan:
-bug fix filter cabang dan departemen
-penyesuaian kolom sesuai dengan urutan master komponen
-menghilangkan alert error ketika pengambilan data pada datatable
-menghilangkan alert error pengambilan data
parent 1b36272f
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
$(function() { $(function() {
view_data($("#filter #bulan").val()); view_data($("#filter #bulan").val());
$("#filter #bulan").inputmask({'alias':'datetime','inputFormat': 'mm-yyyy'}); $("#filter #bulan").inputmask({
'alias': 'datetime',
'inputFormat': 'mm-yyyy'
});
$("#filter #bulan").datepicker({ $("#filter #bulan").datepicker({
format: "mm-yyyy", format: "mm-yyyy",
viewMode: "months", viewMode: "months",
...@@ -12,7 +15,7 @@ ...@@ -12,7 +15,7 @@
endDate: "today" endDate: "today"
}); });
$('#modal-nominal').on('show.bs.modal', function (event) { $('#modal-nominal').on('show.bs.modal', function(event) {
$('#message').hide(); $('#message').hide();
let button = $(event.relatedTarget); let button = $(event.relatedTarget);
...@@ -22,14 +25,14 @@ ...@@ -22,14 +25,14 @@
let nominal = button.data('nominal'); let nominal = button.data('nominal');
let modal = $(this); let modal = $(this);
modal.find(".modal-title").text('Ubah nominal '+komponen); modal.find(".modal-title").text('Ubah nominal ' + komponen);
modal.find('.card-body label').text(nm_komponen); modal.find('.card-body label').text(nm_komponen);
modal.find('#item').val(item); modal.find('#item').val(item);
modal.find('#komponen').val(komponen); modal.find('#komponen').val(komponen);
modal.find('#nominal_pendapatan').val(nominal); modal.find('#nominal_pendapatan').val(nominal);
modal.find('#nominal_pendapatan').focus(); modal.find('#nominal_pendapatan').focus();
$("#nominal_pendapatan").keydown(function (event) { $("#nominal_pendapatan").keydown(function(event) {
if (event.which == 13) { if (event.which == 13) {
event.preventDefault(); event.preventDefault();
$('.btn_save').click(); $('.btn_save').click();
...@@ -37,28 +40,28 @@ ...@@ -37,28 +40,28 @@
}); });
}) })
$(document).on('click', '.btn_save', function (e) { $(document).on('click', '.btn_save', function(e) {
e.preventDefault(); e.preventDefault();
var loading = Ladda.create(this); var loading = Ladda.create(this);
loading.start(); loading.start();
var param = {}; var param = {};
param.item = $("#item").val(); param.item = $("#item").val();
param.komponen = $("#komponen").val(); param.komponen = $("#komponen").val();
param.nominal = ($("#nominal_pendapatan").val()!="")?$("#nominal_pendapatan").val():0; param.nominal = ($("#nominal_pendapatan").val() != "") ? $("#nominal_pendapatan").val() : 0;
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: "<?= route('payroll.data.komponen.tdk.tetap.update') ?>", url: "<?= route('payroll.data.komponen.tdk.tetap.update') ?>",
data: param, data: param,
dataType:'JSON', dataType: 'JSON',
success: function(result){ success: function(result) {
loading.stop(); loading.stop();
$('#message').show(); $('#message').show();
$('#message').html(result.message); $('#message').html(result.message);
}, },
error:function(){ error: function() {
loading.stop(); loading.stop();
$('#message').show(); $('#message').show();
$('#message').html('<font color="#eb3a28"><i class="fa fa-close(alias)">&nbsp;</i><strong>Gagal : Terjadi Kesalahan</strong></font>'); $('#message').html('<font color="#eb3a28"><i class="fa fa-close(alias)">&nbsp;</i><strong>Gagal : Terjadi Kesalahan</strong></font>');
...@@ -69,22 +72,22 @@ ...@@ -69,22 +72,22 @@
function formatangka(objek) { function formatangka(objek) {
a = objek.value; a = objek.value;
b = a.replace(/[^\d]/g,""); b = a.replace(/[^\d]/g, "");
c = ""; c = "";
panjang = b.length; panjang = b.length;
j = 0; j = 0;
for (i = panjang; i > 0; i--) { for (i = panjang; i > 0; i--) {
j = j + 1; j = j + 1;
if (((j % 3) == 1) && (j != 1)) { if (((j % 3) == 1) && (j != 1)) {
c = b.substr(i-1,1) + "." + c; c = b.substr(i - 1, 1) + "." + c;
} else { } else {
c = b.substr(i-1,1) + c; c = b.substr(i - 1, 1) + c;
} }
} }
objek.value = c; objek.value = c;
} }
function view_data(bulan){ function view_data(bulan) {
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => 'all', 'id_cabang' => 'all', 'id_departemen' => 'all']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => 'all', 'id_cabang' => 'all', 'id_departemen' => 'all']) ?>");
} }
</script> </script>
...@@ -101,8 +104,8 @@ ...@@ -101,8 +104,8 @@
url: '<?= route("dropdown.karyawan.encrypt") ?>', url: '<?= route("dropdown.karyawan.encrypt") ?>',
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults: function (data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
...@@ -111,31 +114,31 @@ ...@@ -111,31 +114,31 @@
minLength: 3 minLength: 3
}); });
$('#filter #btn_cari').click(function(){ $('#filter #btn_cari').click(function() {
let loading = Ladda.create(this); let loading = Ladda.create(this);
loading.start(); loading.start();
let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>"; let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>";
let id_cabang = "all"; let id_cabang = "all";
let id_departemen = "all"; let id_departemen = "all";
let id_karyawan = ($("#filter #id_karyawan").val()) ? $("#filter #id_karyawan").val() : "all"; let id_karyawan = ($("#filter #id_karyawan").val()) ? $("#filter #id_karyawan").val() : "all";
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>");
loading.stop(); loading.stop();
}); });
$('#filter #btn_filter').click(function(){ $('#filter #btn_filter').click(function() {
let loading = Ladda.create(this); let loading = Ladda.create(this);
loading.start(); loading.start();
let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>"; let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>";
let id_cabang = (!$("#filter #cabang").val()) ? "all" : $("#filter #cabang").val(); let id_cabang = (!$("#filter #cabang").val()) ? "all" : $("#filter #cabang").val();
let id_departemen = (!$("#filter #departemen").val()) ? "all" : $("#filter #departemen").val(); let id_departemen = (!$("#filter #departemen").val()) ? "all" : $("#filter #departemen").val();
let id_karyawan = "all"; let id_karyawan = "all";
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+encodeURIComponent(id_cabang)+"', 'id_departemen' => '"+encodeURIComponent(id_departemen)+"']) ?>");
loading.stop(); loading.stop();
}); });
}); });
function dropdown_cabang(){ function dropdown_cabang() {
$('#filter #cabang').select2({ $('#filter #cabang').select2({
placeholder: 'Semua Cabang', placeholder: 'Semua Cabang',
allowClear: true, allowClear: true,
...@@ -143,37 +146,35 @@ ...@@ -143,37 +146,35 @@
url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.cabang") ?>', url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.cabang") ?>',
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults: function (data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
cache: false cache: false
}, },
minLength: 3 minLength: 3
}).change(function() {
$("#filter #departemen").val('').trigger('change');
dropdown_departemen();
}); });
} }
function onchange_dropdown_cabang(){ function dropdown_departemen() {
$("#filter #departemen").val('').trigger('change');
dropdown_departemen();
}
function dropdown_departemen(){
var id_cabang = ($("#filter #cabang").val() == null)?"all":$("#filter #cabang").val(); var id_cabang = ($("#filter #cabang").val() == null) ? "all" : $("#filter #cabang").val();
$("#filter #departemen").select2({ $("#filter #departemen").select2({
placeholder: "Semua Departemen", placeholder: "Semua Departemen",
allowClear: true, allowClear: true,
ajax: { ajax: {
url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.departemen") ?>/'+id_cabang, url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.departemen") ?>/' + encodeURIComponent(id_cabang),
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults:function(data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
cache: false cache: false
} }
...@@ -238,7 +239,7 @@ ...@@ -238,7 +239,7 @@
</div> </div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<select id="cabang" class="form-control" onchange="onchange_dropdown_cabang()"> <select id="cabang" class="form-control">
<option></option> <option></option>
</select> </select>
</div> </div>
......
<style> <style>
th, td { th,
td {
white-space: nowrap; white-space: nowrap;
} }
div.dataTables_wrapper { div.dataTables_wrapper {
margin: 0 auto; margin: 0 auto;
} }
...@@ -10,10 +12,10 @@ ...@@ -10,10 +12,10 @@
<thead> <thead>
<tr class="bg-tr"> <tr class="bg-tr">
<?php <?php
$numrow = 1; $numrow = 1;
if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) { if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) {
$numrow = 2; $numrow = 2;
} }
?> ?>
<th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">NIK</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">NIK</th>
...@@ -23,28 +25,28 @@ ...@@ -23,28 +25,28 @@
<th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th>
<?php <?php
if (count($master['pendapatan']) > 0) { if (count($master['pendapatan']) > 0) {
echo '<th colspan="'.count($master['pendapatan']).'" class="align-middle text-center">PENDAPATAN</th>'; echo '<th colspan="' . count($master['pendapatan']) . '" class="align-middle text-center">PENDAPATAN</th>';
} }
if (count($master['potongan']) > 0) { if (count($master['potongan']) > 0) {
echo '<th colspan="'.count($master['potongan']).'" class="align-middle text-center">POTONGAN</th>'; echo '<th colspan="' . count($master['potongan']) . '" class="align-middle text-center">POTONGAN</th>';
} }
?> ?>
</tr> </tr>
<?php <?php
if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) { if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) {
echo '<tr class="bg-tr">'; echo '<tr class="bg-tr">';
if (count($master['pendapatan']) > 0) { if (count($master['pendapatan']) > 0) {
foreach ($master['pendapatan'] as $komponen) { foreach ($master['pendapatan'] as $komponen) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_komponen']).'</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_komponen']) . '</th>';
}
} }
if (count($master['potongan']) > 0) { }
foreach ($master['potongan'] as $komponen) { if (count($master['potongan']) > 0) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_komponen']).'</th>'; foreach ($master['potongan'] as $komponen) {
} echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_komponen']) . '</th>';
} }
} }
}
?> ?>
</thead> </thead>
<tbody> <tbody>
...@@ -55,59 +57,78 @@ ...@@ -55,59 +57,78 @@
$(function() { $(function() {
var paramBulan = "<?= $bulan ?>"; var paramBulan = "<?= $bulan ?>";
$.fn.dataTableExt.sErrMode = 'none'; $.fn.dataTableExt.sErrMode = 'none';
list_data = $('#list_data').on('error.dt', function ( e, settings, techNote, message ) { list_data = $('#list_data').DataTable({
if(confirm('Terjadi kesalahan saat memproses data, muat ulang halaman ?')){ 'searching': true,
window.location.reload(); 'paging': true,
} 'lengthChange': true,
}).DataTable({ 'ordering': true,
'searching' : true, 'info': true,
'paging' : true, 'scrollX': true,
'lengthChange' : true,
'ordering' : true,
'info' : true,
'scrollX' : true,
'scrollCollapse': true, 'scrollCollapse': true,
'fixedColumns' : { 'fixedColumns': {
'leftColumns': 3, 'leftColumns': 3,
}, },
'language' : { 'language': {
'url' : '<?=base_url("assets/plugins/datatables/dataTables-language-id.json")?>', 'url': '<?= base_url("assets/plugins/datatables/dataTables-language-id.json") ?>',
'sEmptyTable' : 'Tidak ada data untuk ditampilkan', 'sEmptyTable': 'Tidak ada data untuk ditampilkan',
'searchPlaceholder': 'NIK/Karyawan' 'searchPlaceholder': 'NIK/Karyawan'
}, },
"processing" : true, "processing": true,
"serverSide" : true, "serverSide": true,
"order" : [], "order": [],
"ajax" : { "ajax": {
"url": "<?= route('payroll.data.komponen.tdk.tetap.import.listdata', ['bulan' => '"+paramBulan+"']) ?>", "url": "<?= route('payroll.data.komponen.tdk.tetap.import.listdata', ['bulan' => '"+paramBulan+"']) ?>",
"type": "GET", "type": "GET",
"data" : function (d) { "data": function(d) {
delete d.columns; delete d.columns;
}, },
"complete" : function(data){ "complete": function(data) {
reconfigure(data); reconfigure(data);
} }
}, },
"aoColumnDefs": [ "aoColumnDefs": [{
{ "aTargets": [1], "bSortable": true}, "aTargets": [1],
{ "aTargets": "_all", "bSortable": false}, "bSortable": true
{ "visible": false, "targets": [1]}, },
{ "className": "text-center", "targets": [0]}, {
{ "className": "text-left", "targets": [1,2,3,4,5,6]}, "aTargets": "_all",
{ "className": "text-right", "targets": "_all"}, "bSortable": false
},
{
"visible": false,
"targets": [1]
},
{
"className": "text-center",
"targets": [0]
},
{
"className": "text-left",
"targets": [1, 2, 3, 4, 5, 6]
},
{
"className": "text-right",
"targets": "_all"
},
], ],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) { "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
for (let index = 1; index < aData.length; index++) { for (let index = 1; index < aData.length; index++) {
const col = aData[index]; const col = aData[index];
if(col == ""){ if (col == "") {
$('td:eq('+index+')', nRow).css({'background-color':'#FF7588','color':'White'}); $('td:eq(' + index + ')', nRow).css({
'background-color': '#FF7588',
'color': 'White'
});
} }
} }
if(aData[1] == "-"){ if (aData[1] == "-") {
$('td:eq(1)', nRow).css({'background-color':'#ffbc34','color':'White'}); $('td:eq(1)', nRow).css({
'background-color': '#ffbc34',
'color': 'White'
});
} }
}, },
}); });
......
...@@ -3,48 +3,55 @@ ...@@ -3,48 +3,55 @@
$(document).ready(function() { $(document).ready(function() {
var bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : ''; var bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : '';
$.fn.dataTableExt.sErrMode = 'none'; $.fn.dataTableExt.sErrMode = 'none';
list_data = $('#list_data').on('error.dt', function ( e, settings, techNote, message ) { list_data = $('#list_data').DataTable({
if(confirm('Terjadi kesalahan saat memproses data, muat ulang halaman ?')){ 'searching': false,
window.location.reload(); 'searchDelay': 1000,
} 'paging': true,
}).DataTable({
'searching' : false,
'searchDelay' : 1000,
'paging' : true,
'lengthChange': true, 'lengthChange': true,
'ordering' : true, 'ordering': true,
'info' : true, 'info': true,
'scrollX' : true, 'scrollX': true,
'fixedColumns': { 'fixedColumns': {
leftColumns: 2 leftColumns: 2
}, },
// 'scrollCollapse': true, // 'scrollCollapse': true,
// 'fixedColumns': true, // 'fixedColumns': true,
'language' :{ 'language': {
'url' : '<?=base_url("assets/plugins/datatables/dataTables-language-id.json")?>', 'url': '<?= base_url("assets/plugins/datatables/dataTables-language-id.json") ?>',
'sEmptyTable' : 'Tidak ada data untuk ditampilkan', 'sEmptyTable': 'Tidak ada data untuk ditampilkan',
'searchPlaceholder': '' 'searchPlaceholder': ''
}, },
"processing" : true, "processing": true,
"serverSide" : true, "serverSide": true,
"order" : [], "order": [],
"ajax" : { "ajax": {
"url" : "<?= route('payroll.data.komponen.tdk.tetap.datatable', ['bulan' => '"+bulan+"', 'id_karyawan' => $id_karyawan, 'id_cabang' => $id_cabang, 'id_departemen' => $id_departemen]) ?>", "url": "<?= route('payroll.data.komponen.tdk.tetap.datatable', ['bulan' => '"+bulan+"', 'id_karyawan' => $id_karyawan, 'id_cabang' => $id_cabang, 'id_departemen' => $id_departemen]) ?>",
"type": "GET", "type": "GET",
"data": function (d) { "data": function(d) {
delete d.columns; delete d.columns;
}, },
"complete" : function(data){ "complete": function(data) {
reconfigure(data); reconfigure(data);
} }
}, },
"aoColumnDefs": [ "aoColumnDefs": [{
{ "aTargets": "_all", "bSortable": false }, "aTargets": "_all",
{ "className": "text-center", "targets": [0] }, "bSortable": false
{ "className": "text-left", "targets": [1,2,3,4] }, },
{ "className": "text-right", "targets": "_all" }, {
"className": "text-center",
"targets": [0]
},
{
"className": "text-left",
"targets": [1, 2, 3, 4]
},
{
"className": "text-right",
"targets": "_all"
},
] ]
}); });
}); });
...@@ -55,10 +62,10 @@ ...@@ -55,10 +62,10 @@
<thead> <thead>
<tr class="bg-tr"> <tr class="bg-tr">
<?php <?php
$numrow = 1; $numrow = 1;
if (count($list_pendapatan) > 0 || count($list_potongan) > 0) { if (count($list_pendapatan) > 0 || count($list_potongan) > 0) {
$numrow = 2; $numrow = 2;
} }
?> ?>
<th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">NAMA KARYAWAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">NAMA KARYAWAN</th>
...@@ -66,31 +73,31 @@ ...@@ -66,31 +73,31 @@
<th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th>
<?php <?php
if (count($list_pendapatan) > 0) { if (count($list_pendapatan) > 0) {
echo '<th colspan="'.(count($list_pendapatan)+1).'" class="align-middle text-center">PENDAPATAN</th>'; echo '<th colspan="' . (count($list_pendapatan) + 1) . '" class="align-middle text-center">PENDAPATAN</th>';
} }
if (count($list_potongan) > 0) { if (count($list_potongan) > 0) {
echo '<th colspan="'.(count($list_potongan)+1).'" class="align-middle text-center">POTONGAN</th>'; echo '<th colspan="' . (count($list_potongan) + 1) . '" class="align-middle text-center">POTONGAN</th>';
} }
?> ?>
</tr> </tr>
<?php <?php
if (count($list_pendapatan) > 0 || count($list_potongan) > 0) { if (count($list_pendapatan) > 0 || count($list_potongan) > 0) {
echo '<tr>'; echo '<tr>';
if (count($list_pendapatan) > 0) { if (count($list_pendapatan) > 0) {
foreach ($list_pendapatan as $komponen) { foreach ($list_pendapatan as $komponen) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_tunjangan']).'</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_tunjangan']) . '</th>';
}
echo '<th class="align-middle text-center">TOTAL PENDAPATAN</th>';
} }
if (count($list_potongan) > 0) { echo '<th class="align-middle text-center">TOTAL PENDAPATAN</th>';
foreach ($list_potongan as $komponen) { }
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_potongan']).'</th>'; if (count($list_potongan) > 0) {
} foreach ($list_potongan as $komponen) {
echo '<th class="align-middle text-center">TOTAL POTONGAN</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_potongan']) . '</th>';
} }
echo '</tr>'; echo '<th class="align-middle text-center">TOTAL POTONGAN</th>';
} }
echo '</tr>';
}
?> ?>
</thead> </thead>
<tbody> <tbody>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment