You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.2 KiB
JavaScript

const App = document.getElementById('app');
const jurubayar = _id('jurubayar').innerHTML.toJson();
const golongan = _id('golongan').innerHTML.toJson();
let jubar = _id('jubar');
jubar.style.marginBottom = '10px';
jubar.innerHTML = `<option value="all">All</option>` + jurubayar.map(function (s) {
return `<option value="${s.kode}">${s.name}</option>`
}).join('');
setTimeout(function () {
$("#jubar").select2();
})
let year = Number(tanggal().normal.split('-')[0])
let statusData = '01';
Array.from(document.querySelectorAll('input[name="gol"]'))
.forEach(function(s){
s.addEventListener('click', function(){
let val = this.value;
statusData = val;
let dataR = [].concat(jurubayar);
if(val == "02"){
dataR = [].concat(golongan);
}
dataR = dataR.map(function (s) {
if (val == "02"){
return {
id:s.kode,
text: s.nama
}
}
return {
id: s.kode,
text: s.name
}
});
setTimeout(function () {
$("#jubar").empty().select2({
data: [{id:'all', text:'All'}, ...dataR]
});
})
},false)
})
_id('next').addEventListener('click', function () {
year++;
if (typeof makeTable != 'undefined') {
makeTable();
}
}, false);
_id('prev').addEventListener('click', function () {
year--;
if (typeof makeTable != 'undefined') {
makeTable();
}
}, false);
const actionPrint = function (e) {
e = e.el;
if (
e.querySelector('button') != undefined
|| e.querySelector('button') != null
) {
let btn = e.querySelector('button.btn-primary')
btn.onclick = function () {
var url = '{{PATH}}/admin/api/export/excel/rekapitulasi/' + year + '/' + this.dataset.kode + '/' + btoa(_id('jubar').value) + '/' + statusData;
location.href = url;
}
}
}
const NamaBulan = [
"Januari",
"Februari",
"Maret",
"April",
"Mei",
"Juni",
"Juli",
"Agustus",
"September",
"Oktober",
"November",
"Desember"
]
const addRow = function (arr, i) {
let tr = el('tr').data('kode', i);
if (Array.isArray(arr)) {
arr.forEach(function (w) {
let y = el('td').html(w);
tr.child(
y
);
});
};
tr.load(actionPrint);
return tr;
}
const makeTable = function (callback) {
let x = el('div').class('card');
let tbl = el('table').class('table')
let ArrayData = [];
ArrayData.push(['Tahun', 'Bulan', '#'])
let bulan = 12;
for (let bln = 0; bln < bulan; bln++) {
ArrayData.push([
year
, NamaBulan[bln]
, `
<button data-kode="${(bln + 1).pad(2)}" class="btn btn-sm btn-primary">Print Rekapitulasi Anggota</button>
`
]);
}
ArrayData.forEach(function (o, i) {
tbl.child(
addRow(o, i)
);
});
x.child(
el('div').class('card-body')
.child(
tbl
)
);
App.innerHTML = '';
App.appendChild(x.get());
};
makeTable();