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.
652 lines
28 KiB
JavaScript
652 lines
28 KiB
JavaScript
const kekayaan = _id('kekayaan');
|
|
kekayaan.style.overflowX = 'scroll';
|
|
kekayaan.style.overflowy = 'scroll';
|
|
kekayaan.style.height = '350px';
|
|
|
|
function doit(elm, type, fn) {
|
|
var elt = elm;
|
|
var wb = XLSX.utils.table_to_book(elt, { sheet: "Sheet JS" });
|
|
XLSX.writeFile(wb, fn || ('SheetJSTableExport.' + (type || 'xlsx')));
|
|
}
|
|
|
|
const pj = [
|
|
{
|
|
kode: 'REG',
|
|
nama: 'USP Reguler'
|
|
}
|
|
, {
|
|
kode: 'USP1',
|
|
nama: 'USP1 (Pembiayaan Elektronik)'
|
|
}
|
|
, {
|
|
kode: 'USP2',
|
|
nama: 'USP2 (Pembiayaan Elektronik)'
|
|
}
|
|
, {
|
|
kode: 'USP3',
|
|
nama: 'USP3 (Pembiayaan Haji / Umroh)'
|
|
}
|
|
, {
|
|
kode: 'KHUSUS',
|
|
nama: 'KHUSUS'
|
|
}
|
|
];
|
|
|
|
const namaBulan = [
|
|
"Januari",
|
|
"Februari",
|
|
"Maret",
|
|
"April",
|
|
"Mei",
|
|
"Juni",
|
|
"Juli",
|
|
"Agustus",
|
|
"September",
|
|
"Oktober",
|
|
"November",
|
|
"Desember"
|
|
];
|
|
|
|
|
|
|
|
const tableCreator = function () {
|
|
let [anggota, simp, simpanan, pinjaman] = arguments;
|
|
console.log(pinjaman);
|
|
|
|
let header = [
|
|
{
|
|
name: 'NO URUT',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'NO INDUK',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'NAMA',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'TEMTALA',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'JENIS KELAMIN',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'NO. TELP',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'ALAMAT RUMAH',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'UNIT KERJA',
|
|
rowspan: 2
|
|
}
|
|
, {
|
|
name: 'TAHUN MASUK',
|
|
rowspan: 2
|
|
}
|
|
];
|
|
|
|
let subheader = [];
|
|
|
|
|
|
|
|
simp.forEach(function (x) {
|
|
header.push({
|
|
name: x.nama.toUpperCase(),
|
|
colspan: 15
|
|
})
|
|
subheader.push({
|
|
name: 'Awal Tahun',
|
|
colspan: 1
|
|
})
|
|
namaBulan.forEach(function (bln) {
|
|
subheader.push({
|
|
name: bln,
|
|
colspan: 1
|
|
})
|
|
})
|
|
subheader.push({
|
|
name: 'Tahun Berjalan',
|
|
colspan: 1
|
|
})
|
|
subheader.push({
|
|
name: 'Akhir Tahun',
|
|
colspan: 1
|
|
})
|
|
});
|
|
|
|
pj.forEach(function (x) {
|
|
header.push({
|
|
name: x.nama.toUpperCase(),
|
|
colspan: 6
|
|
})
|
|
let y = [
|
|
'SALDO AWAL'
|
|
, 'ANGSURAN/ PELUNASAN SHU'
|
|
, 'PELUNASAN NON SHU'
|
|
, 'JASA USP REGULER'
|
|
, 'PINJAMAN BARU'
|
|
, 'SALDO AKHIR'
|
|
];
|
|
y.forEach(function (g) {
|
|
subheader.push({
|
|
name: g,
|
|
colspan: 1
|
|
})
|
|
})
|
|
|
|
});
|
|
|
|
kekayaan.appendChild(
|
|
el('table').css({
|
|
cellSpacing: 0
|
|
}).html(`
|
|
<thead>
|
|
${(function () {
|
|
return '<tr>' + header.map(function (q) {
|
|
if (q.rowspan != undefined) {
|
|
return `
|
|
<th style="text-align:center;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" rowspan="${q.rowspan}">${q.name}</th>
|
|
`
|
|
} else {
|
|
return `
|
|
<th style="text-align:center;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" colspan="${q.colspan}">${q.name}</th>
|
|
`
|
|
}
|
|
}).join('') + '</tr>'
|
|
})()}
|
|
${(function () {
|
|
return '<tr>' + subheader.map(function (q) {
|
|
if (q.rowspan != undefined) {
|
|
return `
|
|
<th style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" rowspan="${q.rowspan}">${q.name}</th>
|
|
`
|
|
} else {
|
|
return `
|
|
<th style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" colspan="${q.colspan}">${q.name}</th>
|
|
`
|
|
}
|
|
}).join('') + '</tr>'
|
|
})()}
|
|
</thead>
|
|
<tbody>
|
|
${anggota.map(function (ang, i) {
|
|
if (i < 20) {
|
|
let j = '<tr>';
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${i + 1}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.kode}</td>`;
|
|
j += `<td style="min-width: 300px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.nama}</td>`;
|
|
j += `<td style="min-width: 120px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.kota}, ${tanggal(ang.tgllahir).sekarang}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.jk}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.telp}</td>`;
|
|
j += `<td style="min-width: 300px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.alamat}</td>`;
|
|
j += `<td style="min-width: 180px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.unitkerja}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.masuk.split('-')[0]}</td>`;
|
|
|
|
simp.forEach(function (h) {
|
|
let awl = 0;
|
|
let jln = 0;
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
namaBulan.forEach(function (b, i) {
|
|
let bl = i + 1;
|
|
let [data] = simpanan.cond(h.kode, 'kodesp').cond(bl, 'bulan').cond(ang.kode, 'kode');
|
|
if (data != undefined) {
|
|
jln += Number(data.jumlah);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(data.jumlah).currency(0).replace(/\./g, ',')}</td>`;
|
|
} else {
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
}
|
|
})
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(jln).currency(0).replace(/\./g, ',')}</td>`;
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(awl + jln).currency(0).replace(/\./g, ',')}</td>`;
|
|
});
|
|
|
|
pj.forEach(function (q) {
|
|
let y = ['awl'
|
|
, 'shu'
|
|
, 'nonshu'
|
|
, 'bunga'
|
|
, 'baru'
|
|
, 'akhir'
|
|
];
|
|
|
|
function shu(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond('G', 'tr')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angpokok } = data;
|
|
if (angpokok != null && angpokok != undefined) {
|
|
return Number(angpokok);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function nonshu(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond('L', 'tr')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angpokok } = data;
|
|
if (angpokok != null && angpokok != undefined) {
|
|
return angpokok.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function bunga(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
if (g.length > 1) {
|
|
let v = g.map(function (cj) {
|
|
return cj.angbunga? cj.angbunga.number(2): 0
|
|
}).sum();
|
|
return v;
|
|
}
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angbunga } = data;
|
|
if (angbunga != null && angbunga != undefined) {
|
|
return angbunga.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function pokok(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
if (g.length > 1) {
|
|
let v = g.map(function (cj) {
|
|
return cj.pokok.number(2)
|
|
}).sum();
|
|
return v;
|
|
}
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { pokok } = data;
|
|
return pokok.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
y.forEach(function (s) {
|
|
if (s == 'shu') {
|
|
let data = shu(q).currency(0);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'nonshu') {
|
|
let data = nonshu(q).currency(0);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'bunga') {
|
|
let data = bunga(q).currency(0);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'baru') {
|
|
let data = pokok(q).currency(0);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'akhir') {
|
|
let data = (pokok(q) - nonshu(q) - shu(q)).currency(0);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else {
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
}
|
|
});
|
|
|
|
})
|
|
|
|
j += '</tr>';
|
|
return j;
|
|
} else {
|
|
return '';
|
|
}
|
|
}).join('')}
|
|
</tbody>
|
|
`).get()
|
|
)
|
|
|
|
let sumData = [];
|
|
|
|
window.printDataHtmlExcel =
|
|
el('table').css({
|
|
cellSpacing: 0
|
|
}).html(`
|
|
<thead>
|
|
${(function () {
|
|
return '<tr>' + header.map(function (q) {
|
|
if (q.rowspan != undefined) {
|
|
return `
|
|
<th style="text-align:center;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" rowspan="${q.rowspan}">${q.name}</th>
|
|
`
|
|
} else {
|
|
return `
|
|
<th style="text-align:center;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" colspan="${q.colspan}">${q.name}</th>
|
|
`
|
|
}
|
|
}).join('') + '</tr>'
|
|
})()}
|
|
${(function () {
|
|
return '<tr>' + subheader.map(function (q) {
|
|
if (q.rowspan != undefined) {
|
|
return `
|
|
<th style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" rowspan="${q.rowspan}">${q.name}</th>
|
|
`
|
|
} else {
|
|
return `
|
|
<th style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;" colspan="${q.colspan}">${q.name}</th>
|
|
`
|
|
}
|
|
}).join('') + '</tr>'
|
|
})()}
|
|
</thead>
|
|
<tbody>
|
|
${anggota.map(function (ang, i) {
|
|
let j = '<tr>';
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${i + 1}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.kode}</td>`;
|
|
j += `<td style="min-width: 300px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.nama}</td>`;
|
|
j += `<td style="min-width: 120px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.kota}, ${tanggal(ang.tgllahir).sekarang}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.jk}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.telp}</td>`;
|
|
j += `<td style="min-width: 300px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.alamat}</td>`;
|
|
j += `<td style="min-width: 180px;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.unitkerja}</td>`;
|
|
j += `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${ang.masuk.split('-')[0]}</td>`;
|
|
|
|
simp.forEach(function (h) {
|
|
let awl = 0;
|
|
let jln = 0;
|
|
sumData.push({
|
|
kodesp: h.kode,
|
|
bulan: '00',
|
|
kode: 'awl',
|
|
value: Number(0)
|
|
})
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
namaBulan.forEach(function (b, i) {
|
|
let bl = i + 1;
|
|
let [data] = simpanan.cond(h.kode, 'kodesp').cond(bl, 'bulan').cond(ang.kode, 'kode');
|
|
if (data != undefined) {
|
|
sumData.push({
|
|
kodesp: h.kode,
|
|
bulan: bl.pad(2),
|
|
kode: 'sim',
|
|
value: Number(data.jumlah)
|
|
})
|
|
jln += Number(data.jumlah);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(data.jumlah).currency(0).replace(/\./g, ',')}</td>`;
|
|
} else {
|
|
sumData.push({
|
|
kodesp: h.kode,
|
|
bulan: bl.pad(2),
|
|
kode: 'sim',
|
|
value: 0
|
|
})
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
}
|
|
})
|
|
sumData.push({
|
|
kodesp: h.kode,
|
|
bulan: '00',
|
|
kode: 'jln',
|
|
value: Number(jln)
|
|
})
|
|
sumData.push({
|
|
kodesp: h.kode,
|
|
bulan: '00',
|
|
kode: 'akr',
|
|
value: Number(awl + jln)
|
|
})
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(jln).currency(0).replace(/\./g, ',')}</td>`;
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${Number(awl + jln).currency(0).replace(/\./g, ',')}</td>`;
|
|
});
|
|
|
|
pj.forEach(function (q) {
|
|
let y = ['awl'
|
|
, 'shu'
|
|
, 'nonshu'
|
|
, 'bunga'
|
|
, 'baru'
|
|
, 'akhir'
|
|
];
|
|
|
|
function shu(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond('G', 'tr')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angpokok } = data;
|
|
if (angpokok != null && angpokok != undefined) {
|
|
return angpokok.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function nonshu(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond('L', 'tr')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angpokok } = data;
|
|
if (angpokok != null && angpokok != undefined) {
|
|
return angpokok.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function bunga(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
if (g.length > 1) {
|
|
let v = g.map(function (cj) {
|
|
return cj.angbunga? cj.angbunga.number(2) : 0
|
|
}).sum();
|
|
return v;
|
|
}
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { angbunga } = data;
|
|
if (angbunga != null && angbunga != undefined) {
|
|
return angbunga.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function pokok(q) {
|
|
let { kode } = q;
|
|
let g = pinjaman
|
|
.cond(kode, 'kodesp')
|
|
.cond(ang.kode, 'kode')
|
|
;
|
|
if (g.length > 1) {
|
|
let v = g.map(function (cj) {
|
|
return cj.pokok.number(2)
|
|
}).sum();
|
|
return v;
|
|
}
|
|
let [data] = g;
|
|
if (data != undefined) {
|
|
let { pokok } = data;
|
|
return pokok.number(2);
|
|
}
|
|
return 0;
|
|
}
|
|
y.forEach(function (s) {
|
|
if (s == 'shu') {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'shu',
|
|
value: shu(q)
|
|
})
|
|
let data = shu(q);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'nonshu') {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'nonshu',
|
|
value: nonshu(q)
|
|
})
|
|
let data = nonshu(q);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'bunga') {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'bunga',
|
|
value: bunga(q)
|
|
})
|
|
let data = bunga(q);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'baru') {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'baru',
|
|
value: pokok(q)
|
|
})
|
|
let data = pokok(q);
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else if (s == 'akhir') {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'akhir',
|
|
value: (pokok(q) - nonshu(q) - shu(q))
|
|
})
|
|
let data = (pokok(q) - nonshu(q) - shu(q)).currency(0).replace(/\./g, ',');
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${data}</td>`;
|
|
} else {
|
|
sumData.push({
|
|
kodesp: q.kode,
|
|
bulan: '00',
|
|
kode: 'awl',
|
|
value: 0
|
|
})
|
|
j += `<td style="text-align: right;font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">0</td>`;
|
|
}
|
|
});
|
|
})
|
|
|
|
j += '</tr>';
|
|
return j;
|
|
}).join('')}
|
|
<tr>
|
|
${(function(){
|
|
return `
|
|
<td colspan="9" style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">Grand Total</td>
|
|
${
|
|
simp.map(function(h){
|
|
let y = sumData.cond('awl', 'kode').cond(h.kode, 'kodesp').map(function(c){
|
|
return c.value
|
|
}).sum();
|
|
let jln = sumData.cond('jln', 'kode').cond(h.kode, 'kodesp').map(function(c){
|
|
return c.value
|
|
}).sum();
|
|
let akr = sumData.cond('akr', 'kode').cond(h.kode, 'kodesp').map(function(c){
|
|
return c.value
|
|
}).sum();
|
|
return `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${y}</td>`
|
|
+namaBulan.map(function (b, i) {
|
|
let bl = (i + 1).pad(2);
|
|
let y = sumData.cond(bl,'bulan').cond('sim', 'kode').cond(h.kode, 'kodesp').map(function (c) {
|
|
return c.value
|
|
}).sum();
|
|
return `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${y}</td>`
|
|
})
|
|
+ `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${jln}</td>`
|
|
+ `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${akr}</td>`
|
|
}).join('')
|
|
}
|
|
${
|
|
pj.map(function (q) {
|
|
let cc = ['awl', 'shu', 'nonshu', 'bunga', 'baru', 'akhir'];
|
|
return cc.map(function(s){
|
|
let y = sumData.cond(q.kode, 'kodesp').cond(s, 'kode').map(function (c) {
|
|
return c.value
|
|
}).sum();
|
|
return `<td style="font-size: 10px;padding: 3px 8px;border: 1px solid #ddd;">${y}</td>`
|
|
})
|
|
}).join('')
|
|
}
|
|
`
|
|
})()}
|
|
</tr>
|
|
</tbody>
|
|
`).get();
|
|
}
|
|
|
|
const load = function () {
|
|
AuditDevQuery(`
|
|
SELECT * FROM anggota a ORDER BY jurubayar DESC, kode DESC
|
|
[;]
|
|
SELECT kode, nama FROM jpinjam WHERE typetransaksi = 'simpanan' AND rw <> '-'
|
|
[;]
|
|
SELECT kode, kodesp, month(tgl) bulan, sum(jumlah) jumlah
|
|
FROM msimpan WHERE tgl like '2023%' GROUP BY bulan, kode, kodesp
|
|
[;]
|
|
SELECT * FROM (
|
|
SELECT tr, kode, kodesp, sum(mpinjam.pokok) pokok, b.pokok angpokok, b.bunga angbunga FROM mpinjam
|
|
LEFT JOIN (
|
|
SELECT m.faktur, sum(mags.pokok) pokok, sum(mags.bunga) bunga FROM mags
|
|
LEFT JOIN mpinjam m ON m.faktur = mags.fkt GROUP BY faktur
|
|
) b ON b.faktur = mpinjam.faktur
|
|
GROUP BY kode, kodesp, tr
|
|
) a
|
|
`, function (x) {
|
|
tableCreator(...x);
|
|
})
|
|
}
|
|
|
|
load();
|
|
|
|
$("#export-data").click(function () {
|
|
let reportExcel = window.printDataHtmlExcel;
|
|
doit(reportExcel, 'xlsx', 'kekayaananggota.xlsx')
|
|
|
|
// let content = new Blob([reportExcel], {
|
|
// type: 'application/vdn.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
|
|
// });
|
|
// saveAs(content, 'export' + '.xls');
|
|
|
|
}) |