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.

235 lines
7.0 KiB
JavaScript

import { fang } from '{js}ts-angsuran-form.js?v={time}';
import { getv, cron } from '{js}ts-angsuran-cron.js?v={time}';
AuditDevQuery(`
SELECT
kode id, nama text
FROM
acc
[;]
SELECT * FROM setbb
`, function(a){
globalThis.bb = a[1];
setTimeout(function(){
_setoption('cash',a[0]);
},1000)
})
var objectForm = {
title: function () {
return 'Angsuran ';
},
table: "mags",
idform: "containerforms",
newkode: ``,
kode: 'faktur',
noAction: true,
disableSave: true,
filldate: false,
serverSide:true,
custOrder: ['userlog'],
datekode: 'tgl',
custome: {
ke: function (a, b) {
return _viewnum(a, b);
},
bunga: function (a, b) {
return _viewrp(a, b);
},
pokok: function (a, b) {
return _viewrp(a, b);
},
},
columnsExport: [1, 2, 3, 4, 5,6,7],
orientation:"l",
datekode: 'tgl',
view: ['tgl', 'faktur', 'fkt', 'nama', `kee`, 'pokok', 'bunga', 'keterangan', 'userlog', 'user'],
dataSelect: [" mags.*, a.nama, mags.ke kee "],
queryTemp: `SELECT {select} FROM mags
LEFT JOIN anggota a ON a.kode = mags.kode
LEFT JOIN tglpinjaman m ON mags.fkt = m.mfkt
|| ORDER BY mags.faktur DESC`,
validasiForm: ['kode', 'tgl', 'fkt', 'bayar'],
beforeDelete: function (data) {
let dayNow = tanggal(tanggal().normal).milisecond;
let datTransaction = tanggal(data.tgl).milisecond;
console.log(data.tgl);
console.log(datTransaction, dayNow);
if (datTransaction < dayNow) {
console.log("lewat");
swal('Warning', 'Maaf transaksi lewat dari 1 hari. Data tidak dapat dihapus. Silakan hubungi Admin.', 'warning')
throw "stop action";
}
},
oncreate: function (a) {
globalThis._news.codex({
code: 'BKM',
row: 'faktur',
row2: 'nomor',
table: 'mags',
data: 'P' + tanggal().normal.split('-')[0].substring(0, 2),
});
_selectNull('kode');
_setval('tgl', tanggal().normal);
_setval('user', dataApi.username );
_setval('userlog', timestamp());
},
onupdate: function (dt) {
window.gdt = dt;
_setval('user', dataApi.username);
_setval('userlog', timestamp());
_nodecimal('ke', dt.ke);
_nodecimal('pokok', dt.pokok);
_nodecimal('bunga', dt.bunga);
if(dt.shu.number(2) === 0 && dt.nonshu.number(2) === 0){
_nodecimal('shu', dt.pokok);
};
var _ld = cssLoader();
var ang = _master('anggota', 'anggota');
_setval('nip', ang.cond(dt.kode, 'id')[0].nip);
_setval('nama', ang.cond(dt.kode, 'id')[0].text);
_setval('bayar', (dt.pokok.number(2) + dt.bunga.number(2)).currency(0));
AuditDevQuery(` SELECT faktur id, faktur text FROM mpinjam `, function (m) {
_setoption('fkt', m);
_ld.remove();
setTimeout(function () {
$("#fkt")
.val(dt.fkt)
.trigger('change');
}, 0);
});
},
debug: true,
custButton: function (a,i) {
var f;
if (typeof a == 'object') {
f = a.faktur;
} else {
f = globalThis['faktur'].parent.value;
}
if (a.keterangan.toLowerCase().indexOf('posting:') != -1){
return `
<button kode-print="${f}" class="kode-print btn btn-sm btn-clear">
<i class="la la-print"></i>
</button>
`;
}
return `
<button data-id="${i}" data-kode="${f}" class="btn btn-sm btn-clear edit" style="color:red;">
<i class="icon-note"></i>
</button>
<button data-id="${i}" data-tgl="${a.tgl}" data-kode="${f}" class="btn btn-sm btn-clear hapus" style="color:red;">
<i class="icon-trash"></i>
</button>
<button kode-print="${f}" class="kode-print btn btn-sm btn-clear">
<i class="la la-print"></i>
</button>
`;
},
data: fang
};
cron();
var printV = el('iframe').css('display', 'none').get();
document.body.appendChild(printV);
window._printStruck = function (v) {
var win1 = printV.contentWindow;
$.ajax({
url: '{{PATH}}/admin/posting/angsuran/struk/' + btoa(v),
success: function (res) {
if (_App.qzStatus() === true) {
var f = div().html(res).get();
window._r = f;
var config = qz.configs.create(_App.posprintget());
var data = [{
type: 'pixel',
format: 'html',
flavor: 'plain', // or 'plain' if the data is raw HTML
data: '<html>' +
'<body>' +
_r.querySelector('table').outerHTML +
'</body>' +
'</html>'
}];
qz.print(config, data).catch(function (e) { console.error(e); });
throw 'stop actrion';
};
win1.document.open();
win1.document.write(res);
win1.document.close();
win1.print();
}
});
};
document.body.addEventListener('click', function (event) {
var t = event.target;
if (
t.tagName == 'I'
&& t.parentNode.tagName == 'BUTTON'
&& t.parentNode.className.indexOf('kode-print') != -1
) {
console.log("okok")
_printStruck(t.parentNode.getAttribute('kode-print'));
};
if (
t.tagName == 'BUTTON'
&& t.className.indexOf('kode-print') != -1
) {
_printStruck(t.getAttribute('kode-print'));
};
}, false);
globalThis._validasi = function(){
const sisa = getv('sisa');
const sisajasa = getv('sisajasa');
const pokok = getv('shu') + getv('nonshu');
const bunga = getv('bunga');
const discount = getv('discount');
_setval('pokok', pokok.currency(0));
_setval('bayar', (pokok + bunga - discount).currency(0));
var logData = "";
if (pokok > sisa) {
Swal("Info", " Input pokok melebihi sisa. ", 'warning');
throw 'stop';
}
if (bunga > sisajasa) {
Swal("Info", " Input jasa melebihi sisa. ", 'warning');
throw 'stop';
}
}
globalThis._update = function () {
_bbup({
table: 'mags',
faktur: 'faktur',
tgl: 'tgl',
data: {
rekdebit: _getval('cash')
},
ket: 'keterangan',
username: 'user'
});
};
globalThis._insert = function () {
_bbup({
table: 'mags',
faktur: 'faktur',
tgl: 'tgl',
data: {
rekdebit: _getval('cash')
},
ket: 'keterangan',
username: 'user'
});
var f = globalThis.faktur.parent.value;
window._printStruck(f);
};
globalThis._delete = function (val) {
_bbdown(val);
};