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

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