Finalize value on all-report

This commit is contained in:
2026-08-05 15:33:24 +07:00
parent 2b09537122
commit e8b00b10d2
11 changed files with 479 additions and 230 deletions
+92 -50
View File
@@ -1,6 +1,6 @@
window.ReportApp = window.ReportAp || {};
window.ReportApp.lastResponse = null;
let lastResponse = null;
// let lastResponse = null;
$(document).ready(function () {
// $("#modaltanggal").modal("show");
@@ -13,7 +13,13 @@ $(document).ready(function () {
// loadData();
// },
// });
//
$(document).on("keydown", function (e) {
if ("e" == "Escape") {
e.PreventDefault();
$("#loadingOverlay").addClass("d-none");
}
});
const date = $("#tanggalCari").datepicker({
format: "yyyy-mm-dd",
autoclose: true,
@@ -39,6 +45,7 @@ $(document).ready(function () {
// var today = Date.now().format("yyyy-mm-dd");
// $("#tanggalCari").val();
// $("#tanggalCari").val(getToday());
$("#loadingBar").removeClass("d-none");
loadData();
// lastResponse = loadData();
@@ -58,27 +65,27 @@ $(document).ready(function () {
// console.log(e);
// });
$(".btn-export-pdf").on("click", async function () {
// $('.cetak').css('display','block');
// $('.user').css('display','block');
// const { jsPDF } = window.jspdf;
// const doc = new jsPDF("p", "pt", "a4");
// // ambil elemen tabel
// const table = document.getElementById("cetak");
// const canvas = await html2canvas(table, { scale: 2 });
// const imgData = canvas.toDataURL("image/png");
// const imgWidth = doc.internal.pageSize.getWidth();
// const imgHeight = (canvas.height * imgWidth) / canvas.width;
// doc.addImage(imgData, "PNG", 0, 20, imgWidth, imgHeight);
// doc.save(`Rekap Harian.pdf`);
//
// jsPDF Autotable
if (!lastResponse) {
alert("Data belum tersedia");
return;
}
printPDF(lastResponse.vehicle);
});
// $(".btn-export-pdf").on("click", async function () {
// $('.cetak').css('display','block');
// $('.user').css('display','block');
// const { jsPDF } = window.jspdf;
// const doc = new jsPDF("p", "pt", "a4");
// // ambil elemen tabel
// const table = document.getElementById("cetak");
// const canvas = await html2canvas(table, { scale: 2 });
// const imgData = canvas.toDataURL("image/png");
// const imgWidth = doc.internal.pageSize.getWidth();
// const imgHeight = (canvas.height * imgWidth) / canvas.width;
// doc.addImage(imgData, "PNG", 0, 20, imgWidth, imgHeight);
// doc.save(`Rekap Harian.pdf`);
//
// jsPDF Autotable
// if (!lastResponse) {
// alert("Data belum tersedia");
// return;
// }
// printPDF(lastResponse.vehicle);
// });
// console.log(document.getElementById("cetak"));
// console.log(document.getElementById("date-table"));
});
@@ -103,10 +110,11 @@ function loadData(tanggalMulai, tanggalAkhir) {
},
beforeSend: function () {
console.log("Loading data...");
$("#loadingOverlay").removeClass("d-none");
},
success: function (response) {
window.ReportApp.lastResponse = response;
lastResponse = response; // ✅ tambah ini
// lastResponse = response; // ✅ tambah ini
tableVehicle(response.vehicle);
tableOfficer(response.officer);
tablePayment(response.payment);
@@ -289,6 +297,9 @@ function loadData(tanggalMulai, tanggalAkhir) {
console.log("Error:", xhr);
alert("Terjadi kesalahan saat memuat data");
},
complete: function () {
$("#loadingOverlay").addClass("d-none");
},
});
}
@@ -309,6 +320,9 @@ function tableVehicle(response) {
let html = "";
let onData = "";
let jmlCashOut = 0;
let inCashCasual = 0;
let jmlCashCasual = 0;
let incomeCashCasual = 0;
@@ -325,6 +339,8 @@ function tableVehicle(response) {
let incomeCashMasalah = 0;
// Init data cashless
let jmlCashlessOut = 0;
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
@@ -355,7 +371,7 @@ function tableVehicle(response) {
totalCashless: 0,
};
let casualIn = cash.total;
let casualIn = cash.masuk.casual;
let tunaiOut = cash.tunaiOut;
// ===== DATA TUNAI =====
let tCasual = cash.keluar.casual;
@@ -379,6 +395,10 @@ function tableVehicle(response) {
let totalNonTunai = cashless.totalCashless || 0;
// init data cash
//
inCashCasual += casualIn.jumlah;
jmlCashOut += tunaiOut;
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
@@ -394,6 +414,8 @@ function tableVehicle(response) {
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessOut += nonTunaiOut;
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
@@ -409,7 +431,8 @@ function tableVehicle(response) {
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
//
totalAllIn = inCashCasual + inCashCasual;
totalAllOut = jmlCashOut + jmlCashlessOut;
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
// console.log(tLost.income);
@@ -420,7 +443,7 @@ function tableVehicle(response) {
<td rowspan="2" style="text-align: left;"><strong>${cash.jenis_mobil}</strong></td>
<td style="text-align: left;"><span class="badge bg-success">Tunai</span></td>
<td>${casualIn}</td>
<td>${casualIn.jumlah}</td>
<td>${tunaiOut}</td>
<td>${tCasual.jumlah}</td>
@@ -447,7 +470,7 @@ function tableVehicle(response) {
<tr>
<td style="text-align: left;"><span class="badge bg-warning">Non Tunai</span></td>
<td>${casualIn}</td>
<td>${casualIn.jumlah}</td>
<td>${nonTunaiOut}</td>
<td>${nCasual.jumlah}</td>
@@ -478,8 +501,8 @@ function tableVehicle(response) {
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>SUB TOTAL<br>KENDARAAN</strong></td>
<td style="text-align: left;"><span class="badge bg-success">Tunai</span></td>
<td>0</td>
<td>0</td>
<td data-value="${jmlCashlessOut}"><strong>${inCashCasual}</strong></td>
<td data-value="${jmlCashOut}"><strong>${rupiah(jmlCashOut)}</strong></td>
<td data-value="${jmlCashCasual}">${jmlCashCasual}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td data-value="${jmlCashLost}">${jmlCashLost}</td>
@@ -496,8 +519,8 @@ function tableVehicle(response) {
</tr>
<tr>
<td style="text-align: left;"><span class="badge bg-warning">NON TUNAI</td>
<td>0</td>
<td>0</td>
<td data-value="${jmlCashlessOut}"><strong>${inCashCasual}</strong></td>
<td data-value="${jmlCashlessOut}"><strong>${rupiah(jmlCashlessOut)}</strong></td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
@@ -513,8 +536,9 @@ function tableVehicle(response) {
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Kendaraan</strong></td>
<td colspan="0"></td>
<td colspan="2" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Kendaraan</strong></td>
<td colspan="0">${totalAllIn}</td>
<td colspan="0">${totalAllOut}</td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>
@@ -561,6 +585,8 @@ function tableOfficer(response) {
let html = "";
// init petugas data cash
let jmlCashOut = 0;
let jmlCashCasual = 0;
let incomeCashCasual = 0;
@@ -574,6 +600,8 @@ function tableOfficer(response) {
let incomeCashManual = 0;
// init petugas data cash
let jmlCashlessOut = 0;
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
@@ -625,6 +653,8 @@ function tableOfficer(response) {
let totalNonTunai = cashless.totalCashless || 0;
// get data cash
jmlCashOut += tunaiOut;
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
@@ -640,6 +670,8 @@ function tableOfficer(response) {
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessOut += nonTunaiOut;
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
@@ -655,7 +687,7 @@ function tableOfficer(response) {
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
//
totalAllOut = jmlCashOut + jmlCashlessOut;
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
//========= init table body by petugas
html += `
@@ -721,8 +753,8 @@ function tableOfficer(response) {
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>SUB TOTAL<br>Per Petugas</strong></td>
<td style="text-align: left;"><span class="badge bg-success">Tunai</span></td>
<td>0</td>
<td>0</td>
<td><strong>0</strong></td>
<td data-value="${incomeCashCasual}"><strong>${rupiah(jmlCashOut)}</strong></td>
<td data-value="${jmlCashCasual}">${rupiah(jmlCashCasual)}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td data-value="${jmlCashLost}">${rupiah(jmlCashLost)}</td>
@@ -739,8 +771,8 @@ function tableOfficer(response) {
</tr>
<tr>
<td style="text-align: left;"><span class="badge bg-warning">NON TUNAI</td>
<td>0</td>
<td>0</td>
<td><strong>0</strong></td>
<td data-value="${incomeCashlessCasual}"><strong>${rupiah(jmlCashlessOut)}</strong></td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
@@ -756,8 +788,9 @@ function tableOfficer(response) {
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Petugas</strong></td>
<td colspan="0"></td>
<td colspan="2" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Petugas</strong></td>
<td colspan="0">0</td>
<td colspan="0">${totalAllOut}</td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>
@@ -804,6 +837,7 @@ function tablePayment(response) {
let html = "";
// init data cash
let jmlCashOut = 0;
let jmlCashCasual = 0;
let incomeCashCasual = 0;
@@ -817,6 +851,8 @@ function tablePayment(response) {
let incomeCashManual = 0;
// init data cashless
let jmlCashlessOut = 0;
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
@@ -849,7 +885,8 @@ function tablePayment(response) {
let payment = paymentType(cash.typePayment);
// let payment = cash.typePayment;
let casualIn = cash.total;
let casualIn = cash.masuk.casual;
let casualOut = cash.masuk.casual;
let tunaiOut = cash.tunaiOut;
// ===== DATA TUNAI =====
let tCasual = cash.keluar.casual;
@@ -868,6 +905,7 @@ function tablePayment(response) {
let totalTunai = cash.totalCash || 0;
let totalNonTunai = cashless.totalCashless || 0;
jmlCashOut += tunaiOut;
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
@@ -883,6 +921,8 @@ function tablePayment(response) {
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessOut += nonTunaiOut;
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
@@ -898,6 +938,7 @@ function tablePayment(response) {
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
totalAllOut = jmlCashOut + jmlCashlessOut;
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
html += `
@@ -905,7 +946,7 @@ function tablePayment(response) {
<td rowspan="2" style="text-align: left;"><strong>${payment}</strong></td>
<td style="text-align: left;"><span class="badge bg-success">Tunai</span></td>
<td>${casualIn}</td>
<td>${casualIn.jumlah}</td>
<td>${tunaiOut}</td>
<td>${tCasual.jumlah}</td>
@@ -932,7 +973,7 @@ function tablePayment(response) {
<tr>
<td style="text-align: left;"><span class="badge bg-warning">Non Tunai</span></td>
<td>${casualIn}</td>
<td>${casualIn.jumlah}</td>
<td>${nonTunaiOut}</td>
<td>${nCasual.jumlah}</td>
@@ -963,8 +1004,8 @@ function tablePayment(response) {
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>SUB TOTAL<br>Per Jenis Pembayaran</strong></td>
<td style="text-align: left;"><span class="badge bg-success">Tunai</span></td>
<td>0</td>
<td>0</td>
<td><strong>0</strong></td>
<td data-value="${incomeCashCasual}"><strong>${rupiah(jmlCashOut)}</strong></td>
<td data-value="${jmlCashCasual}">${rupiah(jmlCashCasual)}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td data-value="${jmlCashLost}">${rupiah(jmlCashLost)}</td>
@@ -981,8 +1022,8 @@ function tablePayment(response) {
</tr>
<tr>
<td style="text-align: left;"><span class="badge bg-warning">NON TUNAI</td>
<td>0</td>
<td>0</td>
<td><strong>0</strong></td>
<td data-value="${incomeCashlessCasual}"><strong>${rupiah(jmlCashlessOut)}</strong></td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
@@ -998,8 +1039,9 @@ function tablePayment(response) {
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Pembayaran</strong></td>
<td colspan="0"></td>
<td colspan="2" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Pembayaran</strong></td>
<td colspan="0">0</td>
<td colspan="0">${totalAllOut}</td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>