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.

157 lines
5.4 KiB
JavaScript

import { accnil, _bbData2, _bbData, _perbandingan, _triwulan, ekuitas } from "{{PATH}}/assets-js/module-lap-bb.js?v={time}";
import { temp } from "{{PATH}}/assets-js/module-lap-filterekuitas.js?v={time}";
import { xlsx } from "{{PATH}}/assets-js/module-export-xlsx.js?v={time}";
import { Footer, _header, head, hitungNilaiBertambah } from "{{PATH}}/assets-js/module-lap-ekuitas-footer.js?v={time}";
const _main = JSON.parse(_id('main').innerHTML);
globalThis.acc = JSON.parse(_id('acc').innerHTML);
acc = acc.sortArrayObjectAsc('main')
_fullScreen();
temp();
_id('bulan').value = tanggal().normal.split('-')[1];
const loader = function (r,hl, callback) {
let year = _val('tahun');
let cek = (Number(_val('tahun')) - 1) == 2022? true: false;
let h = _id('report').querySelector('thead');
let d = _id('report').querySelector('tbody');
h.innerHTML = _header([
{
text: 'Uraian',
colspan: 1,
align: 'left'
}
, {
text: 'Tahun ' + year,
align: 'right',
colspan: 2
}
, {
text: 'Tahun ' + (year - 1),
align: 'right',
colspan: 2
}
]);
let totalR = 0;
let hub;
d.innerHTML = `
${ !hub? head(r,hl):``}
${(function(){
return r.ekuitas.map(function(xx,i){
let [x] = r.data.cond(xx.kode, 'rek');
let [y] = hl.data.cond(xx.kode, 'rek');
if(x){
;
totalR += Number(x.total);
return `
<tr style="border-bottom: 1px solid #ddd;">
<td style="padding-left: 10px;">${(i+1).numToAlpabet()}. ${x.nama}</td>
<td data-kode="${xx.kode}" year="2023" style="text-align:right;width:120px;">${( hitungNilaiBertambah(x, y) ).rp(0)}</td>
<td style="text-align:right;width:120px;"></td>
<td data-kode="${xx.kode}" year="2023" style="border-left:1px solid #333;text-align:right;width:120px;">${( Number(y['b13']) - Number(y['b00']) + (cek?y['bnw']:0) ).rp(0)}</td>
<td style="text-align:right;width:120px;"></td>
</tr>
`;
}else{
return `
<tr style="border-bottom: 1px solid #ddd;">
<td style="padding-left: 10px;">${(i+1).numToAlpabet()}. ${xx.nama}</td>
<td data-kode="${xx.kode}" year="2023" style="text-align:right;width:120px;">Rp 0</td>
<td style="text-align:right;width:120px;"></td>
<td data-kode="${xx.kode}" year="2023" style="border-left:1px solid #333;text-align:right;width:120px;">Rp 0</td>
<td style="text-align:right;width:120px;"></td>
</tr>
`;
}
}).join('')
})()}
<tr style="border-bottom: 1px solid #ddd;">
<td style="padding-left: 10px;">${(r.data.length+1).numToAlpabet()} SHU Berjalan</td>
<td data-kode="" year="2023" style="text-align:right;width:120px;">${Number(hitungNilaiBertambah(r.shu,'shu')).rp(0)}</td>
<td style="text-align:right;width:120px;"></td>
<td data-kode="" year="2023" style="border-left:1px solid #333;text-align:right;width:120px;">${Number(r.shu.b00).rp(0)}</td>
<td style="text-align:right;width:120px;"></td>
</tr>
${!hub? Footer(r,hl) : ``}
`;
setTimeout(function () {
callback();
})
}
const getNode = function (className, doc) {
let nod = document.querySelectorAll('.' + className);
if (doc !== undefined) {
nod = doc.querySelectorAll(className)
}
return Array.from(
nod
);
}
const setUpData = function () {
let laporantype = _id('laporantype').value;
if (laporantype == 'u') {
let total = getNode('top-total');
total.forEach(function (tot) {
let info = getNode('td', tot)[0];
info.innerHTML = info.innerHTML.replace(/Total/g, "");
getNode('td', tot).forEach(function (cj) {
cj.style.background = 'white';
})
});
} else {
getNode('data-top').forEach(function (j) {
j.style.display = 'table-row';
})
getNode('title-top').forEach(function (j) {
j.style.display = 'table-row';
})
}
}
function loadData(callback) {
let _load = cssLoader();
let tahun = _val('tahun');
let app = _val('app');
accnil([tahun, Number(tahun)-1], app, function(r, rl){
let data = r.ekuitas();
let datal = rl.ekuitas();
_load.remove();
callback(data, datal);
});
};
loadData(function(r, h){
loader(r,h,function () {
});
});
_id('play').addEventListener('click', function () {
loadData(function (r,h) {
loader(r,h,function () {
});
});
});
_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", 'Laba Rugi');
}, false);