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

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);
}