const globalObject = { _Help: function(){ return { getLabel: function(a){ let vv = document.getElementById(objectForm.idform); let yo = vv.querySelector('#' + a); if (typeof yo === 'object') { return (function getLabel(yo) { if (yo.parentNode.querySelector('label') === null) { return getLabel(yo.parentNode) } return yo.parentNode.querySelector('label'); })(yo); } return false; } } } }; // Salin properti dari objek global Anda ke objek window Object.keys(globalObject).forEach(key => { if (!window.hasOwnProperty(key)) { Object.defineProperty(window, key, { get: globalObject[key], // Assign the function as the getter set: function () { // Tidak melakukan apa-apa saat mencoba mengatur properti }, enumerable: true, configurable: false // Mencegah penghapusan atau perubahan konfigurasi }); } }); window._Evclick = function (a, callback) { a.addEventListener('click', callback, false); } window._Evchange = function (a, callback) { if (objectForm.idform != undefined) { $("#" + objectForm.idform + " #" + a.id).change(callback) } else { $("#" + a.id).change(callback) } } window.dateNow = function(){ return tanggal(tanggal().normal).sekarang; } window._Evkeyup = function (a, callback) { a.addEventListener('keyup', callback, false); } window._Evkeydown = function (a, callback) { a.addEventListener('keydown', callback, false); } window._Evload = function (a, callback) { a.addEventListener('load', callback, false); } window._viewnum = function (a, b) { if (b != 'update') { return a.number(2).currency(0) } else { return a; } } window._viewrp = function (a, b) { if (b != 'update') { return a.number(2).currency(0).replace(/\./g,',') } else { return a; } } window._tgl = function (a, b) { return tanggal(a).sekarang; } window._nodecimal = function (a, b) { if (objectForm.idform != undefined) { $("#" + objectForm.idform + " #" + a).val(Number(b).currency(0)) } else { $("#" + a).val(b) } } globalThis._times = function () { var today = new Date(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); return time; } window._selectNull = function (id) { $("#" + id).val('').trigger('change'); } window._bbdown = function (faktur) { var _ld = cssLoader(); AuditDevQuery(`DELETE FROM lap_bb WHERE kode = '${faktur}'`, function () { _ld.remove(); }) } window._arrayBB = function (dat) { var bb = _master('bb', 'bb').cond(dat.table, 'table_name').cond(_setup('kodebb'), 'kode') var app = '{{APPNAME}}'; var newA = []; dat.data.forEach(function (c) { bb.forEach(function (d) { var x = {} x.rekdebit = d.akundebet x.rekkredit = d.akunkredit x.debit = c[d.kodedebet] x.kredit = c[d.kodekredit] x.app = d.app x.table_name = dat.table x.username = username x.userlog = timestamp() x.keterangan = c[dat.ket] x.tgl = c[dat.tgl] x.tr = d.tr x.kode = c[dat.kode] newA.push(x) }) }) return newA; } window._doubleInsert = function (dat) { var dx = []; dx.push(_setInsert({ kode: dat.kode, table: dat.table, data: dat.data, })) var s = _arrayBB({ table: dat.table , kode: dat.kode , tgl: dat.tgl , ket: dat.ket , data: dat.data }) dx.push(_setInsert({ table: 'lap_bb', kode: 'kode', data: s, })) return dx; } window._setInsert = function (dat) { var kode = dat.kode var table = dat.table var rw = (function () { if (dat.data.length > 0) { return '(' + Object.keys(dat.data[0]).join(',') + ')'; } else { return '' } })(); var rw2 = (function () { if (dat.data.length > 0) { var f = 'SELECT ' + Object.keys(dat.data[0]).map(function (r) { return 'a.' + r }).join(',') + ' FROM ('; f += dat.data.map(function (j) { var p = ' SELECT ' p += Object.keys(j).map(function (c) { if (j[c] === null){ return '"" `' + c + '`'; } return '"' + j[c].replace(/\"/g, "\\\"") + '" `' + c + '`' }).join(",") return p; }).join(" \n UNION ALL \n ") f += ") a "; f += "LEFT JOIN " + table + " b ON b." + kode + " = a." + kode + " WHERE " f += "b." + kode + " IS NULL"; return f; } else { return '' } })(); var qr = 'INSERT INTO '; qr += table; qr += rw; qr += rw2; return qr; } window._setupKodesp = function (kodesp, v){ if(v === undefined){ _setup('kodebb', globalThis[kodesp].parent.value); return false; } if(v != undefined && typeof v === 'string'){ _setup('kodebb', v); } } window._bbup = function (dat) { var kode = _getval(dat.faktur); var tgl = _getval(dat.tgl); var keterangan = _getval(dat.ket); var username = _getval(dat.username); var userlog = _getval('userlog'); var table_name = dat.table; var app = dataApi.app; AuditDevQuery("SELECT * FROM setbb", function(bb){ bb = bb.cond(table_name, 'table_name').cond(_setup('kodebb'), 'kode').map(function (q) { var c = {} c.tr = q.tr; c.rekdebit = (function(){ if (dat.reverse === true) { return q.akunkredit; } return q.akundebet; })(); if (q.kodedebet.indexOf(',') != -1) { c.debit = (function (vv) { var x = 0; vv.forEach(function (t) { x += _getval(t).number(); }) return x; })(q.kodedebet.split(',')); } else { c.debit = _getval(q.kodedebet).number(); } c.rekkredit = (function(){ if(dat.reverse === true){ return q.akundebet; } return q.akunkredit; })();; if (q.kodedebet.indexOf(',') != -1) { c.kredit = (function (vv) { var x = 0; vv.forEach(function (t) { x += _getval(t).number(); }) return x; })(q.kodekredit.split(',')); } else { c.kredit = _getval(q.kodekredit).number(); } c.table_name = table_name; c.app = q.app; c.username = username; c.userlog = userlog; c.keterangan = keterangan; c.tgl = tgl; c.kode = kode; if(dat.data != undefined && typeof dat.data === 'object'){ Object.keys(dat.data).forEach(function(w){ c[w] = dat.data[w]; }) } return c; }); if (bb.length > 0) { var nm = Object.keys(bb[0]) var sw = 'SELECT a.* FROM (\n' + bb.map(function (pop) { var s = ' SELECT '; s += nm.map(function (hk) { if (Number.isInteger(pop[hk])) { return '"' + pop[hk] + '" ' + hk } return '"' + pop[hk].replace(/\"/g, "\\\"") + '" ' + hk }).join(",") return s; }).join("\n UNION ALL\n") + `\n) a `; var insert = `INSERT INTO lap_bb (${nm.join(',')}) ` + sw + ` LEFT JOIN lap_bb b ON b.kode = a.kode AND b.tr = a.tr WHERE b.kode IS NULL `; var update = `UPDATE lap_bb aa, (${sw}) bb SET ${nm.map(function (as) { return ` aa.${as} = bb.${as} ` }).join(",") } WHERE aa.kode = bb.kode AND aa.tr = bb.tr ` var _tdl = cssLoader(); AuditDevQuery(insert, function () { AuditDevQuery(update, function () { _tdl.remove(); }) }) } }); } Object.defineProperty(Array.prototype, 'toOption', { value: function (id = 'kode',text = 'nama') { var f = [].concat(this).map(function(a){ return { id: a[id], text: a[text], } }); return f; } }); window._setval = function (a, b) { try{ (function(){ if (objectForm.idform != undefined) { var type = document.querySelector("#" + objectForm.idform + " #" + a); if (type != undefined) { if (type.tagName === 'SELECT') { $("#" + objectForm.idform + " #" + a).val(b); $("#" + objectForm.idform + " #" + a).trigger('change'); } else if(type.tagName === 'INPUT' && type.dataset.type === 'date') { $("#" + objectForm.idform + " #" + a).datepicker("update", new Date(b)); } else if(type.tagName === 'INPUT' && type.dataset.type === 'radio') { if (typeof window._radioAct != 'undefined') { window._radioAct.setVal(a, b) } } else { type.value = b; } } } else { document.querySelector("#" + a).value = b; } })(); }catch(e){ } } window._setVal = _setval; window._getval = function (a) { if (objectForm.idform != undefined) { var vv = document.querySelector("#" + objectForm.idform + " #" + a); var tiraInput = objectForm.data.cond(a, 'name'); if(tiraInput.length > 0){ if(tiraInput[0].type === 'radio'){ return document.querySelector('input.form-d[name="'+a+'"]')? document.querySelector('input.form-d[name="'+a+'"]').value :''; } } if(vv.tagName === 'SELECT'){ var v = $("#"+objectForm.idform+" #"+a).val(); if(Array.isArray(v)){ return v.join(","); } return v; } else if(vv.tagName == 'INPUT' && vv.dataset.type == 'date'){ return (function (s) { var [tgl, bulan, tahun] = s.split("-"); return tahun + '-' + bulan + '-' + tgl; })(document.querySelector("#" + objectForm.idform + " #" + a).value); } return document.querySelector("#" + objectForm.idform + " #" + a).value; } else { return document.querySelector("#" + a).value } } window._getVal = _getval; window._setoption = function (a, bm) { if (objectForm.idform != undefined) { var val = document.querySelector("#" + objectForm.idform + " #" + a).value; document.querySelector("#" + objectForm.idform + " #" + a).innerHTML = `` + bm.map(function (k) { var txt = `${k.id} - ${k.text}`; if(k.id.toLowerCase() == k.text.toLowerCase()){ txt = k.text; } return `` }).join(''); $("#" + objectForm.idform + ' #' + a).trigger('change'); $("#" + objectForm.idform + ' #' + a).val(val).trigger('change'); } else { document.querySelector("#" + a).innerHTML = `` + bm.map(function (k) { return `` }).join(''); } } window._setoptionmulti = function (id, a, bm) { Array.from(document.querySelectorAll("#" + id + " [name=\"" + a+"\"")).forEach(function(s){ var val = s.value; var idx = s.id; s.innerHTML = `` + bm.map(function (k) { return `` }).join(''); $("#" + id +' #'+idx).val(val).trigger('change'); }); return true; } window._setOption = _setoption; window._cekNullDoc = function (el, n) { if (el == undefined) { alert(n + ' not found'); throw 'not found'; } } window._setup = function (a, b) { if (window._winSetData == undefined) { window._winSetData = {} } if (b === undefined || b === null) { if (window._winSetData[a] == undefined) { return false; } else { var v = window._winSetData[a]; return v; } } else { window._winSetData[a] = b; return true; } }; Object.defineProperty(Array.prototype, 'chunk', { value: function (chunkSize) { var array = this; return [].concat.apply([], array.map(function (elem, i) { return i % chunkSize ? [] : [array.slice(i, i + chunkSize)]; }) ); } }); window.getFormData = function(classX,w = 4){ var t = Array.from(document.querySelectorAll("#" + classX+" .form-s")) var z = t.chunk(w); return z.map(function(i){ var ws = {}; i.forEach(function(q){ if(q.className.indexOf('numbers') != -1){ ws[q.name] = q.value.number(); }else{ ws[q.name] = q.value; } }) return ws; }); }; // confirm const confirmation = function(a){ if(typeof Swal != 'undefined'){ Swal({ title: a.title, text: a.text, type: "warning", showCancelButton: true, confirmButtonColor: '#DD6B55', confirmButtonText: 'Ya, Saya yakin!', cancelButtonText: "Tidak, Batalkan!", closeOnConfirm: false, closeOnCancel: false }, function (isConfirm) { if (isConfirm) { swal("Cancelled", "Your imaginary file is safe :)", "error"); } else { swal("Cancelled", "Your imaginary file is safe :)", "error"); e.preventDefault(); } }); setTimeout(() => { document.querySelector('.swal2-cancel').focus() }, 100); document.querySelector('.swal2-confirm').addEventListener('click', function () { a.callback(); }); }; }