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.
137 lines
4.5 KiB
JavaScript
137 lines
4.5 KiB
JavaScript
import { _bbData } from "{{PATH}}/assets-js/module-lap-bb.js?v={time}";
|
|
import { temp } from "{{PATH}}/assets-js/module-lap-filter.js?v={time}";
|
|
import { xlsx } from "{{PATH}}/assets-js/module-export-xlsx.js?v={time}";
|
|
|
|
globalThis.acc = JSON.parse(_id('acc').innerHTML);
|
|
_id('tgl1').innerHTML = tanggal().normal2
|
|
_id('tgl2').innerHTML = tanggal().normal3
|
|
|
|
let d = _id('report').querySelector('tbody')
|
|
|
|
_fullScreen();
|
|
|
|
temp();
|
|
|
|
_id('bulan').value = tanggal().normal.split('-')[1];
|
|
|
|
let loader = function( callback ){
|
|
d.innerHTML = (function(v){
|
|
let laporantype = _id('laporantype').value;
|
|
let accNew = [].concat(acc);
|
|
if (laporantype === 'u'){
|
|
accNew = accNew.map(function(w){
|
|
return {
|
|
app: w.app,
|
|
kode: w.main,
|
|
nama: w.nama_main,
|
|
dk: w.dk
|
|
}
|
|
}).removeDuplicate(['app', 'kode', 'dk', 'nama']);
|
|
}
|
|
accNew = accNew.sortArrayObjectAsc('kode');
|
|
globalThis.accNew = accNew;
|
|
if(v === 'usp' || v === 'acc'){
|
|
return accNew.like('app', v);
|
|
}
|
|
return accNew;
|
|
})(_id('app').value).map(function (s) {
|
|
if (s.dk == 'D') {
|
|
return `
|
|
<tr style="border-bottom: 1px solid #333;">
|
|
<td>${s.kode}</td>
|
|
<td>${s.nama}</td>
|
|
<td style="text-align:center">${s.dk}</td>
|
|
<td class="nmap" data-kode="${s.kode}" style="text-align:right; white-space:nowrap;">Rp. 0</td>
|
|
<td style="text-align:right">-</td>
|
|
</tr>
|
|
`;
|
|
} else {
|
|
return `
|
|
<tr style="border-bottom: 1px solid #333;">
|
|
<td>${s.kode}</td>
|
|
<td>${s.nama}</td>
|
|
<td style="text-align:center">${s.dk}</td>
|
|
<td style="text-align:right">-</td>
|
|
<td style="text-align:right; white-space:nowrap;" class="nmap" data-kode="${s.kode}">Rp. 0</td>
|
|
</tr>
|
|
`;
|
|
}
|
|
}).join('') + `
|
|
<tr >
|
|
<td colspan="3">Grand Total</td>
|
|
<td style="text-align:right; white-space:nowrap;" class="totald">Rp. 0</td>
|
|
<td style="text-align:right; white-space:nowrap;" class="totalk">Rp. 0</td>
|
|
</tr>
|
|
`;
|
|
|
|
setTimeout(function(){
|
|
callback();
|
|
})
|
|
|
|
}
|
|
|
|
loader(function(){
|
|
setTimeout(function(){
|
|
loadData();
|
|
},0)
|
|
})
|
|
|
|
_id('play').addEventListener('click', function(){
|
|
loader(function () {
|
|
setTimeout(function () {
|
|
loadData();
|
|
}, 0)
|
|
})
|
|
});
|
|
|
|
function loadData() {
|
|
let lap = _val('laporantype') // return p (Pembantu), u (Utama)
|
|
let tahun = _val('tahun');
|
|
let bulan = _val('bulan');
|
|
let app = _val('app').indexOf(',') != -1? '' : _val('app');
|
|
let loader = cssLoader();
|
|
AuditDevQuery(`call laporan_neraca_saldo('${app}','${tahun}-${bulan}-01', '${tahun}')`, function(a){
|
|
loader.remove();
|
|
let dat = Array.from(document.querySelectorAll('.nmap'));
|
|
let getKode = lap == 'p' ? 'rek' : 'main';
|
|
let totals = {
|
|
debit: [],
|
|
kredit: []
|
|
}
|
|
for(let item of dat){
|
|
let get = a.cond(item.dataset.kode, getKode);
|
|
if(get.length > 0){
|
|
let dk = get[0].ds == 'D' ? 'debit':'kredit';
|
|
let getTotal = 'Rp '+get.sum(dk).currency();
|
|
totals[dk].push(get.sum(dk));
|
|
item.innerHTML = getTotal;
|
|
}
|
|
}
|
|
console.log(totals.debit.sum());
|
|
document.querySelector('.totald').innerHTML = 'Rp ' + totals.debit.sum().currency();
|
|
console.log(totals.kredit.sum());
|
|
document.querySelector('.totalk').innerHTML = 'Rp ' + totals.kredit.sum().currency();
|
|
})
|
|
};
|
|
|
|
|
|
_id('print').addEventListener('click', function () {
|
|
let layout = {
|
|
"p": "a4portrait.css",
|
|
"l": "a4landscape.css"
|
|
}
|
|
|
|
$('#report').printThis({
|
|
// base: 'https://jasonday.github.io/printThis',
|
|
header: null, // prefix to html
|
|
footer: null,
|
|
importCSS: true,
|
|
loadCSS: ["{{PATH}}/" + layout['p'], '{{PATH}}/assets/css/bootstrap.min.css'],
|
|
header: false,
|
|
});
|
|
}, false)
|
|
|
|
_id('exportExcel').addEventListener('click', function () {
|
|
xlsx("#report");
|
|
}, false);
|