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.
339 lines
11 KiB
JavaScript
339 lines
11 KiB
JavaScript
import { tsroute } from '{js}ts-kasmasuk-route.js?v={time}';
|
|
import { addRow } from '{js}ts-kasmasuk-addrow.js?v={time}';
|
|
import { exports } from '{js}ts-kasmasuk-export.js?v={time}';
|
|
import { cetak } from '{js}ts-kasmasuk-cetak.js?v={time}';
|
|
import { Master } from '{js}module-master.js?v={time}';
|
|
|
|
var acc = _json('acc').map(function(a){
|
|
return {
|
|
id:a.kode,
|
|
text:a.nama,
|
|
app:a.app,
|
|
}
|
|
});
|
|
|
|
console.log('ami')
|
|
EventClick.add("print-ts", function(target, data){
|
|
let _ld = cssLoader();
|
|
Master(['anggota', 'acc', {
|
|
name: 'data',
|
|
qr : `SELECT * FROM mts WHERE kode = '${data.kode}' `
|
|
},'profile'], function (s,d) {
|
|
_ld.remove();
|
|
window._s = s;
|
|
try{
|
|
cetak(data, d);
|
|
}catch(e){
|
|
console.log(e)
|
|
}
|
|
});
|
|
});
|
|
|
|
let objectForm = {
|
|
debug:false,
|
|
title: function () {
|
|
return tsroute().title;
|
|
},
|
|
table: "mts",
|
|
idform: "containerforms",
|
|
newkode: ``,
|
|
columnsExport: [1,2, 3, 4, 5,6,7],
|
|
kode: 'kode',
|
|
filldate: true,
|
|
deleteOnly:false,
|
|
disableSave: true,
|
|
datekode: 'tgl',
|
|
view: ['print','app', 'kode', 'tgl', 'ket', 'jumlah', 'userlog', 'username'],
|
|
beforeDelete: async 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";
|
|
}
|
|
},
|
|
disableEditor: function (a, b, c) {
|
|
let dayNow = tanggal(tanggal().normal).milisecond;
|
|
let datTransaction = tanggal(b.tgl).milisecond;
|
|
if (datTransaction < dayNow) {
|
|
return `
|
|
<button data-id="${c}" data-kode="${a}" class="btn btn-sm btn-clear edit" style="color:red;"><i class="icon-note"></i></button>
|
|
`;
|
|
}else{
|
|
return `
|
|
<button data-id="${c}" data-kode="${a}" class="btn btn-sm btn-clear edit" style="color:red;"><i class="icon-note"></i></button>
|
|
<button data-id="${c}" data-kode="${a}" class="btn btn-sm btn-clear hapus" style="color:red;"><i class="icon-trash"></i></button>
|
|
`;
|
|
}
|
|
},
|
|
dataSelect: ['kode print', "kode, app, tgl, ket, jumlah, username, userlog"],
|
|
queryTemp: `SELECT {select} FROM (SELECT app, kode, tgl, ket, jumlah, username, userlog FROM mts) a WHERE a.kode IS NOT NULL AND a.kode LIKE '${tsroute().db}%' || ORDER BY kode DESC`,
|
|
validasiForm: ['app','cash', 'tgl'],
|
|
custOrder: ['userlog'],
|
|
customeExport: exports,
|
|
customeData: function(a){
|
|
var f = [].concat(a);
|
|
a = a.removeDuplicate(['print','app','kode', 'tgl', 'userlog', 'username']).map(function(d){
|
|
d.ket = a.cond(d.kode, 'kode').map(function(s){
|
|
return s.ket;
|
|
}).join(',');
|
|
d.jumlah = a.cond(d.kode, 'kode').sum(['jumlah']).toString();
|
|
return d;
|
|
});
|
|
return a;
|
|
},
|
|
oncreate: function () {
|
|
var ld = cssLoader();
|
|
Master(['anggota', 'acc'], function (s,d) {
|
|
const [anggota, acc] = d;
|
|
console.log(acc);
|
|
ld.remove();
|
|
globalThis._news.code({
|
|
code: tsroute().kode.split('/')[0],
|
|
row: 'kode',
|
|
table: 'mts',
|
|
data: tsroute().kode.split('/')[1],
|
|
});
|
|
_setoption('cash', acc.toOption());
|
|
_setoption('kodesc', anggota.toOption());
|
|
var par = _parentForm('tag');
|
|
if(_id('second-form') != undefined){
|
|
_id('second-form').querySelector(".form").innerHTML = '';
|
|
}else{
|
|
addRow(par);
|
|
}
|
|
window.xnum = 0;
|
|
globalEventsAdd.click();
|
|
_setVal('tgl',tanggal().normal);
|
|
_setVal('app','acc');
|
|
});
|
|
},
|
|
// disableEditor: function (a, b, c) {
|
|
// return _standardTableAct(a, b, c);
|
|
// },
|
|
onupdate: function (dt) {
|
|
var ld = cssLoader();
|
|
Master(['anggota', 'acc'], function (s, d) {
|
|
ld.remove();
|
|
const [anggota, acc] = d;
|
|
var par = _parentForm('tag');
|
|
if (_id('second-form') != undefined) {
|
|
_id('second-form').querySelector(".form").innerHTML = '';
|
|
} else {
|
|
addRow( par );
|
|
}
|
|
window.xnum = 0;
|
|
_setval('app', dt.app)
|
|
_setval('cash', dt.cash)
|
|
_setVal('tgl', tanggal().normal)
|
|
_setVal('kodesc', dt.kodesc)
|
|
AuditDevQuery(`SELECT * FROM mts WHERE kode = "${dt.kode}"`,function(a){
|
|
a.forEach(function(x){
|
|
globalEventsAdd.datas = x;
|
|
globalEventsAdd.click();
|
|
})
|
|
})
|
|
})
|
|
}
|
|
,
|
|
custome: {
|
|
print: function(w){
|
|
return `<button data-eventact="print-ts" data-kode="${w}" class="kode-print btn btn-sm btn-clear">
|
|
<i class="la la-print"></i> Cetak Struk
|
|
</button>`;
|
|
},
|
|
jumlah: function(w){
|
|
if(w != undefined){
|
|
return w.number(2).currency(0).replace(/\./g,',')
|
|
}
|
|
}
|
|
}
|
|
,onviewonly: function (dat) {
|
|
var ft = getFormData('second-form')
|
|
ft.addItemObject('kode',_getval('kode'));
|
|
ft.addItemObject('kodesc',_getval('kodesc'));
|
|
ft.addItemObject('tgl',_getval('tgl'));
|
|
ft.addItemObject('app',_getval('app'));
|
|
ft.addItemObject('cash',_getval('cash'));
|
|
ft.addItemObject('tag',_getval('tag'));
|
|
ft.addItemObject('dk', tsroute().status);
|
|
ft.addItemObject('username', username);
|
|
ft.addItemObject('userlog', timestamp());
|
|
ft.ToInsert('mts');
|
|
|
|
var fg = getFormData('second-form')
|
|
if (tsroute().status === 'D'){
|
|
fg.addItemObject('rekdebit',_getval('cash'));
|
|
}else{
|
|
fg.addItemObject('rekkredit',_getval('cash'));
|
|
}
|
|
fg.addItemObject('kode', _getval('kode'));
|
|
fg.addItemObject('tgl', _getval('tgl'));
|
|
fg.addItemObject('app', _getval('app'));
|
|
fg.addItemObject('table_name', 'mts');
|
|
fg.addItemObject('username', username);
|
|
fg.addItemObject('userlog', timestamp());
|
|
|
|
if (tsroute().status === 'D'){
|
|
fg.renameItemObject('akun', 'rekkredit');
|
|
}else{
|
|
fg.renameItemObject('akun', 'rekdebit');
|
|
}
|
|
fg.renameItemObject('ket', 'keterangan');
|
|
fg.renameItemObject('jumlah', 'debit');
|
|
fg.renameItemObject('jumlah', 'kredit');
|
|
|
|
fg.removeItemObject('akun');
|
|
fg.removeItemObject('jumlah');
|
|
fg.removeItemObject('ket');
|
|
fg.ToInsert('lap_bb');
|
|
|
|
if(window._w != 'u'){
|
|
var ld = cssLoader();
|
|
var qr = ft.ToInsert('mts');
|
|
qr = qr + '[;]' + fg.ToInsert('lap_bb');
|
|
AuditDevQuery(qr, function(){
|
|
ld.remove();
|
|
Swal('info', 'Data telah disimpan','success');
|
|
_load();
|
|
});
|
|
}else{
|
|
var ld = cssLoader();
|
|
var qr = ft.ToInsert('mts', ['kode', 'tr']);
|
|
qr = qr + '[;]' + fg.ToInsert('lap_bb', ['kode', 'tr']);
|
|
qr = qr + '[;]' + ft.ToUpdate('mts', ['kode', 'tr']);
|
|
qr = qr + '[;]' + fg.ToUpdate('lap_bb', ['kode', 'tr']);
|
|
AuditDevQuery(qr, function(){
|
|
ld.remove();
|
|
Swal('info', 'Data telah diupdate','success');
|
|
_load();
|
|
})
|
|
}
|
|
}
|
|
, data: [
|
|
{
|
|
title: 'Kode Transaksi',
|
|
type: 'text',
|
|
name: 'kode',
|
|
row: 4,
|
|
line: 120,
|
|
readonly: true,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
, {
|
|
title: 'Terima dari',
|
|
type: 'text',
|
|
name: 'kodesc',
|
|
row: 4,
|
|
line: 120,
|
|
data: [],
|
|
readonly: false,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
,{
|
|
title: 'App',
|
|
type: 'select',
|
|
name: 'app',
|
|
row: 4,
|
|
line: 50,
|
|
data: AppData2,
|
|
textonly: true,
|
|
readonly: false,
|
|
action: function (a) {
|
|
_Evchange(a, function(){
|
|
var v = this.value;
|
|
var m = acc.sortArrayObjectAsc('id');
|
|
if(v.indexOf('acc') == -1 || v.indexOf('usp') == -1){
|
|
m = m.like('app', v);
|
|
}
|
|
_setoption('cash', m);
|
|
if (_id('second-form') != undefined){
|
|
_setoptionmulti('second-form','akun',m);
|
|
}
|
|
})
|
|
},
|
|
}
|
|
,{
|
|
title: tsroute().cash,
|
|
type: 'select',
|
|
name: 'cash',
|
|
row: 4,
|
|
line: 120,
|
|
data: acc,
|
|
readonly: false,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
,{
|
|
title: 'Tanggal',
|
|
type: 'date',
|
|
name: 'tgl',
|
|
row: 4,
|
|
line: 120,
|
|
readonly: false,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
,{
|
|
title: 'Tag',
|
|
type: 'text',
|
|
name: 'tag',
|
|
row: 4,
|
|
line: 50,
|
|
readonly: false,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
,{
|
|
title: 'Total',
|
|
type: 'number',
|
|
name: 'totaljm',
|
|
row: 4,
|
|
line: 50,
|
|
unfollow: true,
|
|
readonly: true,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
]
|
|
};
|
|
|
|
globalThis._delete = function (kode) {
|
|
var dp = cssLoader();
|
|
AuditDevQuery(`DELETE FROM mts WHERE kode = "${kode}" [;] DELETE FROM lap_bb WHERE kode = "${kode}" `, function (a) {
|
|
dp.remove();
|
|
});
|
|
};
|
|
|
|
globalThis._validasi = function(){
|
|
var ft = getFormData('second-form')
|
|
if(ft.length < 1){
|
|
Swal('info', 'Colom minimal 1 baris', 'warning');
|
|
throw 'stop';
|
|
}
|
|
};
|
|
|
|
|
|
(function crons() {
|
|
if(typeof _setval != 'undefined'){
|
|
let total = Array.from(document.querySelectorAll('.form-s[name=jumlah]')).map(function (c) {
|
|
return c.value.number();
|
|
}).sum();
|
|
_setval('totaljm', total.currency(0));
|
|
};
|
|
setTimeout(function () {
|
|
crons();
|
|
}, 10);
|
|
})();
|