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.
216 lines
7.1 KiB
JavaScript
216 lines
7.1 KiB
JavaScript
globalThis.acc = JSON.parse(_id('acc').innerHTML);
|
|
_id('tgl1').innerHTML = tanggal().normal2
|
|
_id('tgl2').innerHTML = tanggal().normal3
|
|
|
|
_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 d = _id('report').querySelector('tbody')
|
|
var nm = ''
|
|
var last = ''
|
|
d.innerHTML = (function (v) {
|
|
acc.sortArrayObjectAsc('main')
|
|
if (v === 'usp' || v === 'acc') {
|
|
return acc.like('app', v);
|
|
}
|
|
console.log(acc);
|
|
return acc;
|
|
})(_id('app').value).cond('L', 'nr').map(function (s, i) {
|
|
if (s.dk == 'D') {
|
|
var t = ''
|
|
var gh = ''
|
|
if (nm != s.main) {
|
|
|
|
if (i != 0) {
|
|
if (nm != s.main) {
|
|
gh = `
|
|
<tr>
|
|
<td style="background:#dfdfff;" colspan="2"> Total ${last.split(' - ')[1]}</td>
|
|
<td style="background:#dfdfff; text-align: right;" ntot="${last.split(' - ')[0]}">Rp. 0</td>
|
|
</tr>
|
|
`;
|
|
}
|
|
}
|
|
|
|
t = `
|
|
<tr>
|
|
<td colspan="3">${s.main} ${s.nama_main}</td>
|
|
</tr>
|
|
`
|
|
nm = s.main;
|
|
}
|
|
var ff = `
|
|
${gh}
|
|
${t}
|
|
<tr>
|
|
<td></td>
|
|
<td>${s.kode} - ${s.nama}</td>
|
|
<td class="nmap" data-kode="${s.kode}" style="text-align:right;white-space:nowrap;">Rp. 0.00</td>
|
|
</tr>
|
|
`;
|
|
last = `${s.main} - ${s.nama_main}`
|
|
return ff;
|
|
} else {
|
|
var t = ''
|
|
var gh = ''
|
|
if (i != 0) {
|
|
if (nm != s.main) {
|
|
gh = `
|
|
<tr>
|
|
<td style="background:#dfdfff;" colspan="2"> Total ${last.split(' - ')[1]}</td>
|
|
<td style="background:#dfdfff;text-align: right;" ntot="${last.split(' - ')[0]}">Rp. 0</td>
|
|
</tr>
|
|
`;
|
|
}
|
|
}
|
|
if (nm != s.main) {
|
|
t = `
|
|
<tr>
|
|
<td colspan="3">${s.main} ${s.nama_main}</td>
|
|
</tr>
|
|
`
|
|
nm = s.main;
|
|
}
|
|
var ff = `
|
|
${gh}
|
|
${t}
|
|
<tr>
|
|
<td></td>
|
|
<td>${s.kode} - ${s.nama}</td>
|
|
<td style="text-align:right;white-space:nowrap;" class="nmap" data-kode="${s.kode}">Rp. 0.00</td>
|
|
</tr>
|
|
`;
|
|
last = `${s.main} - ${s.nama_main}`
|
|
return ff;
|
|
}
|
|
}).join('') + `
|
|
<tr>
|
|
<td style="background:#dfdfff;" colspan="2"> Total ${last.split(' - ')[1]}</td>
|
|
<td style="background:#dfdfff; text-align: right;white-space:nowrap;" ntot="${last.split(' - ')[0]}">Rp. 0</td>
|
|
</tr>
|
|
<tr >
|
|
<td style="background:#ccccff;" colspan="2">Laba Rugi</td>
|
|
<td style="background:#ccccff;text-align:right;white-space:nowrap;" id="lbr">Rp. 0</td>
|
|
</tr>
|
|
`;
|
|
|
|
|
|
setTimeout(function () {
|
|
callback();
|
|
})
|
|
|
|
}
|
|
|
|
function loadData() {
|
|
_bbData(function (d) {
|
|
var acc = _master('acc','acc');
|
|
setTimeout(function() {
|
|
|
|
var akunP = Array.from(document.querySelectorAll('td[data-kode]'))
|
|
var totd = document.querySelector('td.totald')
|
|
var totk = document.querySelector('td.totalk')
|
|
var lbr = _id("lbr")
|
|
var totDeb = 0;
|
|
var totKre = 0;
|
|
var totAll = 0;
|
|
var tot = {};
|
|
akunP.forEach(function (k) {
|
|
var g = d.cond(k.dataset.kode, 'rek');
|
|
var main = _master('acc','acc').cond(k.dataset.kode, 'kode').singleItem('main');
|
|
if(tot[main] == undefined){
|
|
tot[main] = 0;
|
|
};
|
|
if (g.length > 0) {
|
|
g = g[0];
|
|
var total = g.total.number(2);
|
|
tot[main] += total;
|
|
if (g.dk == 'D') {
|
|
totAll += total
|
|
totDeb += total
|
|
} else {
|
|
totKre += total
|
|
totAll += total
|
|
}
|
|
k.innerHTML = total.rp(0).replace(/IDR/g,'Rp');
|
|
}
|
|
});
|
|
console.log(tot);
|
|
Array.from(_selectAll('[ntot]')).forEach(function(c){
|
|
var nm = c.getAttribute('ntot');
|
|
var val = tot[nm];
|
|
c.innerHTML = val.rp(0).replace(/IDR/g,'Rp');
|
|
})
|
|
//totd.innerHTML = totDeb.rp(0).replace(/IDR/g,'Rp')
|
|
//totk.innerHTML = totKre.rp(0).replace(/IDR/g,'Rp')
|
|
lbr.innerHTML = totAll.rp(0).replace(/IDR/g,'Rp');
|
|
}, 10);
|
|
}, 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}"
|
|
`;
|
|
})
|
|
};
|
|
|
|
|
|
loader(function () {
|
|
setTimeout(function () {
|
|
loadData();
|
|
}, 100)
|
|
})
|
|
|
|
_id('play').addEventListener('click', function () {
|
|
loader(function () {
|
|
setTimeout(function () {
|
|
loadData();
|
|
}, 100)
|
|
})
|
|
});
|
|
|
|
_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['p'], '{{PATH}}/assets/css/bootstrap.min.css'],
|
|
header: false,
|
|
});
|
|
}, false)
|