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.

440 lines
15 KiB
PHTML

@php
use NN\CookieHandler as Cookie;
use NN\Module\DB;
use NN\Module\View;
@endphp
<script>
const acc = JSON.parse(_id('acc').innerHTML);
_fullScreen();
$(document).ready(function(){
window.BukuBesar = _Report
.qr(`
{query}
`)
.debug(true)
.filterConf([
{
title: 'Transaksi',
type: 'select',
name: 'transaksi',
textonly: true,
row: 4,
data: [
{
id: 'mts',
text: 'Transaksi Keuangan (Kas In, Kas Out, Beban)'
}
,{
id: 'bb',
text: 'Transaksi Jurnal Memorial'
}
,{
id: 'mpinjam',
text: 'Transaksi Pinjaman'
}
,{
id: 'mags',
text: 'Transaksi Angsuran'
}
,{
id: 'msimpan',
text: 'Transaksi Simpanan'
}
],
info: 'Menampikan data transaksi mana yang akan di posting',
readonly: false,
action: function () {
},
}
,{
title: 'Tanggal Mulai',
type: 'date',
name: 'startdate',
row: 4,
nomax: true,
info: 'Tanggal akhir data ditampilkan',
readonly: false,
action: function () {
},
}
,{
title: 'Tanggal Akhir',
type: 'date',
name: 'enddate',
row: 4,
nomax: true,
info: 'Tanggal akhir data ditampilkan',
readonly: false,
action: function () {
},
}
])
.customeButton(function(element, obj){
element.child(
el('p').css('font-style', 'italic').text('Untuk update jurnal silahkan setting filter dulu tunggu data di tampilkan kemudian klik tombol posting jurnal dibawah')
);
element.child(
el('button').class("btn btn-clear btn-sm")
.child(
el('i').class('ft-upload-cloud').css('margin-right', '5px')
)
.child(
el('span').text('Posting jurnal')
)
.click(function(){
var t = `DELETE FROM lap_bb WHERE table_name = "${_id('transaksi').value}" `;
var qr = obj.data.qrData.ToInsert('lap_bb');
if(
_id('transaksi').value == 'mpinjam'
){
qr = obj.data.qrData.removeItemObject('pokok')
.removeItemObject('bunga')
.removeItemObject('kodesp')
.ToInsert('lap_bb');
}
if(
_id('transaksi').value == 'mags'
){
qr = obj.data.qrData.removeItemObject('pokok')
.removeItemObject('bunga')
.removeItemObject('kodesp')
.removeItemObject('fkt')
.ToInsert('lap_bb');
}
if(
_id('transaksi').value == 'msimpan'
){
qr = obj.data.qrData.removeItemObject('pokok')
.removeItemObject('bunga')
.removeItemObject('kodesp')
.removeItemObject('fkt')
.removeItemObject('jumlah')
.ToInsert('lap_bb');
}
var _ld = cssLoader();
console.log(qr);
AuditDevQuery(t+" [;] "+qr, function(d){
_ld.remove();
Swal('Info', 'Update jurnal berhasil', 'info');
});
})
)
})
.filterOnLoad(function(e, status){
/*event action*/
e.change('app', function(){
var acc = _master('acc','acc');
acc = acc.cond(this.value, 'app');
if(acc.length > 0){
e.setOption('akun', acc);
e.setVal('akun', acc[0].id);
return false;
}
return false;
});
if(status != false){
e.setVal('startdate', moment().startOf('year').format('YYYY-MM-DD'));
e.setVal('enddate', moment().endOf('year').format('YYYY-MM-DD'));
e.setVal('app', 'usp');
}
})
.custData(function(a){
if(
_id('transaksi').value == 'mpinjam'
|| _id('transaksi').value == 'mags'
|| _id('transaksi').value == 'msimpan'
){
let z = a[0];
let v = a[1];
let f = [];
v.forEach( function(w){
let y = z.cond(w.kode, 'kodesp');
let ty = [].concat(y).map(function(c){
let u = c;
let debit = c[w.debet];
let kredit = c[w.kredit];
u.rekdebit = w.rekdebit;
if(c.cash != undefined){
u.rekdebit = c.cash;
}
u.rekkredit = w.rekkredit;
u.debit = debit;
u.kredit = kredit;
return u;
}).map(function(h){
if(h.cash != undefined){
delete h.cash;
}
return h;
}).slice();
console.log(y);
f = f.concat(y);
});
console.log(f);
return f;
};
return a;
})
.conf({
query: function(obj, e){
var t = e.getVal('transaksi');
var h = '';
if(t === 'mts'){
h = `
SELECT
kode
, ket keterangan
, tr
, tgl
, if(dk = 'D', cash, akun) rekdebit
, jumlah debit
, if(dk = 'K', cash, akun) rekkredit
, jumlah kredit
, username
, userlog
, app
, 'mts' table_name
FROM mts
`
}
if(t === 'bb'){
h = `
SELECT
bb.kode, totbb.keterangan ,tr, bb.tgl,rekdebit, bb.debit, rekkredit, bb.kredit, bb.username, bb.userlog, bb.app, 'bb' table_name
FROM bb
LEFT JOIN totbb ON totbb.kode = bb.kode
`
}
if(t === 'mpinjam'){
h = `
SELECT * FROM (
SELECT
faktur kode
, keterangan
, if(tr = 'L', 'NON', kodesp) kodesp
, tgl
, \`user\` username
, userlog
, 'usp' app
, pokok
, bunga
, 'mpinjam' table_name
FROM mpinjam
) a [;]
SELECT table_name, kode, akundebet rekdebit, kodedebet debet, akunkredit rekkredit, kodekredit kredit FROM setbb WHERE table_name = 'mpinjam'
`
}
if(t === 'mags'){
h = `
SELECT if(m.tr = 'L', 'NON', m.kodesp) kodesp, a.* FROM (
SELECT
faktur kode
, fkt
, keterangan
, tgl
, \`user\` username
, userlog
, 'usp' app
, pokok
, bunga
, cash
, 'mags' table_name
FROM mags
) a LEFT JOIN mpinjam m ON m.faktur = a.fkt [;]
SELECT table_name, kode, akundebet rekdebit, kodedebet debet, akunkredit rekkredit, kodekredit kredit FROM setbb WHERE table_name = 'mags'
`
}
if(t === 'msimpan'){
h = `
SELECT a.* FROM (
SELECT
faktur kode
, kodesp
, keterangan
, tgl
, username
, userlog
, 'usp' app
, jumlah
, cash
, 'msimpan' table_name
FROM msimpan
) a [;]
SELECT table_name, kode, akundebet rekdebit, kodedebet debet, akunkredit rekkredit, kodekredit kredit FROM setbb WHERE table_name = 'msimpan'
`
}
return h;
}
})
.head([
[
{
text:'Tanggal',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'center'
}
}
,{
text:'Faktur',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'center'
}
}
,{
text:'Keterangan',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'center'
}
}
, {
text:'Akun Debit',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'right'
}
}
, {
text:'Debit',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'right'
}
}
, {
text:'Akun Kredit',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'right'
}
}
, {
text:'Kredit',
css: {
borderBottom: '1px solid #ddd',
whiteSpace: 'nowrap',
textAlign:'right'
}
}
]
])
.name([
{
name: 'tgl',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
}
,custome : function(a){
return tanggal(a).sekarang;
}
}
,{
name: 'kode',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
}
,custome : function(a){
if(a != undefined){
return a;
}
return '';
}
}
,{
name: 'keterangan',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
}
,custome : function(a, b){
if(a == '' && b.kode.toLoweCase().indexOf('cash/in') != -1){
return 'Transaksi kas masuk';
}
if(a == '' && b.kode.toLoweCase().indexOf('cash/out') != -1){
return 'Transaksi kas keluar';
}
if(a == '' && b.kode.toLoweCase().indexOf('war/expense') != -1){
return 'Transaksi biaya';
}
return a;
}
}
,{
name: 'rekdebit',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
}
,custome : function(a){
if(a != undefined){
return a;
}
return '';
}
}
,{
name: 'debit',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
textAlign:'right'
}
, custome: function(a,b,obj){
if(obj.dataStore['debit'] == undefined){
obj.dataStore['debit'] = [];
}
obj.dataStore['debit'].push(a.number(2));
return 'Rp. '+a.number(2).currency(0)
}
}
,{
name: 'rekkredit',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
padding: '0 8px',
}
,custome : function(a){
if(a != undefined){
return a;
}
return '';
}
}
,{
name: 'kredit',
css: {
borderBottom:'1px solid #ddd',
whiteSpace:'nowrap',
textAlign:'right'
}
, custome: function(a,b,obj){
if(obj.dataStore['kredit'] == undefined){
obj.dataStore['kredit'] = [];
}
obj.dataStore['kredit'].push(a.number(2));
return 'Rp. '+a.number(2).currency(0)
}
}
])
.call()
})
</script>