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.
336 lines
11 KiB
JavaScript
336 lines
11 KiB
JavaScript
|
|
function addLine(w, a, b) {
|
|
var f = _ff[a](b);
|
|
w.appendChild(f);
|
|
}
|
|
|
|
function addRow(par, t = {}) {
|
|
if (_id('second-form') == undefined) {
|
|
var n = div().id('second-form').class('col-12')
|
|
.html(`
|
|
<div style="overflow-x:scroll;border:1px dotted #ddd; padding: 10px;">
|
|
<div style="min-width:800px;grid-gap:5px;display:grid;grid-template-columns:50px auto auto auto" class="mb-1 form">
|
|
</div>
|
|
</div>
|
|
<div style="text-align:center;padding-top:10px;">
|
|
<button style="margin-top:5px;" class="btn btn-clear newt"><i class="icon-plus"></i> Colom Baru</button>
|
|
</div>
|
|
`)
|
|
_insertAfter(n.get(), par);
|
|
var nm = _id('second-form').querySelector(".form");
|
|
nm.innerHTML = '';
|
|
var nw = _id('second-form').querySelector(".newt");
|
|
nw.datas = t;
|
|
window.globalEventsAdd = nw;
|
|
nw.addEventListener('click', function () {
|
|
var ds = this.datas;
|
|
if (Object.keys(ds).length > 0) {
|
|
window.xnum = ds.tr.number(2);
|
|
} else {
|
|
window.xnum++;
|
|
}
|
|
var f = [
|
|
{
|
|
title: '',
|
|
type: 'num',
|
|
name: 'tr',
|
|
row: 6,
|
|
readonly: true,
|
|
val: (function (ds) {
|
|
if (Object.keys(ds).length > 0) {
|
|
return ds.tr
|
|
}
|
|
return window.xnum;
|
|
})(ds),
|
|
action: function () {
|
|
|
|
},
|
|
},
|
|
{
|
|
title: '',
|
|
type: 'select',
|
|
name: 'akun',
|
|
row: 6,
|
|
readonly: false,
|
|
val: (function (ds) {
|
|
if (Object.keys(ds).length > 0) {
|
|
return ds.akun
|
|
}
|
|
return '';
|
|
})(ds),
|
|
data: acc,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
, {
|
|
title: '',
|
|
type: 'text',
|
|
name: 'ket',
|
|
row: 6,
|
|
readonly: false,
|
|
val: (function (ds) {
|
|
if (Object.keys(ds).length > 0) {
|
|
return ds.ket
|
|
}
|
|
return '';
|
|
})(ds),
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
, {
|
|
title: '',
|
|
type: 'num',
|
|
name: 'jumlah',
|
|
row: 6,
|
|
readonly: false,
|
|
val: (function (ds) {
|
|
if (Object.keys(ds).length > 0) {
|
|
return ds.jumlah.number(2);
|
|
}
|
|
return '0';
|
|
})(ds),
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
];
|
|
f.forEach(function (x) {
|
|
addLine(nm, x.type, x);
|
|
})
|
|
_setoptionmulti('second-form', 'akun', acc);
|
|
this.datas = {};
|
|
}, false);
|
|
};
|
|
}
|
|
|
|
var objectForm = {
|
|
debug: true,
|
|
title: function () {
|
|
return 'Kas Keluar'
|
|
},
|
|
table: "mts",
|
|
idform: "containerforms",
|
|
newkode: ``,
|
|
kode: 'kode',
|
|
filldate: true,
|
|
datekode: 'tgl',
|
|
view: ['kode', 'tgl', 'ket', 'jumlah'],
|
|
dataSelect: ["kode, tgl, ket, jumlah"],
|
|
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>
|
|
`;
|
|
}
|
|
},
|
|
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";
|
|
}
|
|
},
|
|
queryTemp: "SELECT {select} FROM (SELECT kode, tgl, ket, sum(jumlah) jumlah FROM mts GROUP BY kode) a WHERE a.kode IS NOT NULL AND a.kode LIKE 'CASH/OUT%' || ORDER BY kode DESC",
|
|
validasiForm: ['app', 'cash', 'tgl'],
|
|
oncreate: function () {
|
|
globalThis._news.code({
|
|
code: 'CASH',
|
|
row: 'kode',
|
|
table: 'mts',
|
|
data: 'OUT',
|
|
});
|
|
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')
|
|
},
|
|
onupdate: function (dt) {
|
|
var par = _parentForm('tag');
|
|
if (_id('second-form') != undefined) {
|
|
_id('second-form').querySelector(".form").innerHTML = '';
|
|
} else {
|
|
addRow(par);
|
|
}
|
|
window.xnum = 0;
|
|
_setVal('tgl', tanggal().normal)
|
|
_setVal('app', 'acc')
|
|
AuditDevQuery(`SELECT * FROM mts WHERE kode = "${dt.kode}"`, function (a) {
|
|
a.forEach(function (x) {
|
|
globalEventsAdd.datas = x;
|
|
globalEventsAdd.click();
|
|
})
|
|
})
|
|
},
|
|
custcondition: function (a) {
|
|
return a + '';
|
|
}
|
|
,
|
|
custome: {
|
|
jumlah: function (w) {
|
|
if (w != undefined) {
|
|
return w.number(2).currency(0)
|
|
}
|
|
}
|
|
},
|
|
_condDeleteStop: [
|
|
{ id: 'statusposting', val: '1' }
|
|
]
|
|
, onviewonly: function (dat) {
|
|
var ft = getFormData('second-form')
|
|
ft.addItemObject('kode', _getval('kode'));
|
|
ft.addItemObject('tgl', _getval('tgl'));
|
|
ft.addItemObject('app', _getval('app'));
|
|
ft.addItemObject('cash', _getval('cash'));
|
|
ft.addItemObject('tag', _getval('tag'));
|
|
ft.addItemObject('dk', 'K');
|
|
ft.addItemObject('username', username);
|
|
ft.addItemObject('userlog', timestamp());
|
|
ft.ToInsert('mts');
|
|
|
|
var fg = getFormData('second-form')
|
|
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());
|
|
|
|
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();
|
|
AuditDevQuery(ft.ToInsert('mts'), function () {
|
|
AuditDevQuery(fg.ToInsert('lap_bb'), function () {
|
|
ld.remove();
|
|
Swal('info', 'Data telah disimpan', 'success');
|
|
_load();
|
|
})
|
|
})
|
|
} else {
|
|
var ld = cssLoader();
|
|
console.log(fg.ToInsert('lap_bb', ['kode', 'tr']));
|
|
AuditDevQuery(ft.ToInsert('mts', ['kode', 'tr']), function () {
|
|
AuditDevQuery(fg.ToInsert('lap_bb', ['kode', 'tr']), function () {
|
|
AuditDevQuery(ft.ToUpdate('mts', ['kode', 'tr']), function () {
|
|
AuditDevQuery(fg.ToUpdate('lap_bb', ['kode', 'tr']), 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: 'App',
|
|
type: 'select',
|
|
name: 'app',
|
|
row: 4,
|
|
line: 50,
|
|
data: AppData,
|
|
readonly: false,
|
|
action: function (a) {
|
|
_Evchange(a, function () {
|
|
var v = this.value;
|
|
var m = acc;
|
|
_setoption('cash', m);
|
|
if (_id('second-form') != undefined) {
|
|
_setoptionmulti('second-form', 'akun', m);
|
|
}
|
|
})
|
|
},
|
|
}
|
|
, {
|
|
title: 'Bayar Dari',
|
|
type: 'select',
|
|
name: 'cash',
|
|
row: 4,
|
|
line: 70,
|
|
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: 8,
|
|
line: 50,
|
|
readonly: false,
|
|
action: function () {
|
|
|
|
},
|
|
}
|
|
]
|
|
};
|
|
|
|
globalThis._delete = function (kode) {
|
|
var dp = cssLoader();
|
|
AuditDevQuery(`DELETE FROM mts WHERE kode = "${kode}" `, function (a) {
|
|
AuditDevQuery(`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';
|
|
}
|
|
} |