Files
siaupheng aaaf0a9215 Refactor member and product scripts to use concise method definitions
- Updated all function declarations to use ES6 shorthand method syntax in member.js, member_grup.js, point_barang.js, point_skema.js, point_tipe.js, kategori.js, operator.js, produk.js, produk_grup.js, rekpos.js, satuan.js, supplier.js, and varian.js.
2026-11-01 14:57:54 +07:00

149 lines
5.1 KiB
JavaScript

/*******************************************************************
PHP Class : /Controller/IndexController
Description : Halaman Utama Aplikasi / Index
Created By : Siau Pheng ([email protected]).
Created Date : May 24th, 2010.
Last Modified : August 29th, 2026.
(c) 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(() => {
$("#preloader").remove();
loadSidebar();
IndexJS.index();
if (window.Desktop_Chart) clearInterval(window.Desktop_Chart);
window.Desktop_Chart = setInterval(() => {
if ($('#ChartB').length == 0) return false;
IndexJS.load_chart();
}, 600000);
// QZ Printer
$('#qzLaunch').click(() => launchQZ());
$('#qzStart').click(() => startConnection());
$('#qzStop').click(() => endConnection());
if ('undefined' !== typeof qz) startConnection();
});
var socket = io(window.location.host, { 'path': '/io' });
// PPOB
socket.on('ppob-data', (adata) => {
//console.log('reply ppob-data', adata);
if (Array.isArray(adata.prabayar) && adata.prabayar.length > 0){
$.each(adata.prabayar, (i, v) => {
if (v.Status == 4) PrabayarJS.proses_print(0, v.No_TX);
});
socket.emit('ppob-update', { 'UserID': FoniaJS.User.UID, 'CabID': FoniaJS.User.CabID });
} else socket.emit('ppob-done');
});
// SUPERVISI
socket.on('super-data', (adata) => {
//console.log('reply super-data', adata);
if ($('#divSuper').length === 0) socket.emit('super-done');
if (Array.isArray(adata.data)) {
var table = $('#divSuperTabel').DataTable();
table.clear();
table.rows.add(adata.data).draw();
}
});
var IndexJS = {
index() {
new Request({
url: 'index/index',
sendParam: [],
onSuccess: (ares) => {
$('#pageContent').html(ares.html);
$('#pageToolbarTop').html('');
$('#pageToolbarBot').html('');
FoniaJS.User.CabID = +ares.CabID || 0;
if (socket.active) socket.emit('ppob-check', { 'UserID': FoniaJS.User.UID, 'CabID': FoniaJS.User.CabID });
this.get_picture();
this.load_chart();
}
}).send();
},
get_picture() {
new Request({
url: 'system/profile/get_picture',
onSuccess: (ajson) => {
$('img.get-picture').attr('src', ajson.src);
}
}).send();
},
load_chart() {
this.data_query('chart-sale');
this.data_query('chart-omzet');
this.data_query('tabel-stok');
},
data_query(tipe) {
if (tipe=="chart-sale"){
new Request({
url: 'index/chart_sale',
onSuccess: (ares) => {
if (ares.tipe=='chart') {
var ctx = Chart.getChart('ChartA');
if (typeof ctx !== 'undefined') ctx.destroy();
var myChart = new Chart($('#ChartA'), {
type: ares.chart.type,
data: ares.chart.data,
options: ares.chart.options
});
}
}
}).send();
} else if (tipe=="chart-omzet"){
new Request({
url: 'index/chart_omzet',
onSuccess: (ares) => {
if (ares.tipe=='chart') {
var ctx = Chart.getChart('ChartB');
if (typeof ctx !== 'undefined') ctx.destroy();
var myChart = new Chart($('#ChartB'), {
type: ares.chart.type,
data: ares.chart.data,
options: ares.chart.options
});
}
}
}).send();
} else if (tipe=="tabel-stok"){
new Request({
url: 'index/table_stok',
onSuccess: (ares) => {
if (ares.tipe=='tabel') {
$('#tabelStok').html(ares.html);
}
}
}).send();
}
}
};
function loadSidebar(){
const mySidebar = document.getElementById('sidebarMain');
mySidebar.addEventListener('shown.bs.modal', () => {
document.querySelectorAll('.sidebar .nav-link').forEach((element) => {
element.addEventListener('click', (e) => {
let nextEl = element.nextElementSibling, parentEl = element.parentElement;
if (nextEl){
e.preventDefault();
let mycollapse = new bootstrap.Collapse(nextEl);
if (nextEl.classList.contains('show')){
mycollapse.hide();
} else {
mycollapse.show();
var opened_submenu = parentEl.parentElement.querySelector('.submenu.show');
if (opened_submenu){ new bootstrap.Collapse(opened_submenu); }
}
}
});
})
});
}