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.

196 lines
7.2 KiB
JavaScript

globalThis.acc = JSON.parse(_id('acc').innerHTML);
var d = _id('report').querySelector('tbody')
_id('filterpath').innerHTML = `
<div style="display: block" width="500px;">
<div style="display:grid; grid-template-columns: 100px 100px 100px 80px">
<select id="app" class="form-control mr-1">
<option value="acc,usp">Induk & USP</option>
<option value="acc">Induk</option>
<option value="usp">USP</option>
</select>
<select id="bulan" class="form-control">
<option value="">...</option>
<option value="01">Januari</option>
<option value="02">Februari</option>
<option value="03">Maret</option>
<option value="04">April</option>
<option value="05">Mei</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">Agustus</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Desember</option>
</select>
<input id="tahun" class="form-control ml-1 mr-1" placeholder="..." type="number" value="${tanggal().normal.split("-")[0]}" />
<button id="play" class="btn btn-primary ml-1">
<i class="la la-play"></i>
</button>
</div>
</div>
`;
_id('bulan').value = tanggal().normal.split('-')[1];
var loader = function (callback) {
var nr = (function (v) {
if (v === 'usp' || v === 'acc') {
return acc.like('app', v);
}
return acc;
})(_id('app').value).filter(function(n){
if(n.nr === 'N'){
return n;
}
})
if(nr.cond('K','dk').length < nr.cond('D','dk').length){
d.innerHTML = nr.filter(function(s){
if(s.dk == 'D'){
return s;
}
}).map(function (s, i) {
return `
<tr>
<td style="font-size:12px;white-space:nowrap;">${s.kode}</td>
<td style="font-size:12px;white-space:nowrap;">${s.nama}</td>
<td class="nmap" data-kode="${s.kode}" style="font-size:12px;text-align:right; white-space:nowrap;">Rp. 0</td>
<td style="font-size:12px;white-space:nowrap;" posisi="${i}" data-name="kode"></td>
<td style="font-size:12px;white-space:nowrap;" posisi="${i}" data-name="akun"></td>
<td posisi="${i}" data-name="nom" class="nmap" data-kode="-" style="font-size:12px;text-align:right; white-space:nowrap;">Rp. 0</td>
</tr>
`;
}).join('') + `
<tr >
<td style="font-size:12px;" colspan="3">Grand Total</td>
<td style="text-align:right; white-space:nowrap;font-size:12px;" class="totald">Rp. 0</td>
<td style="text-align:right; white-space:nowrap;font-size:12px;" class="totalk">Rp. 0</td>
</tr>
`;
nr.filter(function(s){
if(s.dk == 'K'){
return s;
}
}).forEach(function (s, i) {
document.querySelector(`td[posisi="${i}"][data-name="kode"]`).innerHTML = s.kode;
})
}else{
var r = nr.filter(function(s){
if(s.dk == 'K'){
return s;
}
})
r.push({
kode: 'Laba Rugi',
nama: '-'
})
d.innerHTML = r.map(function (s, i) {
return `
<tr>
<td style="font-size:12px;white-space:nowrap;" posisi="${i}" data-name="kode"></td>
<td style="font-size:12px;white-space:nowrap;" posisi="${i}" data-name="akun"></td>
<td posisi="${i}" data-name="nom" class="nmap" data-kode="-" style="font-size:12px;white-space:nowrap;text-align:right; ">Rp. 0</td>
<td style="font-size:12px;white-space:nowrap;">${s.kode}</td>
<td style="font-size:12px;white-space:nowrap;">${s.nama}</td>
<td class="nmap" data-kode="${s.kode}" style="font-size:12px;text-align:right; white-space:nowrap;">Rp. 0</td>
</tr>
`;
}).join('') + `
<tr >
<td style="font-size:12px;white-space:nowrap;" colspan="2">Grand Total Aktiva</td>
<td style="font-size:12px;text-align:right; white-space:nowrap;" class="totald">Rp. 0</td>
<td style="font-size:12px;white-space:nowrap;" colspan="2">Grand Total Pasiva</td>
<td style="font-size:12px;text-align:right; white-space:nowrap;" class="totalk">Rp. 0</td>
</tr>
`;
nr.filter(function(s){
if(s.dk == 'D'){
return s;
}
}).forEach(function (s, i) {
document.querySelector(`td[posisi="${i}"][data-name="kode"]`).innerHTML = s.kode;
document.querySelector(`td[posisi="${i}"][data-name="akun"]`).innerHTML = s.nama;
document.querySelector(`td[posisi="${i}"][data-name="nom"]`).dataset.kode = s.kode;
})
}
setTimeout(function () {
callback();
})
}
loader(function () {
setTimeout(function () {
loadData();
}, 100)
})
_id('play').addEventListener('click', function () {
loader(function () {
setTimeout(function () {
loadData();
}, 100)
})
});
function loadData() {
_bbData(function (d, lb) {
var akunP = Array.from(document.querySelectorAll('td[data-kode]'))
var totd = document.querySelector('td.totald')
var totk = document.querySelector('td.totalk')
var totDeb = 0;
var totKre = 0;
akunP.forEach(function (k) {
var g = d.cond(k.dataset.kode, 'rek');
if (g.length > 0) {
g = g[0];
var total = g.total.number(2);
if (g.dk == 'D') {
totDeb += total
} else {
totKre += total
}
k.innerHTML = total.rp(0).replace(/IDR/g,"Rp");
}
});
totd.innerHTML = totDeb.rp(0).replace(/IDR/g,"Rp")
totk.innerHTML = totKre.rp(0).replace(/IDR/g,"Rp")
if(lb != undefined){
var t = document.querySelector('td[data-kode="Laba Rugi"]');
t.innerHTML = (lb * -1).rp().replace(/IDR/g,"Rp");
totk.innerHTML = (totKre + (lb * -1)).rp(0).replace(/IDR/g,"Rp")
}
}, function(){
var day = tanggal(_id('tahun').value+'-'+_id('bulan').value).normal3;
_id('tgl1').innerHTML = tanggal(day).normal2
_id('tgl2').innerHTML = tanggal(day).normal3
return ` WHERE lap_bb.tgl <= "${day}"
`;
})
}; loadData();
_id('print').addEventListener('click', function () {
var 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['l'], '{{PATH}}/assets/css/bootstrap.min.css'],
header: false,
});
}, false)