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.

333 lines
9.8 KiB
JavaScript

import { dtData, formData } from "{js}ts-simpanan-form.js?v={time}";
import { print } from '{js}ts-simpanan-print.js?v={time}';
var acc = _json('acc').map(function(a){
return {
id:a.kode,
text:a.nama,
app:a.app,
}
});
(function cekCashSimpanan(){
AuditDevQuery('call cekCashSimpanan()', function(){
setTimeout(function(){
cekCashSimpanan();
},5000);
})
})();
const getRangeDate = function(lap){
if(typeof _startDate != 'undefined'){
let start = _startDate.format("DD-MM-YYYY");
let end = _endDate.format("DD-MM-YYYY");
return lap +" PERIODE "+start+" s/d "+end;
};
return "";
};
window.objectForm = {
title: function () {
return 'Simpanan ';
},
titleReport : function(){
return getRangeDate("SIMPANAN");
},
table: "msimpan",
idform: "containerforms",
newkode: ``,
orientation:"l",
kode: 'faktur',
groupBy: ['msimpan.prima'],
fixed: 2,
serverSide: true,
noAction: true,
view: ['status','kodesp', 'tgl', 'faktur', 'nama', 'jumlah', 'keterangan', 'userlog', 'username'],
columnsExport: [2,3,4,5,6,7],
dataSelect: ["msimpan.nama, msimpan.status,msimpan.kodesp, msimpan.tgl, msimpan.faktur, msimpan.kode, msimpan.jumlah, msimpan.keterangan, msimpan.userlog, msimpan.username, msimpan.faktur print"],
queryTemp: `SELECT {select} FROM msimpan
|| ORDER BY msimpan.tgl DESC, msimpan.faktur DESC`,
validasiForm: ['kodesp', 'tgl', 'faktur', 'jumlah', 'keterangan'],
custQuery: `
UPDATE msimpan aa, (
SELECT b.faktur, b.kode, a.nama FROM msimpan b
LEFT JOIN anggota a ON a.kode = b.kode WHERE b.tgl LIKE CONCAT(year(now()),"%") AND b.nama IS NULL
) bb SET aa.nama = bb.nama WHERE aa.faktur = bb.faktur
`,
beforeDelete: function(data){
let dayNow = tanggal(tanggal().normal).milisecond;
let datTransaction = tanggal(data.tgl).milisecond;
if(datTransaction < dayNow){
swal('Warning', 'Maaf transaksi lewat dari 1 hari. Data tidak dapat dihapus. Silakan hubungi Admin.', 'warning')
throw "stop action";
}
},
oncreate: function (a) {
_setval('kode', '');
dtData.clear();
_setval('tgl', tanggal().normal);
_setval('jumlah', 0);
globalThis._radioAct.open('kodesp').setVal('kodesp', 'SP');
_setval('username', dataApi.username);
_setval('userlog', timestamp());
_setval('dk', globalThis.kodedk);
$(".form-d#kode").val("").trigger('change');
},
custOrder: ['userlog'],
onupdate: function (dt) {
dtData.set(dt);
if(dt.cash === null){
_setval('cash', acc[0].id );
}
_setval('tgl', tanggal(dt.tgl).normal);
_radioAct.disable('kodesp').setVal('kodesp', dt.kodesp, 1);
_setval('username', dataApi.username);
_setval('userlog', timestamp());
_setval('dk', dt.dk);
_setval('kode', dt.kode);
if (dt.keterangan == '' || dt.keterangan == '-') {
var f = tanggal(_getval('tgl')).sekarang2.split(' ');
var kodesp = dt.kodesp;
globalThis['keterangan'].parent.value = kodesp + ' ' + f[1] + ' ' + f[2];
}
var ang = JSON.parse(_id('anggota').innerHTML).cond(dt.kode, 'id')[0];
_setval('nip', ang.nip);
_setval('unitkerja', ang.unitkerja);
_setval('golgaji', ang.golongan);
},
custome: {
status: function (a) {
if(a == '0'){
return 'Lunas';
}else{
return 'Gagal bayar';
}
},
kodesp: function (a) {
if (JSON.parse(_id('jpinjam').innerHTML).cond(a, 'id').length > 0){
return JSON.parse(_id('jpinjam').innerHTML).cond(a, 'id')[0].text;
}
return a;
},
kode: function (a) {
if (JSON.parse(_id('anggota').innerHTML).cond(a, 'id').length > 0){
return JSON.parse(_id('anggota').innerHTML).cond(a, 'id')[0].text;
}
return a;
},
jumlah: function (a, b) {
return _viewrp(a,b);
}
}
,
disableSave: true,
filldate: true,
datekode: 'tgl',
custcondition: function (a) {
if (window._startDate != undefined) {
return a + ' WHERE msimpan.dk = "' + globalThis.kodedk + '" ' + ` AND tgl >= "${window._startDate.format('YYYY-MM-DD')}" AND tgl <= "${window._endDate.format('YYYY-MM-DD')} "`;
} else {
return a + ' WHERE msimpan.dk = "' + globalThis.kodedk + '" ';
};
},
debug: false,
custButton: function (a, i) {
var f;
if (typeof a == 'object') {
f = a.faktur;
} else {
f = _getval('faktur');
};
if (a.keterangan.toLowerCase().indexOf('posting:') != -1) {
return `
<button data-id="${i}" data-kode="${f}" class="btn btn-sm btn-clear edit" style="color:#666ee8;"><i class="icon-note"></i></button>
<button kode-print="${f}" class="kode-print btn btn-sm btn-clear" style="color:black;"><i class="la la-print"></i></button>
`;
}
console.log(objectForm.title())
if (objectForm.title().indexOf('Simpanan') == -1 && a.keterangan.toLowerCase().indexOf('posting:') != -1){
return `
<button data-id="${i}" data-kode="${f}" class="btn btn-sm btn-clear edit" style="color:#666ee8;"><i class="icon-note"></i></button>
<button kode-print="${f}" class="kode-print btn btn-sm btn-clear" style="color:black;"><i class="la la-print"></i></button>
`;
}else{
return `
<button data-id="${i}" data-kode="${f}" class="btn btn-sm btn-clear edit" style="color:#666ee8;"><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" style="color:black;"><i class="la la-print"></i></button>
`;
}
},
data: formData
};
globalThis.kodedk = 'D';
const configSimpanan = function(){
objectForm.title = function () {
return 'Simpanan ';
}
objectForm.data[0].data = _json('jpinjam').cond('0', 'status');
if(typeof __forms != 'undefined'){
__forms()
}
}
const configPenarikan = function(){
objectForm.title = function () {
return 'Penarikan ';
}
objectForm.data[0].data = JSON.parse(_id('jpinjam').innerHTML).cond('0', 'status').filter(function(as){
if(as.id != 'BW'){
return as;
}
});
if (typeof __forms != 'undefined') {
__forms()
}
}
window.statusSimpanan = 'D';
Array.from(document.querySelectorAll('.nav-tabs .nav-link')).forEach(function (tabs) {
tabs.addEventListener('click', function () {
var g = this.getAttribute('data-kode');
globalThis.kodedk = g;
statusSimpanan = g;
if(g === 'D'){
configSimpanan();
}else{
configPenarikan();
};
_load();
}, false);
});
(function cron() {
if (globalThis['kasir'] != undefined && globalThis['jam'] != undefined) {
globalThis['kasir'].parent.value = usernama;
globalThis['jam'].parent.value = _times();
}
setTimeout(() => {
cron();
}, 100);
})();
var printV = el('iframe').css('display', 'none').get();
document.body.appendChild(printV);
// auto print after save
window._printStruck = function (v) {
print(v);
};
globalThis._update = function () {
_setupKodesp('kodesp');
var f = globalThis.faktur.parent.value;
window._printStruck(f);
let updateData = {
rekdebit: _getval('cash')
};
let y = {
table: 'msimpan',
faktur: 'faktur',
tgl: 'tgl',
ket: 'keterangan',
username: 'username',
data: updateData
};
if (statusSimpanan === 'K'){
updateData = {
rekkredit: _getval('cash')
}
y = {
table: 'msimpan',
faktur: 'faktur',
tgl: 'tgl',
ket: 'keterangan',
username: 'username',
data: updateData,
reverse: true
};
}
_bbup(y);
};
globalThis._insert = function () {
_setupKodesp('kodesp')
var f = globalThis.faktur.parent.value;
window._printStruck(f);
let updateData = {
rekdebit: _getval('cash')
};
let y = {
table: 'msimpan',
faktur: 'faktur',
tgl: 'tgl',
ket: 'keterangan',
username: 'username',
data: updateData
};
if (statusSimpanan === 'K'){
updateData = {
rekkredit: _getval('cash')
}
y = {
table: 'msimpan',
faktur: 'faktur',
tgl: 'tgl',
ket: 'keterangan',
username: 'username',
data: updateData,
reverse: true
};
}
_bbup(y);
};
globalThis._delete = function (val) {
_bbdown(val);
};
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
) {
print(t.parentNode.getAttribute('kode-print'));
};
if (
t.tagName == 'BUTTON'
&& t.className.indexOf('kode-print') != -1
) {
print(t.getAttribute('kode-print'));
};
}, false);
globalThis._validasi = function(){
var saldo = _getval('saldo').number();
if(saldo < 0){
Swal('Info', 'Maaf nilai saldo tidak boleh minus', 'info');
throw 'stop action';
}
}