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