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