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