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.
1031 lines
36 KiB
JavaScript
1031 lines
36 KiB
JavaScript
export const sumTriwulan = function (a) {
|
|
let rasio = [3, 6, 9, 12];
|
|
let sum = {}
|
|
rasio.forEach(function (o) {
|
|
let l = 'b' + o.pad(2);
|
|
sum[l] = a.sum(l);
|
|
})
|
|
return [sum];
|
|
};
|
|
|
|
export const SumAccnil = function(a, yr,th){
|
|
let x = a.map(function(r){
|
|
let num = 0;
|
|
if (th > yr) {
|
|
num += r['b00'];
|
|
}
|
|
for (let j = 1; j <= 12; j++) {
|
|
let l = 'b' + j.pad(2);
|
|
num += r[l];
|
|
r[l] = num;
|
|
}
|
|
return r;
|
|
});
|
|
return sumTriwulan(x)
|
|
}
|
|
|
|
const accNillRes = function(res, year){
|
|
const [data, beban, acc, thn, bacc, busp, shuawal, totaleq, totaleqlast, totalshu, totalshulast] = res;
|
|
let dataCek = _val('app') ? ( _val('app').indexOf(',') != -1 ? acc : acc.cond( _val('app'), 'app') ) : acc.cond('acc', 'app');
|
|
let allData = dataCek.map(function(o){
|
|
let [dc] = data.cond(o.kode, 'rek');
|
|
return dc? dc : {
|
|
amain: o.amain
|
|
,asub: o.asub
|
|
,b00:0
|
|
,b01:0
|
|
,b02:0
|
|
,b03:0
|
|
,b04:0
|
|
,b05:0
|
|
,b06:0
|
|
,b07:0
|
|
,b08:0
|
|
,b09:0
|
|
,b10:0
|
|
,b11:0
|
|
,b12:0
|
|
,b13:0
|
|
,berjalan:0
|
|
,ba0:0
|
|
,bnw:0
|
|
,last: 0
|
|
,dk:o.dk
|
|
,kel:o.kel
|
|
,main:o.main
|
|
,nama:o.nama
|
|
,nama_main:o.nama_main
|
|
,nr:o.nr
|
|
,rek:o.kode
|
|
};
|
|
});
|
|
return {
|
|
totaleq: totaleq,
|
|
totalshu: totalshu,
|
|
totalshulast: totalshulast,
|
|
totaleqlast: totaleqlast,
|
|
tahun: thn[0].tahun,
|
|
thn: Number(year),
|
|
bacc:bacc,
|
|
busp:busp,
|
|
shuawal:shuawal,
|
|
dates: tanggal(thn[0].dates + '-01').milisecond ,
|
|
data: allData.map(function (d) {
|
|
let b13 = 0;
|
|
let berjalan = 0;
|
|
let [nr] = acc.cond(d.rek, 'kode');
|
|
d.nr = nr?nr.nr:'-';
|
|
d.dk = nr?nr.dk:'-';
|
|
d.amain = nr?nr.amain:'-';
|
|
d.asub = nr?nr.asub:'-';
|
|
d.last = Number(d['last']);
|
|
d.ba0 = Number(d['ba0']);
|
|
d.bnw = Number(d['bnw']);
|
|
for (let x = 0; x <= 12; x++) {
|
|
let pad = 'b' + x.pad(2);
|
|
if(x == 0){
|
|
if ( Number(year) > Number(thn[0].tahun) ){
|
|
b13 += Number(d[pad]);
|
|
}
|
|
}else{
|
|
b13 += Number(d[pad]);
|
|
berjalan += Number(d[pad]);
|
|
}
|
|
d[pad] = Number(d[pad]);
|
|
}
|
|
d['b13'] = b13;
|
|
d['berjalan'] = berjalan;
|
|
return d;
|
|
}),
|
|
neraca: function(){
|
|
let th = this.tahun
|
|
let yr = year;
|
|
let data = [].concat(this.data);
|
|
|
|
let kasbank = data.filter(function(r){
|
|
if (
|
|
r.nama_main.toLowerCase().indexOf('kas') != -1
|
|
|| r.nama_main.toLowerCase().indexOf('bank') != -1
|
|
)
|
|
{
|
|
return r;
|
|
}
|
|
})
|
|
.map(function(r){
|
|
let num = 0;
|
|
if (th > yr) {
|
|
num += r['b00'];
|
|
}
|
|
for (let j = 1; j <= 12; j++) {
|
|
let l = 'b' + j.pad(2);
|
|
num += r[l];
|
|
r[l] = num;
|
|
}
|
|
return r;
|
|
})
|
|
.map(function(v){
|
|
let w = {
|
|
main: v.amain,
|
|
sub: v.asub
|
|
}
|
|
w['b00'] = v['b00'];
|
|
for (let j = 1; j <= 12; j++) {
|
|
let l = 'b' + j.pad(2);
|
|
if (j % 3 == 0) {
|
|
w[l] = v[l];
|
|
}
|
|
}
|
|
return w;
|
|
});
|
|
|
|
let pointTriwulan = [0,3,6,9,12];
|
|
let kasBank = {}
|
|
|
|
pointTriwulan.forEach(function(w){
|
|
let l = 'b'+w.pad(2);
|
|
kasBank[l] = kasbank.sum(l);
|
|
})
|
|
|
|
// algoritma shu
|
|
let SHU = SumAccnil(data.cond('L', 'nr'), yr, th);
|
|
|
|
const dataNeraca = [].concat(data);
|
|
const dataGroup = [].concat(dataNeraca).map(function(r){
|
|
return {
|
|
amain:r.amain,
|
|
asub:r.asub
|
|
};
|
|
})
|
|
.removeDuplicate(['amain', 'asub']);
|
|
|
|
const dataReNew = function(data){
|
|
return JSON.parse( JSON.stringify(data) );
|
|
}
|
|
|
|
const newDataArray = dataReNew(data).map(function(o){
|
|
let c = {};
|
|
c.nama = o.nama,
|
|
c.rek = o.rek,
|
|
c.main = o.main,
|
|
c.nama_main = o.nama_main,
|
|
c.amain = o.amain,
|
|
c.amain = o.amain,
|
|
c.asub = o.asub
|
|
let q = 0;
|
|
for (let z = 0; z <= 12; z++) {
|
|
let l = 'b'+z.pad(2);
|
|
q += o[l];
|
|
c[l] = q;
|
|
}
|
|
|
|
return c;
|
|
});
|
|
|
|
const groupSum = dataGroup.map(function(r){
|
|
let h = {
|
|
amain: r.amain,
|
|
asub: r.asub
|
|
}
|
|
for (let index = 0; index <= 13; index++) {
|
|
let l = 'b'+index.pad(2);
|
|
h[l] = data.cond(r.asub, 'asub').sum(l)
|
|
}
|
|
return h
|
|
});
|
|
const groupVal = groupSum.map(function(r){
|
|
let num = 0;
|
|
if(th > yr){
|
|
num += r['b00'];
|
|
}
|
|
for (let j = 1; j <= 12; j++) {
|
|
let l = 'b' + j.pad(2);
|
|
num += r[l];
|
|
r[l] = num;
|
|
}
|
|
return r;
|
|
});
|
|
|
|
let groupNew = dataGroup.map(function(q){
|
|
|
|
let cop = {
|
|
'amain' : q.amain,
|
|
'asub' : q.asub
|
|
}
|
|
|
|
let p = newDataArray.cond(q.asub, 'asub').cond(q.amain, 'amain');
|
|
let shublb = 0;
|
|
if(q.amain === 'EKUITAS'){
|
|
let [c] = p.cond('315101', 'rek');
|
|
shublb = c && c.b00 ? c.b00 : 0;
|
|
}
|
|
for (let z = 0; z <= 12; z++) {
|
|
let l = 'b'+z.pad(2);
|
|
if(q.amain === 'EKUITAS' && z == 0){
|
|
cop[l] = p.sum(l) - shublb;
|
|
}else{
|
|
cop[l] = p.sum(l)
|
|
}
|
|
}
|
|
|
|
return cop;
|
|
});
|
|
const triwulan = groupNew.map(function(v,i){
|
|
let w ={
|
|
main: v.amain,
|
|
sub: v.asub
|
|
}
|
|
w['b00'] = v['b00'];
|
|
for (let j = 1; j <= 12; j++) {
|
|
let l = 'b' + j.pad(2);
|
|
if(j%3 == 0){
|
|
w[l] = v[l];
|
|
}
|
|
}
|
|
return w;
|
|
});
|
|
|
|
|
|
return {
|
|
shuTriwulan: SHU,
|
|
kasBank: kasBank,
|
|
triwulan: triwulan
|
|
};
|
|
},
|
|
ekuitas:function(){
|
|
let totaleq = this.totaleq;
|
|
let totalshu = this.totalshu;
|
|
let totalshulast = this.totalshulast;
|
|
let totaleqlast = this.totaleqlast;
|
|
let tahun = Number(this.tahun) - 1;
|
|
let tahunx = Number(this.tahun);
|
|
let shubl = _json('dataprofile').like('kode', 'shubl').map(function(e){
|
|
e.kode = e.kode.indexOf('induk') != -1?'acc':'usp';
|
|
return e;
|
|
});
|
|
let thn = this.thn;
|
|
let shuawal = this.shuawal;
|
|
let acc = this.acc;
|
|
let neraca = [].concat(this.data).filter(function(w){
|
|
if(w.nr == 'N'){
|
|
return w;
|
|
}
|
|
});
|
|
|
|
let lbr = [].concat(this.data).filter(function(w){
|
|
if(w.nr == 'L'){
|
|
return w;
|
|
}
|
|
}).length;
|
|
|
|
let twoyshu = (thn - 2) > tahun ? shubl.map(function(c){
|
|
let total = 0;
|
|
let op = neraca.cond(c.data, 'rek');
|
|
let [g] = op.length>0?op:[];
|
|
if(g){
|
|
if(g && typeof g === 'object'){
|
|
total = g.b00;
|
|
}
|
|
}
|
|
return {
|
|
kode: c.kode,
|
|
total: total,
|
|
}
|
|
}).sum('total') : 0;
|
|
|
|
let twoyshucek = shubl.map(function(c){
|
|
let op = neraca.cond(c.data, 'rek');
|
|
let [g] = op.length>0?op:[];
|
|
return g?g.bnw:0;
|
|
}).sum();
|
|
|
|
let shua = shubl.map(function(c){
|
|
let total = 0;
|
|
let op = neraca.cond(c.data, 'rek');
|
|
let [g] = op.length>0?op:[];
|
|
if(g){
|
|
if(g && typeof g === 'object'){
|
|
for (let q = 1; q <= 12; q++) {
|
|
let cname = 'b'+q.pad(2);
|
|
total += Number(g[cname]);
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
kode: c.kode,
|
|
total: total,
|
|
}
|
|
}).sum('total') * -1;
|
|
let shu = [].concat(this.data).filter(function(w){
|
|
if(w.nr == 'L'){
|
|
return w;
|
|
}
|
|
})
|
|
.map(function(d){
|
|
for (let x = 0; x <= 13; x++) {
|
|
let pad = 'b' + x.pad(2);
|
|
if(d.dk == 'K'){
|
|
if(x==0){
|
|
d['ba0'] = Number(d['ba0']);
|
|
d[pad] = Number(d[pad]);
|
|
}else{
|
|
d[pad] = Number(d[pad]);
|
|
}
|
|
}else{
|
|
if(x==0){
|
|
d['ba0'] = Number(d['ba0']) * -1;
|
|
d[pad] = Number(d[pad]) * -1;
|
|
}else{
|
|
d[pad] = Number(d[pad]) * -1;
|
|
}
|
|
}
|
|
}
|
|
return d;
|
|
})
|
|
.map(function(d){
|
|
let e = 0;
|
|
for (let x = 1; x <= 12; x++) {
|
|
let pad = 'b' + x.pad(2);
|
|
e += d[pad];
|
|
d[pad] = e;
|
|
}
|
|
return d;
|
|
});
|
|
|
|
let shuData = {}
|
|
shuData['ba0'] = twoyshu;
|
|
shuData['b00'] = shua;
|
|
for (let x = 1; x <= 13; x++) {
|
|
let pad = 'b' + x.pad(2);
|
|
shuData[pad] = shu.sum(pad);
|
|
};
|
|
if(thn == tahunx){
|
|
shuData.b00 += twoyshucek;
|
|
}
|
|
if(thn > tahunx){
|
|
shuData.ba0 += twoyshucek;
|
|
}
|
|
|
|
let data = this.data.filter(function(r){
|
|
let [cek] = acc.cond(r.rek, 'kode');
|
|
if(cek.ekuitas == 1){
|
|
return r;
|
|
}
|
|
})
|
|
.map(function(d){
|
|
let e = 0;
|
|
for (let x = 1; x <= 12; x++) {
|
|
let pad = 'b' + x.pad(2);
|
|
e += d[pad];
|
|
d[pad] = e;
|
|
}
|
|
return d;
|
|
});
|
|
let typeApp = typeof _val === 'function'?
|
|
( _val('app') ? _val('app') : null ) : null;
|
|
return {
|
|
totaleq: totaleq,
|
|
totalshu: totalshu,
|
|
totalshulast: totalshulast,
|
|
totaleqlast: totaleqlast,
|
|
shu: shuData,
|
|
data: data,
|
|
ekuitas: (typeApp.indexOf(',') === -1 ? acc.cond(typeApp, 'app') : acc).filter(function(r){
|
|
if(r.ekuitas == 1){
|
|
return r
|
|
}
|
|
})
|
|
}
|
|
},
|
|
beban:beban,
|
|
acc:acc,
|
|
datanumber: function(){
|
|
let data = [].concat(this.data).map(function(d){
|
|
for (let x = 0; x <= 13; x++) {
|
|
let pad = 'b'+x.pad(2);
|
|
d[pad] = Number(d[pad]);
|
|
}
|
|
return d;
|
|
});
|
|
return data;
|
|
},
|
|
lastBBUpdate: function(){
|
|
let data = [].concat(this.data);
|
|
let acc = this.acc;
|
|
let newData = data.map(function(w){
|
|
let [dataR] = acc.cond(w.rek, 'kode');
|
|
return {
|
|
kode: w.rek,
|
|
main: w.main,
|
|
nama: w.nama,
|
|
nama_main: w.nama_main,
|
|
nama_main: w.nama_main,
|
|
tahun: year,
|
|
total: Number(w.b13),
|
|
dk: dataR?dataR.dk:null,
|
|
nr: dataR?dataR.nr:null,
|
|
app: dataR?dataR.app:null
|
|
}
|
|
});
|
|
return newData;
|
|
},
|
|
bukubesar: function(){
|
|
let data = this.datanumber();
|
|
return data;
|
|
}
|
|
, shu: function(){
|
|
let accLabaRugi = this.acc
|
|
.filter(function(r){
|
|
if(r.nr.toLowerCase() == 'l'){
|
|
return r;
|
|
}
|
|
});
|
|
let data = this.bukubesar()
|
|
.filter(function(c){
|
|
let cek = c.rek;
|
|
if(accLabaRugi.cond(cek, 'kode').length > 0){
|
|
return c;
|
|
}
|
|
});
|
|
let shu = {};
|
|
data.forEach(function(w){
|
|
for(let r=0;r<=13;r++){
|
|
let pad = 'b'+r.pad(2);
|
|
if(!shu[pad]){
|
|
shu[pad] = [];
|
|
}
|
|
shu[pad].push(w[pad]);
|
|
}
|
|
});
|
|
return Object.keys(shu)
|
|
.map(function(r){
|
|
return shu[r].sum();
|
|
})
|
|
}
|
|
};
|
|
}
|
|
|
|
const _slice7 = function(w){
|
|
let pembagi = 11;
|
|
let n = w.length / pembagi;
|
|
let newArray = [];
|
|
for(let x=0; x<n; x++){
|
|
let ar = [];
|
|
for (let j = 0; j < pembagi; j++) {
|
|
let h = j+(x*pembagi);
|
|
ar.push(w[h]);
|
|
}
|
|
newArray.push(ar);
|
|
}
|
|
return newArray;
|
|
}
|
|
|
|
export const accnil = function(year, app, callback) {
|
|
|
|
if(!year){
|
|
year = tanggal().normal.split('-')[0];
|
|
}
|
|
if(!app){
|
|
app = "acc";
|
|
}
|
|
|
|
let condition = "";
|
|
|
|
if(app == 'usp'){
|
|
condition = ` AND acc.app = 'usp' `;
|
|
}else if(app == 'acc'){
|
|
condition = ` AND acc.app = 'acc' `;
|
|
}
|
|
|
|
year = Array.isArray(year) ? year: [year];
|
|
|
|
let query = `
|
|
${year.map(function(yr){
|
|
return `
|
|
SELECT
|
|
main
|
|
, rek
|
|
, nama_main
|
|
, nama
|
|
, sum(if(bln = 'a0', total, 0)) ba0
|
|
, sum(if(bln = '00', total, 0)) b00
|
|
, sum(if(bln = '01', total, 0)) b01
|
|
, sum(if(bln = '02', total, 0)) b02
|
|
, sum(if(bln = '03', total, 0)) b03
|
|
, sum(if(bln = '04', total, 0)) b04
|
|
, sum(if(bln = '05', total, 0)) b05
|
|
, sum(if(bln = '06', total, 0)) b06
|
|
, sum(if(bln = '07', total, 0)) b07
|
|
, sum(if(bln = '08', total, 0)) b08
|
|
, sum(if(bln = '09', total, 0)) b09
|
|
, sum(if(bln = '10', total, 0)) b10
|
|
, sum(if(bln = '11', total, 0)) b11
|
|
, sum(if(bln = '12', total, 0)) b12
|
|
, sum(if(bln = '13', total, 0)) b13
|
|
, sum(if(bln = 'nw', total, 0)) bnw
|
|
, sum(if(bln = 'last', total, 0)) last
|
|
FROM (
|
|
(
|
|
SELECT 'a0' bln, main, nama_main, dk, kode rek, nama, total FROM bbtahunan acc
|
|
WHERE tahun = ${(Number(yr - 2))} ${condition}
|
|
)
|
|
UNION ALL
|
|
(
|
|
SELECT '00' bln, main, nama_main, dk, kode rek, nama, total FROM bbtahunan acc
|
|
WHERE tahun = ${(Number(yr - 1))} ${condition}
|
|
)
|
|
UNION ALL
|
|
(
|
|
SELECT 'nw' bln, main, nama_main, dk, kode rek, nama, total FROM bbtahunan acc
|
|
WHERE tahun = (SELECT (tahun -1) tahun FROM tahun_awal) ${condition}
|
|
)
|
|
UNION ALL
|
|
(
|
|
SELECT
|
|
bln, main, nama_main, dk, rek, nama, total
|
|
FROM view_bbbulanan_pertahun acc WHERE thn = ${Number(yr - 1)} ${condition}
|
|
)
|
|
UNION ALL
|
|
(SELECT bln, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT
|
|
lpad( month(tgl),2,0) bln
|
|
, main
|
|
, nama_main
|
|
, dk
|
|
, rekkredit rek
|
|
, nama, sum(if(dk = 'D', kredit*-1,kredit)) total
|
|
FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
WHERE tgl LIKE '${yr}%' ${condition}
|
|
GROUP BY rekkredit, bln
|
|
UNION ALL
|
|
SELECT
|
|
lpad( month(tgl),2,0) bln
|
|
, main
|
|
,nama_main
|
|
, dk
|
|
, rekdebit rek
|
|
, nama
|
|
, sum(if(dk <> 'D', debit *-1,debit)) total
|
|
FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
WHERE tgl LIKE '${yr}%' ${condition}
|
|
GROUP BY rekdebit, bln
|
|
) a GROUP BY rek, bln HAVING main IS NOT NULL
|
|
ORDER BY bln ASC, main ASC, rek ASC)
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT * FROM setbeban
|
|
[;]
|
|
SELECT * FROM akn
|
|
[;]
|
|
SELECT * FROM tahun_awal
|
|
[;]
|
|
SELECT * FROM v_beban_acc
|
|
[;]
|
|
SELECT * FROM v_beban_usp
|
|
[;]
|
|
SELECT * FROM (
|
|
SELECT 'usp' app, 2022 tahun, ifnull((SELECT data FROM \`profile\` WHERE kode = 'shu usp'), 0) total
|
|
UNION ALL
|
|
SELECT 'acc' app, 2022 tahun, ifnull((SELECT data FROM \`profile\` WHERE kode = 'shu induk'), 0) total
|
|
) a
|
|
[;]
|
|
select * FROM total_ekuitas WHERE tahun = ${yr}
|
|
[;]
|
|
select * FROM total_ekuitas WHERE tahun = ${yr-1}
|
|
[;]
|
|
SELECT * FROM total_shu WHERE thn = ${yr}
|
|
[;]
|
|
SELECT * FROM total_shu WHERE thn = ${yr - 1}
|
|
`;
|
|
}).join('[;]')}
|
|
`;
|
|
AuditDevQuery(query, function(res){
|
|
let g = _slice7(res).map(function(jj, i){
|
|
return accNillRes(jj, year[i]);
|
|
});
|
|
callback(...g);
|
|
});
|
|
}
|
|
|
|
|
|
|
|
export const _perbandingan = function (callback, option, option2) {
|
|
let x = (function () {
|
|
if (option == undefined) {
|
|
return '';
|
|
}
|
|
if (typeof option === 'function') {
|
|
return option();
|
|
} else {
|
|
return '';
|
|
}
|
|
})();
|
|
let y = (function () {
|
|
if (option2 == undefined) {
|
|
return '';
|
|
}
|
|
if (typeof option2 === 'function') {
|
|
return option2();
|
|
} else {
|
|
return '';
|
|
}
|
|
})();
|
|
let ld = cssLoader();
|
|
|
|
let kk = (function(){
|
|
if(Number(_val('tahun')) > thprogram ){
|
|
return `
|
|
SELECT main, nama_main, dk, kode rek, nama, total FROM bbtahunan WHERE tahun = '${Number(_val('tahun')) - 1}' AND app = '${_val('app')}' AND nr = 'N'
|
|
UNION ALL
|
|
`
|
|
}else{
|
|
return ``;
|
|
}
|
|
})();
|
|
|
|
let b = `
|
|
SELECT main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
${kk}
|
|
SELECT main,nama_main, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit ${x}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT main,nama_main, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit ${x}
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total * -1,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit ${x}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit ${x}
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
[;]
|
|
SELECT main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
${kk}
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT 0 total
|
|
[;]
|
|
SELECT nr, dk, main, nama_main, dk, kode rek, nama, total FROM bbtahunan acc
|
|
WHERE tahun = ${(Number(_val('tahun') - 1))} ${
|
|
_val('app') == 'usp' ? ` AND app = 'usp' ` : _val('app') == 'acc' ? ` AND app = 'acc' `: ''
|
|
}
|
|
[;]
|
|
SELECT
|
|
a.kode,
|
|
b.main,
|
|
b.nama,
|
|
b.nama_main,
|
|
b.dk,
|
|
b.nr,
|
|
b.app
|
|
FROM (
|
|
SELECT
|
|
if(substring_index(kode, "bl", -1) = 'usp', 'usp', 'acc') app
|
|
, data kode
|
|
FROM profile
|
|
WHERE kode LIKE 'shubl%'
|
|
) a LEFT JOIN acc b ON a.kode = b.kode
|
|
`;
|
|
AuditDevQuery(b, function (ax) {
|
|
let [a, lb, x, bb, b, kd] = ax;
|
|
|
|
let [kdd] = kd.cond(_val('app'), 'app');
|
|
|
|
if (lb != undefined) {
|
|
ld.remove();
|
|
callback(a, lb[0].total.number(2), b.cond('N', 'nr').filter(function(q){
|
|
if(q.rek != kdd.kode){
|
|
return q;
|
|
}
|
|
}), b.cond('N', 'nr').filter(function(q){
|
|
if(q.rek == kdd.kode){
|
|
return q;
|
|
}
|
|
}).sum('total') * -1 );
|
|
} else {
|
|
ld.remove();
|
|
callback(a);
|
|
}
|
|
})
|
|
};
|
|
|
|
export const _bbData = function (callback, option, option2, option3 = 1) {
|
|
let x = (function () {
|
|
if (option == undefined) {
|
|
return '';
|
|
}
|
|
if (typeof option === 'function') {
|
|
return option();
|
|
} else {
|
|
return '';
|
|
}
|
|
})();
|
|
let y = (function(){
|
|
if (option2 == undefined) {
|
|
return '';
|
|
}
|
|
if (typeof option2 === 'function') {
|
|
return option2();
|
|
} else {
|
|
return '';
|
|
}
|
|
})();
|
|
|
|
let ld = cssLoader();
|
|
let a = option3 == 1 ? `
|
|
SELECT main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
${y}
|
|
SELECT main,nama_main, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit ${x}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT main,nama_main, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit ${x}
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total * -1,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit ${x}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit ${x}
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
`: y ;
|
|
console.log(a);
|
|
AuditDevQuery(a, function (s) {
|
|
let [a,lb] = s;
|
|
console.log(a,lb);
|
|
if (lb.length > 0) {
|
|
let [l] = lb;
|
|
ld.remove();
|
|
callback(a, l.total.number(2));
|
|
} else {
|
|
ld.remove();
|
|
callback(a);
|
|
}
|
|
})
|
|
};
|
|
|
|
|
|
|
|
export const _triwulan = function (callback, year, option) {
|
|
let xx = (function () {
|
|
if (option == undefined) {
|
|
return '';
|
|
}
|
|
if (typeof option === 'function') {
|
|
return option();
|
|
} else {
|
|
return '';
|
|
}
|
|
})();
|
|
let ld = cssLoader();
|
|
|
|
let mnt = ['03', '06', '09', '12'];
|
|
|
|
let kk = (function(){
|
|
if(Number(_val('tahun')) > thprogram ){
|
|
return `
|
|
SELECT main, nama_main, dk, kode rek, nama, total FROM bbtahunan WHERE tahun = '${Number(_val('tahun')) - 1}' AND app = '${_val('app')}' AND nr = 'N'
|
|
UNION ALL
|
|
`
|
|
}else{
|
|
return ``;
|
|
}
|
|
})();
|
|
|
|
let b = mnt.map(function(x){
|
|
return `
|
|
SELECT main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
${kk}
|
|
SELECT main,nama_main, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl like "${tanggal(year+'-'+x).normal3.split('-')[0]}%" AND lap_bb.tgl <= "${tanggal(year+'-'+x).normal3}" ${xx}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT main,nama_main, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl like "${tanggal(year+'-'+x).normal3.split('-')[0]}%" AND lap_bb.tgl <= "${tanggal(year+'-'+x).normal3}" ${xx}
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total * -1,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl like "${tanggal(year+'-'+x).normal3.split('-')[0]}%" AND lap_bb.tgl <= "${tanggal(year+'-'+x).normal3}" ${xx}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl like "${tanggal(year+'-'+x).normal3.split('-')[0]}%" AND lap_bb.tgl <= "${tanggal(year+'-'+x).normal3}" ${xx}
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
`
|
|
}).join('[;]');
|
|
AuditDevQuery(b, function (ax) {
|
|
ld.remove();
|
|
callback(ax);
|
|
})
|
|
};
|
|
|
|
export const _bbData2 = function (arrayCond, callback) {
|
|
|
|
let ld = cssLoader();
|
|
let a = `
|
|
${arrayCond.map(function(u){
|
|
return `
|
|
SELECT main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT main,nama_main, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl <= "${(function(){
|
|
return tanggal(u).normal3
|
|
})('')}"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT main,nama_main, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl <= "${(function(){
|
|
return tanggal(u).normal3
|
|
})('')}"
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total * -1,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl <= "${(function(){
|
|
return tanggal(u).normal3
|
|
})('')}"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl <= "${(function(){
|
|
return tanggal(u).normal3
|
|
})('')}"
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
`;
|
|
}).join('[;]')}
|
|
`;
|
|
AuditDevQuery(a, function (a) {
|
|
let g = arrayCond.map(function(c, i){
|
|
let x = (i * 2);
|
|
let y = (i * 2) + 1;
|
|
return {
|
|
data : a[x],
|
|
shu : a[y][0].total.number(2)
|
|
}
|
|
});
|
|
ld.remove();
|
|
callback(g);
|
|
})
|
|
};
|
|
|
|
export const ekuitas = function(tgl, callback){
|
|
let [lastYear] = tgl.split('-');
|
|
lastYear = Number(lastYear) - 1;
|
|
let lastDate = tanggal(lastYear+'-12').normal3;
|
|
let q = `
|
|
SELECT ifnull((SELECT sum(total) total FROM (
|
|
SELECT ekuitas, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekkredit rek, acc.nama, sum(if(acc.dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${lastDate}"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekdebit rek, acc.nama, sum(if(acc.dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${lastDate}"
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek HAVING ekuitas = 1
|
|
) a),0) total
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total * -1,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit WHERE lap_bb.tgl <= "2022-12-31"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit WHERE lap_bb.tgl <= "2022-12-31"
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
[;]
|
|
SELECT ekuitas, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekkredit rek, acc.nama, sum(if(acc.dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl}"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekdebit rek, acc.nama, sum(if(acc.dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl}"
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek HAVING ekuitas = 1
|
|
[;]
|
|
SELECT ekuitas, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekkredit rek, acc.nama, sum(if(acc.dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${lastDate}"
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT mainacc.ekuitas, main,nama_main, acc.dk, rekdebit rek, acc.nama, sum(if(acc.dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${lastDate}"
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek HAVING ekuitas = 1
|
|
`;
|
|
AuditDevQuery(q,function(data){
|
|
let y = [];
|
|
let lg = data.length / 4;
|
|
for (let z = 0; z < lg; z++) {
|
|
let a1 = (z * 2);
|
|
let a2 = (z * 2) + 1;
|
|
let a3 = (z * 2) + 2;
|
|
let a4 = (z * 2) + 3;
|
|
let x = {
|
|
ekl:data[a1]
|
|
, shu:data[a2]
|
|
, ak1:data[a3]
|
|
, ak2:data[a4]
|
|
};
|
|
y.push(x);
|
|
};
|
|
callback(y);
|
|
});
|
|
}
|
|
|
|
export const aruskas = function(tgl, callback){
|
|
let thisYear = (tgl.split('-')[0].number(2));
|
|
let before = (tgl.split('-')[0].number(2) - 1) + '-12';
|
|
let tgl2 = tanggal( before ).normal3;
|
|
let tgl1 = tanggal(tgl).normal3;
|
|
|
|
let type = '';
|
|
if (_id('app')){
|
|
type = _id('app').value;
|
|
}
|
|
|
|
let CustQuery = "";
|
|
|
|
type == 'acc'? CustQuery = " AND acc.app = 'acc' ":null;
|
|
type == 'usp'? CustQuery = " AND acc.app = 'usp' ":null;
|
|
|
|
let query = `
|
|
SELECT kel, main, nama, sum(total) total FROM (
|
|
SELECT kel, ak, main, nama_main, dk, rek, nama, if(main = '1111' OR main ='1112', 0, ifnull(if(dk = 'D',total*-1, total),0)) total FROM (
|
|
SELECT kel, ak, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT mainacc.kel, mainacc.ak, main,nama_main, acc.dk, rekkredit rek, acc.nama, sum(if(acc.dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl1}" ${CustQuery}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT mainacc.kel, mainacc.ak, main,nama_main, acc.dk, rekdebit rek, acc.nama, sum(if(acc.dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl1}" ${CustQuery}
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek HAVING ak = 1
|
|
) a
|
|
UNION ALL
|
|
SELECT kel, ak, main, nama_main, dk, rek, nama, ifnull(if(dk = 'K',total*-1, total),0) total FROM (
|
|
SELECT kel, ak, main,nama_main, dk, rek,nama,sum(total) total FROM (
|
|
SELECT mainacc.kel, mainacc.ak, main,nama_main, acc.dk, rekkredit rek, acc.nama, sum(if(acc.dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl2}" ${CustQuery}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT mainacc.kel, mainacc.ak, main,nama_main, acc.dk, rekdebit rek, acc.nama, sum(if(acc.dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
LEFT JOIN mainacc ON mainacc.kode = acc.main
|
|
WHERE lap_bb.tgl <= "${tgl2}" ${CustQuery}
|
|
GROUP BY rekdebit
|
|
) a GROUP BY rek HAVING ak = 1
|
|
) a
|
|
) a GROUP BY main
|
|
[;]
|
|
SELECT ifnull((SELECT sum(if(dk = 'k', total,total)) total FROM (
|
|
SELECT nr, dk, rekkredit rek, nama, sum(if(dk = 'D', kredit*-1,kredit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekkredit
|
|
WHERE lap_bb.tgl >= '${thisYear}-01-01' AND lap_bb.tgl <= '${tgl1}' ${CustQuery}
|
|
GROUP BY rekkredit
|
|
UNION ALL
|
|
SELECT nr, dk, rekdebit rek, nama, sum(if(dk <> 'D', debit *-1,debit)) total FROM lap_bb
|
|
LEFT JOIN acc ON acc.kode = lap_bb.rekdebit
|
|
WHERE lap_bb.tgl >= '${thisYear}-01-01' AND lap_bb.tgl <= '${tgl1}' ${CustQuery}
|
|
GROUP BY rekdebit
|
|
) a WHERE nr = 'L'),0) total
|
|
`;
|
|
AuditDevQuery(query, callback);
|
|
}
|