Finalize all-report

This commit is contained in:
2026-08-04 15:51:35 +07:00
parent 73fff183d7
commit 9547bdca7c
21 changed files with 1246 additions and 819 deletions
@@ -166,7 +166,7 @@ public function store(Request $request)
$noid = $seqId->value . "/IDT/" . $mountYearNow;
$user = Auth::user();
$periode = explode(" - ", $dataStiker["daterange"]);
$periode = explode(" - ", $dataStiker["periode"]);
Log::info("Parcing Periode : " . json_encode($periode));
$awal = Carbon::createFromFormat("d-m-Y H:i", $periode[0]);
$akhir = Carbon::createFromFormat("d-m-Y H:i", $periode[1]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
View File
+375 -177
View File
@@ -37,10 +37,38 @@ function printPDF(data) {
// ===== SUSUN BODY TABEL =====
const vehicleBody = [];
let totalTunaiJml = 0,
totalTunaiNilai = 0;
let totalNonTunaiJml = 0,
totalNonTunaiNilai = 0;
// init print nontunai
let vehicleCashCasualJml = 0,
vehicleCashCasualNilai = 0;
let vehicleCashLostJml = 0,
vehicleCashLostNilai = 0;
let vehicleCashPassJml = 0,
vehicleCashPassNilai = 0;
let vehicleCashManualJml = 0,
vehicleCashManualNilai = 0;
let vehicleCashManualMixJml = 0,
vehicleCashManualMixNilai = 0;
let vehicleCashMasalahJml = 0,
vehicleCashMasalahNilai = 0;
let vehicleCashTotal = 0;
// init print nontunai
let vehicleCashlessCasualJml = 0,
vehicleCashlessCasualNilai = 0;
let vehicleCashlessLostJml = 0,
vehicleCashlessLostNilai = 0;
let vehicleCashlessPassJml = 0,
vehicleCashlessPassNilai = 0;
let vehicleCashlessManualJml = 0,
vehicleCashlessManualNilai = 0;
let vehicleCashlessManualMixJml = 0,
vehicleCashlessManualMixNilai = 0;
let vehicleCashlessMasalahJml = 0,
vehicleCashlessMasalahNilai = 0;
let vehicleCashlessTotal = 0;
let grandTotal = 0;
data.vehicle.tunai.forEach(function (cash) {
@@ -60,15 +88,18 @@ function printPDF(data) {
const tLost = cash.keluar.lost;
const tMember = cash.keluar.member;
const tManual = cash.keluar.manual;
const tManualMix = cash.keluar.manualmix ?? { jumlah: 0, income: 0 };
const tMasalah = cash.keluar.masalah ?? { jumlah: 0, income: 0 };
const totalTunai = cash.totalCash || 0;
const vehicleCashTotal = cash.totalCash || 0;
const nCasual = cashless.keluar.casual;
const nLost = cashless.keluar.lost;
const nMember = cashless.keluar.member;
const nManual = cashless.keluar.manual;
const nManualMix = cashless.keluar.manualmix ?? { jumlah: 0, income: 0 };
const nMasalah = cashless.keluar.masalah ?? { jumlah: 0, income: 0 };
const totalNonTunai = cashless.totalCashless || 0;
const vehicleCashlessTotal = cashless.totalCashless || 0;
// baris TUNAI
vehicleBody.push([
@@ -84,8 +115,8 @@ function printPDF(data) {
rupiah(tMember.income),
tManual.jumlah,
rupiah(tManual.income),
0,
0,
tManualMix.jumlah || 0,
rupiah(tManualMix.income),
tMasalah.jumlah,
rupiah(tMasalah.income),
{ content: rupiah(cash.totalCash), styles: { valign: "middle", fontStyle: "bold" } },
@@ -110,8 +141,8 @@ function printPDF(data) {
nManual.jumlah,
rupiah(nManual.income),
0,
0,
tManualMix.jumlah,
rupiah(tManualMix.income),
nMasalah.jumlah,
rupiah(nMasalah.income),
@@ -119,67 +150,107 @@ function printPDF(data) {
{ content: rupiah(cashless.totalCashless), styles: { valign: "middle", fontStyle: "bold" } },
]);
totalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
totalTunaiNilai += cash.totalCash || 0;
totalNonTunaiJml += nCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
totalNonTunaiNilai += cashless.totalCashless || 0;
grandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
// init sum cash
vehicleCashCasualJml += tCasual.jumlah;
vehicleCashCasualNilai += tCasual.income || 0;
vehicleCashLostJml += tLost.jumlah;
vehicleCashLostNilai += tLost.income;
vehicleCashPassJml += tMember.jumlah;
vehicleCashPassNilai += tMember.income;
vehicleCashManualJml += tManual.jumlah;
vehicleCashManualNilai += tManual.income;
vehicleCashManualMixJml += tManualMix.jumlah;
vehicleCashManualMixNilai += tManualMix.income;
vehicleCashMasalahJml += tMasalah.jumlah;
vehicleCashMasalahNilai += tMasalah.income;
// totalTunaiNilai = "X";
// init sum cashless
vehicleCashlessCasualJml += nCasual.jumlah;
vehicleCashlessCasualNilai += nCasual.income || 0;
vehicleCashlessLostJml += nLost.jumlah;
vehicleCashlessLostNilai += nLost.income;
vehicleCashlessPassJml += nMember.jumlah;
vehicleCashlessPassNilai += nMember.income;
vehicleCashlessManualJml += nManual.jumlah;
vehicleCashlessManualNilai += nManual.income;
vehicleCashlessManualMixJml += nManualMix.jumlah;
vehicleCashlessManualMixNilai += nManualMix.income;
vehicleCashlessMasalahJml += nMasalah.jumlah;
vehicleCashlessMasalahNilai += nMasalah.income;
// init sum grandTotal
subTotalCash =
vehicleCashCasualNilai +
vehicleCashLostNilai +
vehicleCashPassNilai +
vehicleCashManualNilai +
vehicleCashlessManualMixNilai +
vehicleCashlessMasalahNilai;
subTotalCashless =
vehicleCashlessCasualNilai +
vehicleCashlessLostNilai +
vehicleCashlessPassNilai +
vehicleCashlessManualNilai +
vehicleCashlessManualMixNilai +
vehicleCashlessMasalahNilai;
grandTotal = (subTotalCash || 0) + (subTotalCashless || 0);
});
// baris TOTAL & GRAND TOTAL
vehicleBody.push([
{ content: "TOTAL", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "SUB TOTAL\nKENDARAAN", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "Tunai", styles: { fillColor: [40, 167, 69], textColor: 255, fontStyle: "bold" } },
"",
"",
{ content: totalTunaiJml, styles: { fontStyle: "bold" } },
rupiah(totalTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(totalTunaiNilai),
vehicleCashCasualJml,
rupiah(vehicleCashCasualNilai),
vehicleCashLostJml,
rupiah(vehicleCashLostNilai),
vehicleCashPassJml,
rupiah(vehicleCashPassNilai),
vehicleCashManualJml,
rupiah(vehicleCashManualNilai),
vehicleCashManualMixJml,
rupiah(vehicleCashManualMixNilai),
vehicleCashMasalahJml,
rupiah(vehicleCashMasalahNilai),
rupiah(subTotalCash),
]);
vehicleBody.push([
{ content: "NON TUNAI", styles: { fillColor: [255, 193, 7], fontStyle: "bold" } },
"",
"",
{ content: totalNonTunaiJml, styles: { fontStyle: "bold" } },
rupiah(totalNonTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(totalNonTunaiNilai),
{ content: vehicleCashlessCasualJml, styles: { fontStyle: "bold" } },
rupiah(vehicleCashlessCasualNilai),
vehicleCashlessLostJml,
rupiah(vehicleCashlessLostNilai),
vehicleCashlessPassJml,
rupiah(vehicleCashlessPassNilai),
vehicleCashlessManualJml,
rupiah(vehicleCashlessManualNilai),
vehicleCashlessManualMixJml,
rupiah(vehicleCashlessManualMixNilai),
vehicleCashlessMasalahJml,
rupiah(vehicleCashlessMasalahNilai),
rupiah(subTotalCashless),
]);
vehicleBody.push([
{ content: "GRAND TOTAL", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: totalTunaiJml + totalNonTunaiJml, styles: { fontStyle: "bold" } },
{ content: rupiah(totalTunaiNilai + totalNonTunaiNilai), styles: { fontStyle: "bold" } },
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
{ content: "GRAND TOTAL\nKENDARAAN", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: vehicleCashCasualJml + vehicleCashlessCasualJml, styles: { fontStyle: "bold" } }, //Jumlah Casual
rupiah(vehicleCashCasualNilai + vehicleCashlessCasualNilai), //Income Casual
{ content: vehicleCashLostJml + vehicleCashlessLostJml, styles: { fontStyle: "bold" } }, //Jumlah Lost
rupiah(vehicleCashLostNilai + vehicleCashlessLostNilai), //Income Tiket Hilang
vehicleCashPassJml + vehicleCashlessPassJml, //Jumlah Member
rupiah(vehicleCashPassNilai + vehicleCashlessPassNilai), //Income Member
vehicleCashManualJml + vehicleCashlessManualJml, //Jumlah Tiket Manual
rupiah(vehicleCashManualNilai + vehicleCashlessManualNilai), //Income Tiket Manual
vehicleCashManualMixJml + vehicleCashlessManualMixJml,
rupiah(vehicleCashManualMixNilai + vehicleCashlessManualMixNilai),
vehicleCashMasalahJml + vehicleCashlessMasalahJml,
rupiah(vehicleCashMasalahNilai + vehicleCashlessMasalahNilai),
{ content: rupiah(grandTotal), styles: { fontStyle: "bold" } },
]);
@@ -232,28 +303,41 @@ function printPDF(data) {
(on.overNight || 0) + (on.onExpired || 0),
]);
// doc.setFont("helvetica", "bold");
// doc.setFontSize(8);
// doc.text("Kendaraan yang masih menginap (Over Night)", 14, doc.lastAutoTable.finalY + 10);
// doc.autoTable({
// head: [["Jenis Kend", "Menginap", "ON (Expired)", "Total"]],
// body: onBody,
// startY: doc.lastAutoTable.finalY + 13,
// theme: "grid",
// styles: { fontSize: 7, cellPadding: 1 },
// headStyles: { fontSize: 8, fillColor: [230, 230, 230], textColor: 0 },
// tableWidth: 100,
// });
//==================================================================
//===================== Print table officer ========================
//==================================================================
const officerStartY = doc.lastAutoTable.finalY + 15;
const officerBody = [];
let ptotalTunaiJml = 0,
ptotalTunaiNilai = 0;
// init print nont tunai
let officerCashCasualJml = 0,
officerCashCasualNilai = 0;
let officerCashLostJml = 0,
officerCashLostNilai = 0;
let officerCashPassJml = 0,
officerCashPassNilai = 0;
let officerCashManualJml = 0,
officerCashManualNilai = 0;
let officerCashManualMixJml = 0,
officerCashManualMixNilai = 0;
let officerCashMasalahJml = 0,
officerCashMasalahNilai = 0;
// init print nont tunai
let ptotalNonTunaiJml = 0,
ptotalNonTunaiNilai = 0;
let officerCashlessCasualJml = 0,
officerCashlessCasualNilai = 0;
let officerCashlessLostJml = 0,
officerCashlessLostNilai = 0;
let officerCashlessPassJml = 0,
officerCashlessPassNilai = 0;
let officerCashlessManualJml = 0,
officerCashlessManualNilai = 0;
let officerCashlessManualMixJml = 0,
officerCashlessManualMixNilai = 0;
let officerCashlessMasalahJml = 0,
officerCashlessMasalahNilai = 0;
let pgrandTotal = 0;
data.officer.tunai.forEach(function (cash) {
@@ -274,13 +358,15 @@ function printPDF(data) {
const tMember = cash.keluar.member;
const tManual = cash.keluar.manual;
const tMasalah = cash.keluar.masalah ?? { jumlah: 0, income: 0 };
const tManualMix = cash.keluar.manualmix ?? { jumlah: 0, income: 0 };
const totalTunai = cash.totalCash || 0;
const oCasual = cashless.keluar.casual;
const nCasual = cashless.keluar.casual;
const nLost = cashless.keluar.lost;
const nMember = cashless.keluar.member;
const nManual = cashless.keluar.manual;
const nMasalah = cashless.keluar.masalah ?? { jumlah: 0, income: 0 };
const nManualMix = cashless.keluar.manualmix ?? { jumlah: 0, income: 0 };
const totalNonTunai = cashless.totalCashless || 0;
// baris TUNAI
@@ -315,8 +401,8 @@ function printPDF(data) {
cash.total,
cashless.nonTunaiOut,
oCasual.jumlah,
rupiah(oCasual.income),
nCasual.jumlah,
rupiah(nCasual.income),
nLost.jumlah,
cash.totalCashless,
@@ -336,68 +422,107 @@ function printPDF(data) {
{ content: rupiah(cashless.totalCashless), styles: { valign: "middle", fontStyle: "bold" } },
]);
ptotalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
ptotalTunaiNilai += cash.totalCash || 0;
ptotalNonTunaiJml += oCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
ptotalNonTunaiJml += nCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
ptotalNonTunaiNilai += cashless.totalCashless || 0;
pgrandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
officerCashCasualJml += tCasual.jumlah;
officerCashCasualNilai += tCasual.income || 0;
officerCashLostJml += tLost.jumlah;
officerCashLostNilai += tLost.income;
officerCashPassJml += tMember.jumlah;
officerCashPassNilai += tMember.income;
officerCashManualJml += tManual.jumlah;
officerCashManualNilai += tManual.income;
officerCashManualMixJml += tManualMix.jumlah;
officerCashManualMixNilai += tManualMix.income;
officerCashMasalahJml += tMasalah.jumlah;
officerCashMasalahNilai += tMasalah.income;
// init sum cashless
officerCashlessCasualJml += nCasual.jumlah;
officerCashlessCasualNilai += nCasual.income || 0;
officerCashlessLostJml += nLost.jumlah;
officerCashlessLostNilai += nLost.income;
officerCashlessPassJml += nMember.jumlah;
officerCashlessPassNilai += nMember.income;
officerCashlessManualJml += nManual.jumlah;
officerCashlessManualNilai += nManual.income;
officerCashlessManualMixJml += nManualMix.jumlah;
officerCashlessManualMixNilai += nManualMix.income;
officerCashlessMasalahJml += nMasalah.jumlah;
officerCashlessMasalahNilai += nMasalah.income;
// sub total cash/ init sum grandTotal
subTotalCash =
officerCashCasualNilai +
officerCashLostNilai +
officerCashPassNilai +
officerCashManualNilai +
officerCashlessManualMixNilai +
officerCashlessMasalahNilai;
subTotalCashless =
officerCashlessCasualNilai +
officerCashlessLostNilai +
officerCashlessPassNilai +
officerCashlessManualNilai +
officerCashlessManualMixNilai +
officerCashlessMasalahNilai;
});
// baris TOTAL & GRAND TOTAL
officerBody.push([
{ content: "TOTAL", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "SUB TOTAL\NPer Petugas", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "Tunai", styles: { fillColor: [40, 167, 69], textColor: 255, fontStyle: "bold" } },
"",
"",
{ content: ptotalTunaiJml, styles: { fontStyle: "bold" } },
rupiah(ptotalTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(ptotalTunaiNilai),
{ content: officerCashCasualJml, styles: { fontStyle: "bold" } },
rupiah(officerCashCasualNilai),
officerCashLostJml,
rupiah(officerCashLostNilai),
officerCashPassJml,
rupiah(officerCashPassNilai),
officerCashManualJml,
rupiah(officerCashManualNilai),
officerCashManualMixJml,
rupiah(officerCashManualMixNilai),
officerCashMasalahJml,
rupiah(officerCashMasalahNilai),
rupiah(subTotalCash),
]);
officerBody.push([
{ content: "NON TUNAI", styles: { fillColor: [255, 193, 7], fontStyle: "bold" } },
"",
"",
{ content: ptotalNonTunaiJml, styles: { fontStyle: "bold" } },
rupiah(ptotalNonTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(ptotalNonTunaiNilai),
{ content: officerCashlessCasualJml, styles: { fontStyle: "bold" } },
rupiah(officerCashlessCasualNilai),
officerCashlessLostJml,
rupiah(officerCashlessLostNilai),
officerCashlessPassJml,
rupiah(officerCashlessPassNilai),
officerCashlessManualJml,
rupiah(officerCashlessManualNilai),
officerCashlessManualMixJml,
rupiah(officerCashlessManualMixNilai),
officerCashlessMasalahJml,
rupiah(officerCashlessMasalahNilai),
rupiah(subTotalCashless),
]);
officerBody.push([
{ content: "GRAND TOTAL", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: ptotalTunaiJml + ptotalNonTunaiJml, styles: { fontStyle: "bold" } },
{ content: rupiah(ptotalTunaiNilai + ptotalNonTunaiNilai), styles: { fontStyle: "bold" } },
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
// "",
// "",
{ content: rupiah(pgrandTotal), styles: { fontStyle: "bold" } },
{ content: "GRAND TOTAL\nPETUGAS", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: officerCashCasualJml + officerCashlessCasualJml, styles: { fontStyle: "bold" } }, //Jumlah Casual
rupiah(officerCashCasualNilai + officerCashlessCasualNilai), //Income Casual
{ content: officerCashLostJml + officerCashlessLostJml, styles: { fontStyle: "bold" } }, //Jumlah Lost
rupiah(officerCashLostNilai + officerCashlessLostNilai), //Income Tiket Hilang
officerCashPassJml + officerCashlessPassJml, //Jumlah Member
rupiah(officerCashPassNilai + officerCashlessPassNilai), //Income Member
officerCashManualJml + officerCashlessManualJml, //Jumlah Tiket Manual
rupiah(officerCashManualNilai + officerCashlessManualNilai), //Income Tiket Manual
officerCashManualMixJml + officerCashlessManualMixJml,
rupiah(officerCashManualMixNilai + officerCashlessManualMixNilai),
officerCashMasalahJml + officerCashlessMasalahJml,
rupiah(officerCashMasalahNilai + officerCashlessMasalahNilai),
{ content: rupiah(grandTotal), styles: { fontStyle: "bold" } },
]);
// ===== HEADER 2 BARIS (grouping) =====
@@ -438,7 +563,7 @@ function printPDF(data) {
doc.setFont("helvetica", "normal");
doc.setFontSize(9);
doc.text("Tanggal : " + (data.vehicle.date ?? "-"), pageWidth / 2, officerStartY - 2, { align: "center" });
doc.text("Tanggal : " + (data.officer.date ?? "-"), pageWidth / 2, officerStartY - 2, { align: "center" });
doc.text("By : " + (data.vehicle.reportTime ?? "-"), pageWidth - 14, officerStartY - 2, { align: "right" });
doc.autoTable({
@@ -457,10 +582,40 @@ function printPDF(data) {
//====================================
const paymentStartY = doc.lastAutoTable.finalY + 15;
const paymentBody = [];
let payTotalTunaiJml = 0,
payTotalTunaiNilai = 0;
let payTotalNonTunaiJml = 0,
payTotalNonTunaiNilai = 0;
// let payTotalTunaiJml = 0,
// payTotalTunaiNilai = 0;
// init print nont tunai
let paymentCashCasualJml = 0,
paymentCashCasualNilai = 0;
let paymentCashLostJml = 0,
paymentCashLostNilai = 0;
let paymentCashPassJml = 0,
paymentCashPassNilai = 0;
let paymentCashManualJml = 0,
paymentCashManualNilai = 0;
let paymentCashManualMixJml = 0,
paymentCashManualMixNilai = 0;
let paymentCashMasalahJml = 0,
paymentCashMasalahNilai = 0;
// init print nont tunai
// let ptotalNonTunaiJml = 0,
// ptotalNonTunaiNilai = 0;
let paymentCashlessCasualJml = 0,
paymentCashlessCasualNilai = 0;
let paymentCashlessLostJml = 0,
paymentCashlessLostNilai = 0;
let paymentCashlessPassJml = 0,
paymentCashlessPassNilai = 0;
let paymentCashlessManualJml = 0,
paymentCashlessManualNilai = 0;
let paymentCashlessManualMixJml = 0,
paymentCashlessManualMixNilai = 0;
let paymentCashlessMasalahJml = 0,
paymentCashlessMasalahNilai = 0;
// let payTotalNonTunaiJml = 0,
// payTotalNonTunaiNilai = 0;
let payGrandTotal = 0;
data.payment.tunai.forEach(function (cash) {
@@ -481,13 +636,15 @@ function printPDF(data) {
const tLost = cash.keluar.lost;
const tMember = cash.keluar.member;
const tManual = cash.keluar.manual;
const tManualMix = cash.keluar.manualmix ?? { jumlah: 0, income: 0 };
const tMasalah = cash.keluar.masalah ?? { jumlah: 0, income: 0 };
const totalTunai = cash.totalCash || 0;
const oCasual = cashless.keluar.casual;
const nCasual = cashless.keluar.casual;
const nLost = cashless.keluar.lost;
const nMember = cashless.keluar.member;
const nManual = cashless.keluar.manual;
const nManualMix = cashless.keluar.manualmix ?? { jumlah: 0, income: 0 };
const nMasalah = cashless.keluar.masalah ?? { jumlah: 0, income: 0 };
const totalNonTunai = cashless.totalCashless || 0;
@@ -523,8 +680,8 @@ function printPDF(data) {
cash.total,
cashless.nonTunaiOut,
oCasual.jumlah,
rupiah(oCasual.income),
nCasual.jumlah,
rupiah(nCasual.income),
nLost.jumlah,
rupiah(nLost.income),
@@ -544,68 +701,109 @@ function printPDF(data) {
{ content: rupiah(cashless.totalCashless), styles: { valign: "middle", fontStyle: "bold" } },
]);
payTotalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
payTotalTunaiNilai += cash.totalCash || 0;
payTotalNonTunaiJml += oCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
payTotalNonTunaiNilai += cashless.totalCashless || 0;
payGrandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
// payTotalTunaiJml += tCasual.jumlah + tLost.jumlah + tMember.jumlah + tManual.jumlah + tMasalah.jumlah;
// payTotalTunaiNilai += cash.totalCash || 0;
// payTotalNonTunaiJml += nCasual.jumlah + nLost.jumlah + nMember.jumlah + nManual.jumlah + nMasalah.jumlah;
// payTotalNonTunaiNilai += cashless.totalCashless || 0;
// payGrandTotal += (cash.totalCash || 0) + (cashless.totalCashless || 0);
paymentCashCasualJml += tCasual.jumlah;
paymentCashCasualNilai += tCasual.income || 0;
paymentCashLostJml += tLost.jumlah;
paymentCashLostNilai += tLost.income;
paymentCashPassJml += tMember.jumlah;
paymentCashPassNilai += tMember.income;
paymentCashManualJml += tManual.jumlah;
paymentCashManualNilai += tManual.income;
paymentCashManualMixJml += tManualMix.jumlah;
paymentCashManualMixNilai += tManualMix.income;
paymentCashMasalahJml += tMasalah.jumlah;
paymentCashMasalahNilai += tMasalah.income;
// init sum cashless
paymentCashlessCasualJml += nCasual.jumlah;
paymentCashlessCasualNilai += nCasual.income || 0;
paymentCashlessLostJml += nLost.jumlah;
paymentCashlessLostNilai += nLost.income;
paymentCashlessPassJml += nMember.jumlah;
paymentCashlessPassNilai += nMember.income;
paymentCashlessManualJml += nManual.jumlah;
paymentCashlessManualNilai += nManual.income;
paymentCashlessManualMixJml += nManualMix.jumlah;
paymentCashlessManualMixNilai += nManualMix.income;
paymentCashlessMasalahJml += nMasalah.jumlah;
paymentCashlessMasalahNilai += nMasalah.income;
// sub total cash/ init sum grandTotal
subTotalCash =
paymentCashCasualNilai +
paymentCashLostNilai +
paymentCashPassNilai +
paymentCashManualNilai +
paymentCashlessManualMixNilai +
paymentCashlessMasalahNilai;
subTotalCashless =
paymentCashlessCasualNilai +
paymentCashlessLostNilai +
paymentCashlessPassNilai +
paymentCashlessManualNilai +
paymentCashlessManualMixNilai +
paymentCashlessMasalahNilai;
});
// baris TOTAL & GRAND TOTAL
paymentBody.push([
{ content: "TOTAL", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "SUB TOTAL\NPer Pembayaran", rowSpan: 2, styles: { fontStyle: "bold" } },
{ content: "Tunai", styles: { fillColor: [40, 167, 69], textColor: 255, fontStyle: "bold" } },
"",
"",
{ content: payTotalTunaiJml, styles: { fontStyle: "bold" } },
rupiah(payTotalTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(ptotalTunaiNilai),
{ content: paymentCashCasualJml, styles: { fontStyle: "bold" } },
rupiah(paymentCashCasualNilai),
paymentCashLostJml,
rupiah(paymentCashLostNilai),
paymentCashPassJml,
rupiah(paymentCashPassNilai),
paymentCashManualJml,
rupiah(paymentCashManualNilai),
paymentCashManualMixJml,
rupiah(paymentCashManualMixNilai),
paymentCashMasalahJml,
rupiah(paymentCashMasalahNilai),
rupiah(subTotalCash),
]);
paymentBody.push([
{ content: "NON TUNAI", styles: { fillColor: [255, 193, 7], fontStyle: "bold" } },
"",
"",
{ content: payTotalNonTunaiJml, styles: { fontStyle: "bold" } },
rupiah(payTotalNonTunaiNilai),
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
rupiah(payTotalNonTunaiNilai),
{ content: paymentCashlessCasualJml, styles: { fontStyle: "bold" } },
rupiah(paymentCashlessCasualNilai),
paymentCashlessLostJml,
rupiah(paymentCashlessLostNilai),
paymentCashlessPassJml,
rupiah(paymentCashlessPassNilai),
paymentCashlessManualJml,
rupiah(paymentCashlessManualNilai),
paymentCashlessManualMixJml,
rupiah(paymentCashlessManualMixNilai),
paymentCashlessMasalahJml,
rupiah(paymentCashlessMasalahNilai),
rupiah(subTotalCashless),
]);
paymentBody.push([
{ content: "GRAND TOTAL", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: payTotalTunaiJml + payTotalNonTunaiJml, styles: { fontStyle: "bold" } },
{ content: rupiah(payTotalTunaiNilai + payTotalNonTunaiNilai), styles: { fontStyle: "bold" } },
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
// "",
// "",
{ content: rupiah(payGrandTotal), styles: { fontStyle: "bold" } },
{ content: "GRAND TOTAL\nPEMBAYARAN", colSpan: 4, styles: { fontStyle: "bold", halign: "center" } },
{ content: paymentCashCasualJml + paymentCashlessCasualJml, styles: { fontStyle: "bold" } }, //Jumlah Casual
rupiah(paymentCashCasualNilai + paymentCashlessCasualNilai), //Income Casual
{ content: paymentCashLostJml + paymentCashlessLostJml, styles: { fontStyle: "bold" } }, //Jumlah Lost
rupiah(paymentCashLostNilai + paymentCashlessLostNilai), //Income Tiket Hilang
paymentCashPassJml + paymentCashlessPassJml, //Jumlah Member
rupiah(paymentCashPassNilai + paymentCashlessPassNilai), //Income Member
paymentCashManualJml + paymentCashlessManualJml, //Jumlah Tiket Manual
rupiah(paymentCashManualNilai + paymentCashlessManualNilai), //Income Tiket Manual
paymentCashManualMixJml + paymentCashlessManualMixJml,
rupiah(paymentCashManualMixNilai + paymentCashlessManualMixNilai),
paymentCashMasalahJml + paymentCashlessMasalahJml,
rupiah(paymentCashMasalahNilai + paymentCashlessMasalahNilai),
{ content: rupiah(grandTotal), styles: { fontStyle: "bold" } },
]);
// ===== HEADER 2 BARIS (grouping) =====
File diff suppressed because one or more lines are too long
+248 -140
View File
@@ -312,9 +312,31 @@ function tableVehicle(response) {
let jmlCashCasual = 0;
let incomeCashCasual = 0;
let jmlCashLost = 0;
let incomeCashLost = 0;
let jmlCashMember = 0;
let incomeCashMember = 0;
let jmlCashManual = 0;
let incomeCashManual = 0;
let jmlCashMasalah = 0;
let incomeCashMasalah = 0;
// Init data cashless
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
let jmlCashlessLost = 0;
let incomeCashlessLost = 0;
let jmlCashlessMember = 0;
let incomeCashlessMember = 0;
let jmlCashlessManual = 0;
let incomeCashlessManual = 0;
let grandTotal = 0;
response.tunai.forEach(function (cash) {
@@ -340,6 +362,8 @@ function tableVehicle(response) {
let tLost = cash.keluar.lost;
let tMember = cash.keluar.member;
let tManual = cash.keluar.manual;
let tManualMix = cash.keluar.manualMix;
let tMasalah = cash.keluar.masalah;
// ===== DATA NON TUNAI =====
let nonTunaiOut = cashless.nonTunaiOut;
@@ -348,65 +372,49 @@ function tableVehicle(response) {
let nLost = cashless.keluar.lost;
let nMember = cashless.keluar.member;
let nManual = cashless.keluar.manual;
let nManualMix = cashless.keluar.manualMix;
let nMasalah = cashless.keluar.masalah;
let totalTunai = cash.totalCash || 0;
let totalNonTunai = cashless.totalCashless || 0;
// init data cash
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
jmlCashLost += tLost.jumlah;
incomeCashLost += tLost.income;
jmlCashMember += tMember.jumlah;
incomeCashMember += tMember.income;
jmlCashManual += tManual.jumlah;
incomeCashManual += tManual.income;
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
grandTotal += totalTunai + totalNonTunai;
// let casualCash = cash.keluar.casual;
// let lostCash = cash.keluar.lost;
// let memberCash = cash.keluar.member;
// let casualIn = cash.total;
jmlCashlessLost += nLost.jumlah;
incomeCashlessLost += nLost.income;
// let casualNon = cashless ? cashless.keluar.casual : { jumlah: 0, income: 0 };
// let lostNon = cashless ? cashless.keluar.lost : { jumlah: 0, income: 0 };
// let memberNon = cashless ? cashless.keluar.member : { jumlah: 0, income: 0 };
jmlCashlessMember += nMember.jumlah;
incomeCashlessMember += nMember.income;
// let totalIncome =
// (cash.totalCash || 0);
jmlCashlessManual += nManual.jumlah;
incomeCashlessManual += nManual.income;
// html += `
// <tr>
// <td style="text-align: left;">${cash.jenis_mobil}</td>
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
// <!-- Jenis Transaksi -->
// <td>${casualIn}</td>
// <td>${cash.tunaiOut}</td>
//
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
// <!-- Casual -->
// <td>${casualCash.jumlah}</td>
// <td>${rupiah(casualCash.income)}</td>
// console.log(tLost.income);
// console.log(incomeCashLost);
// <!-- Tiket Hilang -->
// <td>${lostCash.jumlah}</td>
// <td>${rupiah(lostCash.income)}</td>
// <!-- Member -->
// <td>${memberCash.jumlah}</td>
// <td>${rupiah(memberCash.income)}</td>
// <!-- Manual Input -->
// <td>0</td>
// <td>0</td>
// <!-- Manual Mix -->
// <td>0</td>
// <td>0</td>
// <!-- Tiket Masalah -->
// <td>0</td>
// <td>0</td>
// <!-- Pendapatan -->
// <td><strong>${rupiah(totalIncome)}</strong></td>
// </tr>
// `;
html += `
<tr>
<td rowspan="2" style="text-align: left;"><strong>${cash.jenis_mobil}</strong></td>
@@ -468,13 +476,22 @@ function tableVehicle(response) {
// ===== FOOTER TOTAL =====
html += `
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>TOTAL</strong></td>
<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="${jmlCashCasual}">${rupiah(jmlCashCasual)}</td>
<td data-value="${jmlCashCasual}">${jmlCashCasual}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td colspan="10"></td>
<td data-value="${jmlCashLost}">${jmlCashLost}</td>
<td data-value="${incomeCashLost}">${rupiah(incomeCashLost)}</td>
<td data-value="${jmlCashMember}">${jmlCashMember}</td>
<td data-value="${incomeCashMember}">${rupiah(incomeCashMember)}</td>
<td data-value="${jmlCashManual}">${jmlCashManual}</td>
<td data-value="${incomeCashManual}">${rupiah(incomeCashManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
</tr>
<tr>
@@ -483,24 +500,33 @@ function tableVehicle(response) {
<td>0</td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td colspan="10"></td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
<td data-value="${incomeCashlessLost}">${rupiah(incomeCashlessLost)}</td>
<td data-value="${jmlCashlessMember}">${rupiah(jmlCashlessMember)}</td>
<td data-value="${incomeCashlessMember}">${rupiah(incomeCashlessMember)}</td>
<td data-value="${jmlCashlessManual}">${rupiah(jmlCashlessManual)}</td>
<td data-value="${incomeCashlessManual}">${rupiah(incomeCashlessManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL</strong></td>
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Kendaraan</strong></td>
<td colspan="0"></td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>
<td colspan="0" data-value="${incomeCashLost + incomeCashlessLost}">${rupiah(incomeCashLost + incomeCashlessLost)}</td>
<td colspan="0" data-value="${jmlCashMember + incomeCashlessMember}">${rupiah(jmlCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${incomeCashMember + incomeCashlessMember}">${rupiah(incomeCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${jmlCashManual + jmlCashlessManual}">${rupiah(jmlCashManual + jmlCashlessManual)}</td>/td>
<td colspan="0" data-value="${incomeCashManual + incomeCashlessManual}">${rupiah(incomeCashManual + incomeCashlessManual)}</td>
<td colspan="0" data-value="0">0</td>/td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td><strong>${rupiah(grandTotal)}</strong></td>
</tr>
`;
@@ -534,13 +560,32 @@ function tableOfficer(response) {
console.log(response);
let html = "";
let onData = "";
// init petugas data cash
let jmlCashCasual = 0;
let incomeCashCasual = 0;
let jmlCashLost = 0;
let incomeCashLost = 0;
let jmlCashMember = 0;
let incomeCashMember = 0;
let jmlCashManual = 0;
let incomeCashManual = 0;
// init petugas data cash
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
let jmlCashlessLost = 0;
let incomeCashlessLost = 0;
let jmlCashlessMember = 0;
let incomeCashlessMember = 0;
let jmlCashlessManual = 0;
let incomeCashlessManual = 0;
let grandTotal = 0;
response.tunai.forEach(function (cash) {
@@ -579,61 +624,40 @@ function tableOfficer(response) {
let totalTunai = cash.totalCash || 0;
let totalNonTunai = cashless.totalCashless || 0;
// get data cash
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
jmlCashLost += cash.keluar.lost.jumlah;
incomeCashLost += tLost.income;
jmlCashMember += cash.keluar.member.jumlah;
incomeCashMember += cash.keluar.member.income;
jmlCashManual += cash.keluar.manual.jumlah;
incomeCashManual += cash.keluar.manual.income;
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
grandTotal += totalTunai + totalNonTunai;
// let casualCash = cash.keluar.casual;
// let lostCash = cash.keluar.lost;
// let memberCash = cash.keluar.member;
// let casualIn = cash.total;
jmlCashlessLost += nLost.jumlah;
incomeCashlessLost += nLost.income;
// let casualNon = cashless ? cashless.keluar.casual : { jumlah: 0, income: 0 };
// let lostNon = cashless ? cashless.keluar.lost : { jumlah: 0, income: 0 };
// let memberNon = cashless ? cashless.keluar.member : { jumlah: 0, income: 0 };
jmlCashlessMember += cashless.keluar.member.jumlah;
incomeCashlessMember += cashless.keluar.member.income;
// let totalIncome =
// (cash.totalCash || 0);
jmlCashlessManual += cashless.keluar.manual.jumlah;
incomeCashlessManual += cashless.keluar.manual.income;
// html += `
// <tr>
// <td style="text-align: left;">${cash.jenis_mobil}</td>
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
// <!-- Jenis Transaksi -->
// <td>${casualIn}</td>
// <td>${cash.tunaiOut}</td>
// <!-- Casual -->
// <td>${casualCash.jumlah}</td>
// <td>${rupiah(casualCash.income)}</td>
// <!-- Tiket Hilang -->
// <td>${lostCash.jumlah}</td>
// <td>${rupiah(lostCash.income)}</td>
// <!-- Member -->
// <td>${memberCash.jumlah}</td>
// <td>${rupiah(memberCash.income)}</td>
// <!-- Manual Input -->
// <td>0</td>
// <td>0</td>
// <!-- Manual Mix -->
// <td>0</td>
// <td>0</td>
// <!-- Tiket Masalah -->
// <td>0</td>
// <td>0</td>
// <!-- Pendapatan -->
// <td><strong>${rupiah(totalIncome)}</strong></td>
// </tr>
// `;
//
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
//========= init table body by petugas
html += `
<tr>
<td rowspan="2" style="text-align: left;"><strong>${petugas}</strong></td>
@@ -655,10 +679,10 @@ function tableOfficer(response) {
<td data-value="${tManual.income}">${rupiah(tManual.income)}</td>
<td>0</td>
<td data-value="0}">0</td>
<td data-value="0">0</td>
<td>0</td>
<td data-value="0"></td>
<td data-value="0">0</td>
<td data-value="${totalTunai}"><strong>${rupiah(totalTunai)}</strong></td>
</tr>
@@ -695,13 +719,23 @@ function tableOfficer(response) {
// ===== FOOTER TOTAL =====
html += `
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>TOTAL</strong></td>
<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 data-value="${jmlCashCasual}">${rupiah(jmlCashCasual)}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td colspan="11">${rupiah(incomeCashCasual)}</td>
<td data-value="${jmlCashLost}">${rupiah(jmlCashLost)}</td>
<td data-value="${incomeCashLost}">${incomeCashLost}</td>
<td data-value="${jmlCashMember}">${rupiah(jmlCashMember)}</td>
<td data-value="${incomeCashMember}">${rupiah(incomeCashMember)}</td>
<td data-value="${jmlCashManual}">${rupiah(jmlCashManual)}</td>
<td data-value="${incomeCashManual}">${rupiah(incomeCashManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
</tr>
<tr>
<td style="text-align: left;"><span class="badge bg-warning">NON TUNAI</td>
@@ -709,23 +743,33 @@ function tableOfficer(response) {
<td>0</td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td colspan="11">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
<td data-value="${incomeCashlessLost}">${rupiah(incomeCashlessLost)}</td>
<td data-value="${jmlCashlessMember}">${rupiah(jmlCashlessMember)}</td>
<td data-value="${incomeCashlessMember}">${rupiah(incomeCashlessMember)}</td>
<td data-value="${jmlCashlessManual}">${rupiah(jmlCashlessManual)}</td>
<td data-value="${incomeCashlessManual}">${rupiah(incomeCashlessManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL</strong></td>
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Petugas</strong></td>
<td colspan="0"></td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>
<td colspan="0" data-value="${incomeCashLost + incomeCashlessLost}">${rupiah(incomeCashLost + incomeCashlessLost)}</td>
<td colspan="0" data-value="${jmlCashMember + incomeCashlessMember}">${rupiah(jmlCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${incomeCashMember + incomeCashlessMember}">${rupiah(incomeCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${jmlCashManual + jmlCashlessManual}">${rupiah(jmlCashManual + jmlCashlessManual)}</td>/td>
<td colspan="0" data-value="${incomeCashManual + incomeCashlessManual}">${rupiah(incomeCashManual + incomeCashlessManual)}</td>
<td colspan="0" data-value="0">0</td>/td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td><strong>${rupiah(grandTotal)}</strong></td>
</tr>
`;
@@ -756,16 +800,35 @@ function tableOfficer(response) {
function tablePayment(response) {
// Update tabel dengan data yang diterima
console.log(response);
// console.log(response);
let html = "";
let onData = "";
// init data cash
let jmlCashCasual = 0;
let incomeCashCasual = 0;
let jmlCashLost = 0;
let incomeCashLost = 0;
let jmlCashMember = 0;
let incomeCashMember = 0;
let jmlCashManual = 0;
let incomeCashManual = 0;
// init data cashless
let jmlCashlessCasual = 0;
let incomeCashlessCasual = 0;
let jmlCashlessLost = 0;
let incomeCashlessLost = 0;
let jmlCashlessMember = 0;
let incomeCashlessMember = 0;
let jmlCashlessManual = 0;
let incomeCashlessManual = 0;
let grandTotal = 0;
response.tunai.forEach(function (cash) {
@@ -808,10 +871,35 @@ function tablePayment(response) {
jmlCashCasual += cash.keluar.casual.jumlah;
incomeCashCasual += cash.keluar.casual.income;
jmlCashLost += cash.keluar.lost.jumlah;
incomeCashLost += tLost.income;
jmlCashMember += cash.keluar.member.jumlah;
incomeCashMember += cash.keluar.member.income;
jmlCashManual += cash.keluar.manual.jumlah;
incomeCashManual += cash.keluar.manual.income;
subTotalIncomeCash = incomeCashCasual + incomeCashLost + incomeCashMember + incomeCashManual;
// ========= init data cashless
jmlCashlessCasual += cashless.keluar.casual.jumlah;
incomeCashlessCasual += cashless.keluar.casual.income;
grandTotal += totalTunai + totalNonTunai;
jmlCashlessLost += nLost.jumlah;
incomeCashlessLost += nLost.income;
jmlCashlessMember += cashless.keluar.member.jumlah;
incomeCashlessMember += cashless.keluar.member.income;
jmlCashlessManual += cashless.keluar.manual.jumlah;
incomeCashlessManual += cashless.keluar.manual.income;
subTotalIncomeCashless =
incomeCashlessCasual + incomeCashlessLost + incomeCashlessMember + incomeCashlessManual;
grandTotal = subTotalIncomeCash + subTotalIncomeCashless;
html += `
<tr>
<td rowspan="2" style="text-align: left;"><strong>${payment}</strong></td>
@@ -836,7 +924,7 @@ function tablePayment(response) {
<td data-value="0}">0</td>
<td>0</td>
<td data-value="0"></td>
<td data-value="0">0</td>
<td data-value="${totalTunai}"><strong>${rupiah(totalTunai)}</strong></td>
</tr>
@@ -873,13 +961,23 @@ function tablePayment(response) {
// ===== FOOTER TOTAL =====
html += `
<tr class="table">
<td rowspan="2" style="text-align: center;"><strong>TOTAL</strong></td>
<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 data-value="${jmlCashCasual}">${rupiah(jmlCashCasual)}</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
<td colspan="11">${rupiah(incomeCashCasual)}</td>
<td data-value="${jmlCashLost}">${rupiah(jmlCashLost)}</td>
<td data-value="${incomeCashLost}">${incomeCashLost}</td>
<td data-value="${jmlCashMember}">${rupiah(jmlCashMember)}</td>
<td data-value="${incomeCashMember}">${rupiah(incomeCashMember)}</td>
<td data-value="${jmlCashManual}">${rupiah(jmlCashManual)}</td>
<td data-value="${incomeCashManual}">${rupiah(incomeCashManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${incomeCashCasual}">${rupiah(incomeCashCasual)}</td>
</tr>
<tr>
<td style="text-align: left;"><span class="badge bg-warning">NON TUNAI</td>
@@ -887,23 +985,33 @@ function tablePayment(response) {
<td>0</td>
<td>${jmlCashlessCasual}</td>
<td data-value="${incomeCashlessCasual}">${rupiah(incomeCashlessCasual)}</td>
<td colspan="11">${rupiah(incomeCashlessCasual)}</td>
<td data-value="${jmlCashlessLost}">${rupiah(jmlCashlessLost)}</td>
<td data-value="${incomeCashlessLost}">${rupiah(incomeCashlessLost)}</td>
<td data-value="${jmlCashlessMember}">${rupiah(jmlCashlessMember)}</td>
<td data-value="${incomeCashlessMember}">${rupiah(incomeCashlessMember)}</td>
<td data-value="${jmlCashlessManual}">${rupiah(jmlCashlessManual)}</td>
<td data-value="${incomeCashlessManual}">${rupiah(incomeCashlessManual)}</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td data-value="${subTotalIncomeCashless}">${rupiah(subTotalIncomeCashless)}</td>
</tr>
<tr class="table">
<td colspan="3" class="text-center"><strong>GRAND TOTAL</strong></td>
<td colspan="3" class="text-center"><strong>GRAND TOTAL<br>Pendapatan Per Pembayaran</strong></td>
<td colspan="0"></td>
<td colspan="0">${jmlCashCasual + jmlCashlessCasual}</td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}"><strong>${rupiah(incomeCashCasual + incomeCashlessCasual)}</strong></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0"></td>
<td colspan="0" data-value="${incomeCashCasual + incomeCashlessCasual}">${rupiah(incomeCashCasual + incomeCashlessCasual)}</td>
<td colspan="0" data-value="${jmlCashLost + jmlCashlessLost}">${rupiah(jmlCashLost + jmlCashlessLost)}</td>
<td colspan="0" data-value="${incomeCashLost + incomeCashlessLost}">${rupiah(incomeCashLost + incomeCashlessLost)}</td>
<td colspan="0" data-value="${jmlCashMember + incomeCashlessMember}">${rupiah(jmlCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${incomeCashMember + incomeCashlessMember}">${rupiah(incomeCashMember + incomeCashlessMember)}</td>
<td colspan="0" data-value="${jmlCashManual + jmlCashlessManual}">${rupiah(jmlCashManual + jmlCashlessManual)}</td>/td>
<td colspan="0" data-value="${incomeCashManual + incomeCashlessManual}">${rupiah(incomeCashManual + incomeCashlessManual)}</td>
<td colspan="0" data-value="0">0</td>/td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td colspan="0" data-value="0">0</td>
<td><strong>${rupiah(grandTotal)}</strong></td>
</tr>
`;
File diff suppressed because one or more lines are too long
+131
View File
@@ -0,0 +1,131 @@
$(document).ready(function () {
$(document).on('change', '.form-select', function () {
if ($('option:selected', this).val() == '') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
// $(".site").val('');
} else if ($('option:selected', this).val() == 'nama') {
$(".nama").css('display', 'block');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nopol') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'block');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'nocard') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'block');
$(".notrans").css('display', 'none');
$(".input-default").val('');
} else if ($('option:selected', this).val() == 'notrans') {
$(".nama").css('display', 'none');
$(".nopol").css('display', 'none');
$(".nocard").css('display', 'none');
$(".notrans").css('display', 'block');
$(".input-default").val('');
} else {
$(".position").css('display', 'none');
$(".level-area").css('display', 'none');
$(".input-default").val('');
}
});
var url = $('#example').data('url');
$('#search-button').on('click', function () {
// Ambil nilai dari selected option
var option = $('.select-option').val();
// Cek jika option yang dipilih bukan 'Pencarian Data...' yang berarti pilihan valid
if (option && option !== '') {
var inputField = $('.input-default:visible');
// Periksa apakah input tersebut kosong
if (inputField.length === 0 || inputField.val().trim() === '') {
// Jika kosong, tampilkan alert
alert('Harap masukkan ' + (option === 'nopol' ? 'No. Polisi' : option === 'nocard' ? 'No. Card' : option === 'nama' ? 'Nama' : option === 'notrans' ? 'No. Transaksi' : 'No. Transaksi'));
inputField.focus();
return; // Hentikan proses jika input kosong
}
}
console.log(option);
var formData = $('#search-form .input-default:visible').val();
console.log(formData);
$.ajax({
url: url,
type: "POST",
data: $('#search-form').serialize(),
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
dataType: 'json',
success: function (response) {
var tbody = $('#example tbody');
tbody.empty();
if (response.length !== 0) {
// Kelompokkan data berdasarkan notrans
var groupedData = {};
response.forEach((element) => {
if (!groupedData[element.notrans]) {
groupedData[element.notrans] = [];
}
groupedData[element.notrans].push(element);
});
// Generate HTML
Object.keys(groupedData).forEach((notrans, index) => {
var rows = groupedData[notrans];
var rowspan = rows.length;
rows.forEach((element, rowIndex) => {
var rowHtml = `
<tr class="mb-2"
data-notrans="${element.notrans}"
data-nama="${element.nama}"
data-alamat="${element.alamat}"
data-telp="${element.telepon}"
data-jmember="${element.jmember}"
data-dept="${element.dept}"
data-awal="${element.awal}"
data-akhir="${element.akhir}"
>
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="text-align: center;">${index + 1}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p2" style="padding: 2px;">${element.notrans}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.nama}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.alamat}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.telepon}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.jmember}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${element.dept}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" width="200" style="text-align: center; padding: 2px;">${element.awal} <br> ${element.akhir}</td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="padding: 2px;"> ${[...new Set(rows.map(r => `${r.nopol || 'No. Polisi tidak ada'} (${r.vehicle || ''})`))].join('<br>')} </td>` : ''}
${rowIndex === 0 ? `<td rowspan="${rowspan}" style="padding: 2px;">${[...new Set(rows.map(r => r.no_card || 'Tidak ada kartu'))].join('<br>')}</td>` : ''}
</tr>
`;
// ${rowIndex === 0 ? `<td rowspan="${rowspan}" class="p-2" style="text-align: center;">
// <button class="btn btn-secondary btn-xs extend-button mb-1" data-id="${element.notrans}">Extend</button>
// <button class="btn btn-primary btn-xs edit-button mb-1" data-id="${element.notrans}">Edit</button>
// <button class="btn btn-danger btn-xs delete-button mb-1" data-id="${element.notrans}">Delete</button>
// </td>` : ''}
tbody.append(rowHtml);
});
});
} else {
alert("Data tidak ditemukan.");
$('#example tbody').html(
`<tr>
<td colspan="11" style="text-align: center;"><p class="text-danger mt-3">Tidak ditemukan data</p></td>
<tr>`);
}
}
})
})
});
+279
View File
@@ -0,0 +1,279 @@
$(document).ready(function () {
const today = moment();
const startDate = moment(today).startOf("day").format("DD-MM-YYYY 00:00");
const endDate = moment(today).endOf("day").format("DD-MM-YYYY 23:59");
$(".tambah-member").validate({
rules: {
nama: {
required: true,
},
member: {
required: true,
},
depart: {
required: true,
},
},
messages: {
nama: {
required: "Masukkan nama member",
},
member: {
required: "Jenis Member belum di pilih",
},
depart: {
required: "Jenis Langganan belum di pilih",
},
},
// errorElement: 'span',
// errorPlacement: function (error, element) {
// error.addClass('invalid-feedback');
// // element.closest('.form-group').append(error);
// },
highlight: function (element, errorClass, validClass) {
$(element).addClass("is-invalid");
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass("is-invalid");
},
});
// const startDate = moment().startOf("day"); // hari ini jam 00:00
// const endDate = moment().add(7, "days").endOf("day"); // +7 hari
$(".input-daterange-timepicker").daterangepicker(
// 👈 method-nya "daterangepicker", bukan "datepicker"
{
timePicker: true,
locale: {
format: "DD-MM-YYYY HH:mm",
},
timePicker24Hour: true,
timePickerSeconds: false,
buttonClasses: ["btn", "btn-sm"],
applyClass: "btn-danger",
cancelClass: "btn-inverse",
startDate: startDate,
endDate: endDate,
parentEl: "#modal-member", // 👈 daterangepicker pakai "parentEl", bukan "container"
},
function (startDate, endDate) {
console.log(
`Range selected: ${startDate.format("DD-MM-YYYY HH:mm")} s/d ${endDate.format("DD-MM-YYYY HH:mm")}`,
);
$(".input-daterange-timepicker").val(
`${startDate.format("DD-MM-YYYY HH:mm")} s/d ${endDate.format("DD-MM-YYYY HH:mm")}`,
);
},
);
// Set nilai awal dan akhir di input
$(".input-daterange-timepicker").val(`${startDate} - ${endDate}`);
// $('.awal').val(startDate);
// $('.akhir').val(endDate);
$("#jenisVehicle").on("change", function () {
var jenisMembers = member;
var vehicleSelected = $(this).val();
var $jenisMember = $("#jenis-member");
// console.log(jenisMembers);
$jenisMember.empty();
$jenisMember.append('<option selected value="">Pilih Jenis</option>');
jenisMembers.forEach((item) => {
if (item.id_mobil === vehicleSelected) {
if (item.id_mobil !== 0) {
$jenisMember.append(
`<option value="${item.tarif}">${item.jenis_langganan} - ${item.tarif} </option>`,
);
console.log($jenisMember);
} else {
$jenisMember.append(`<option value="">Tidak ada Pilihan </option>`);
}
}
});
});
$("#nopol-add").on("click", function () {
var nopol = $(".nopol-add").val().trim();
console.log(nopol);
// var vehicle = $('#jenisVehicle option:selected').text();
var vehicle = $("#jenisVehicle").val();
var vehicleName = $("#jenisVehicle option:selected").text();
var member = $("#jenis-member option:selected").text();
var merk = $(".merk").val().trim();
$(".nopol-add").removeClass("is-invalid"); // Hapus kelas jika ada sebelumnya
$(".nopol-add").next(".invalid-feedback").hide();
if (!vehicle) {
alert("Wajib pilih jenis kendaraan");
return;
}
$.ajax({
url: "stiker/checkField",
type: "POST",
data: { nopol: nopol },
headers: { "X-CSRF-token": $('meta[name="csrf-token"]').attr("content") },
success: function (r) {
if (r.response === true) {
var rowhtml = `
<tr>
<td class="text-center">${nopol}</td>
<td class="text-center" data-value="${vehicle}"">${vehicleName}</td>
<td class="text-center">${member}</td>
<td class="text-center">${merk}</td>
<td class="text-center p-1" style="text-align: center;">
<button class="btn btn-danger btn-xs delete-row">Hapus<buttion>
</td>
</tr>
`;
$("#list-nopol").append(rowhtml);
console.log("Berhasil menambahkan " + nopol);
$(".nopol-add").val("");
$("#jenisVehicle").val("");
$("#jenis-member").val("");
$(".merk").val("");
} else {
// var warn = `<div class="invalid-feedback">Nopol sudah ada</div>`;
$(".nopol-add").addClass("is-invalid"); // Tambahkan kelas invalid
$(".nopol-add").next(".invalid-feedback").text(r.message).show(); // Tampilkan pesan error
console.log(r.message);
}
},
error: function () {
alert("Terjadi kesalahan saat memeriksa nopol");
},
});
});
$(".kartu").on("keydown", function (e) {
var kartu = $(".kartu").val().trim();
if (e.key === "Enter") {
// $.ajax ({
// url: 'member/checkField',
// type: 'POST',
// data: {nocard: kartu},
// headers: {'X-CSRF-token': $('meta[name="csrf-token"]').attr('content')},
// success: function (r) {
// if (r.response === true) {
e.preventDefault();
$(".nourut").focus();
// }
// }
// });
}
});
$(".nourut").on("keydown", function (e) {
if (e.key === "Enter") {
e.preventDefault();
var nocard = $(".kartu").val().trim();
var nourut = $(".nourut").val().trim();
var rowHtml = `
<tr>
<td class="text-center strong">${nocard}</td>
<td class="text-center strong">${nourut}</td>
<td class="text-center p-2" >
<button class="btn btn-danger btn-xs delete-row">Hapus<buttion>
</td>
</tr>
`;
$("#list-card").append(rowHtml);
$(".kartu").val("");
$(".nourut").val("");
}
});
$("#list-card").on("click", ".delete-row", function () {
$(this).closest("tr").remove(); // Hapus baris yang diklik
});
$(".simpan").on("click", function () {
var tombol = $(this);
var formCollect = $("#add-member").serialize();
var collectNopol = [];
var cardCollect = [];
$("#list-nopol tr").each(function () {
var row = $(this);
var rowData = {
nopol: row.find("td:nth-child(1)").text().trim(),
vehicle: row.find("td:nth-child(2)").data("value"),
member: row.find("td:nth-child(3)").text().trim(),
merk: row.find("td:nth-child(4)").text().trim(),
};
collectNopol.push(rowData);
});
console.log(collectNopol);
$("#list-card tr").each(function () {
var row = $(this);
var rowCard = {
nocard: row.find("td:nth-child(1)").text(),
nourut: row.find("td:nth-child(2)").text(),
};
cardCollect.push(rowCard);
});
console.log(cardCollect);
const formDataString = formCollect;
// Mengonversi query string menjadi objek
const formDataObj = {};
const searchParams = new URLSearchParams(formDataString);
searchParams.forEach((value, key) => {
formDataObj[key] = value;
});
console.log(formDataObj);
var allData = {
formData: formDataObj,
nopolData: collectNopol,
cardNumber: cardCollect,
};
if ($(".tambah-member").valid()) {
$.ajax({
url: $("#add-member").attr("action"),
type: "POST",
data: allData,
headers: { "X-CSRF-token": $('meta[name="csrf-token"]').attr("content") },
beforeSend: function () {
tombol.attr("disabled", true);
},
success: function (r) {
// alert('Data berhasil dikirim');
$("#modal-member").modal("hide");
if (r.response == true) {
Swal.fire({
title: "Berhasil!!",
text: "Member anda telah terdaftar !!",
timer: 5000,
showConfirmButton: !1,
}).then(function () {
// Reload halaman setelah SweetAlert ditutup
location.reload(); // Ini akan me-reload halaman
});
} else if (r.response == false) {
Swal.fire("Oops...", "Terjadi kendala !!", "silahkan hubungi admin", "error");
}
console.log(r);
},
error: function (xhr, status, error) {
alert("Terjadi kesalahan: " + error);
},
});
}
});
});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -57,7 +57,7 @@
<table class="table table-striped" id="cash">
<thead>
<tr>
<th rowspan="2" colspan="2">Jenis Kend</th>
<th rowspan="2" colspan="2">Jenis Kendaraan</th>
<th colspan="2">Jenis Transaksi</th>
<th colspan="2">Casual</th>
<th colspan="2">Tiket Hilang</th>
@@ -148,7 +148,7 @@
<table class="table" id="payment">
<thead>
<tr>
<th rowspan="2">Jenis Kend</th>
<th rowspan="2" colspan="2">Jenis Pembayaran</th>
<th colspan="2">Jenis Transaksi</th>
<th colspan="2">Casual</th>
<th colspan="2">Tiket Hilang</th>
@@ -197,6 +197,6 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/3.5.31/jspdf.plugin.autotable.min.js"></script>
<script src="{{ asset('js/report/report-vehicle.min.js') }}"></script>
<script src="{{ asset('js/report/report-print.min.js') }}"></script>
<script src="{{ asset('jx/report/report-vehicle.parkq.jx') }}"></script>
<script src="{{ asset('jx/report/report-print.parkq.jx') }}"></script>
@endsection
@@ -0,0 +1,188 @@
<div class="modal fade bd-ubah-modal-lg" id="extend-member" tabindex="-1" role="dialog" data-bs-backdrop="static" data-keyboard="false">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h4 class="card-title">Ubah Data Stiker/Member</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal">
</button>
</div>
<div class="modal-body">
<div class="custom-tab-1">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#home1"><i class="la la-user me-2"></i>Data Pengunjung</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#profile1"><i class="la la-home me-2"></i> Data Kendaraan</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="tab" href="#contact1"><i class="la la-phone me-2"></i>Data Akses</a>
</li>
</ul>
<form class="ubah-member" id="edit-member" methode="POST">
@csrf
@method('PUT')
<div class="tab-content">
<div class="tab-pane fade show active" id="home1" role="tabpanel">
<div class="pt-4">
<div class="row">
<div class="col-xl-6">
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control" value="PERPANJANG" readonly>
<input type="hidden" class="form-control" name="jenis_transaksi" value="1" readonly>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Nama</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="nama" placeholder="Masuk kan nama...." required>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Alamat</label>
<div class="col-lg-8">
<textarea type="text" class="form-control" rows="3" name="address" placeholder="JL. Hati hati raya..."></textarea>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Telepon</label>
<div class="col-lg-8">
<input type="number" class="form-control" phone="phone" placeholder="+62 81/081...">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label required">Periode :</label>
<div class="col-lg-8">
<input class="form-control input-daterange-timepicker" type="text" name="daterange" value="">
</div>
</div>
</div>
<div class="col-xl-6">
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis</label>
<div class="col-lg-6">
<select class="select-data form-control" name="member" id="member">
<option selected value="">Pilih Jenis</option>
@foreach ($memberSelect as $member)
<option value="{{ $member->id }}">{{ $member->nama }}</option>
@endforeach
</select>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Dept</label>
<div class="col-lg-6">
<select class="select-data form-control" name="depart" id="department">
<option selected value="">Pilih Departemen</option>
@foreach ($departmentSelect as $department)
<option value="{{ $department->kode }}">{{ $department->nama }}</option>
@endforeach
</select>
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Note :</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="note" placeholder="Catatan...">
</div>
</div>
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Harga (Rp.):</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="harga" placeholder="10.000">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="profile1">
<div class="pt-4">
<h4>Tambahkan Kendaraan</h4>
<div class="row form-material">
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Nomer Polisi</label>
<input type="text" class="form-control nopol-add" onkeyup="this.value = this.value.toUpperCase();" placeholder="No. Polisi">
<div class="invalid-feedback">Nomer Polisi sudah ada</div>
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Jenis Kendaraan :</label>
<select class="select form-control" id="jenisVehicle">
<option selected value="">Jenis Kendaraan</option>
@foreach ($vehicleSelect as $kendaraan)
<option value="{{ $kendaraan->id }}">{{ $kendaraan->nama }}</option>
@endforeach
</select>
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Jenis Member :</label>
<select class="select-data form-control member" id="jenis-member">
</select>
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label">Merk : </label>
<input type="text" class="form-control merk" onkeyup="this.value = this.value.toUpperCase();" placeholder="Honda...">
</div>
<div class="col-xl-3 col-md-6 mb-3">
<label class="form-label"></label>
<button type="button" id="nopol-add" class="btn btn-primary btn-xs">Tambah</button>
</div>
<hr>
<table class="table-bordered table-striped">
<thead>
<tr>
<th class="col-2 text-center p-2">Nomer Polisi</th>
<th class="col-2 text-center">Jenis Kendaraan</th>
<th class="col-2 text-center">Merk Kendaraan</th>
<th class="col-2 text-center">Type Member</th>
<th class="col-2 text-center">Aksi</th>
</tr>
</thead>
<tbody id="list-nopol">
</tbody>
</table>
</div>
</div>
</div>
<div class="tab-pane fade" id="contact1">
<div class="pt-4">
<h4>Tambahkan Kartu</h4>
<div class="row form-material">
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Kartu</label>
<input type="text" class="form-control kartu" placeholder="01234567...">
</div>
<div class="col-xl-6 col-md-6 mb-3">
<label class="form-label">Nomer Urut</label>
<input type="text" class="form-control nourut" placeholder="01234567...">
</div>
<hr>
{{-- <div class="table-responsive"> --}}
<table class="table-bordered">
<thead>
<tr>
<th class="col-5 text-center p-2" >Nomer Kartu</th>
<th class="col-5 text-center">No. Urut</th>
<th class="col-2 text-center">Aksi</th>
</tr>
</thead>
<tbody id="list-card">
</tbody>
</table>
{{-- </div> --}}
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger light" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary simpan">Simpan Perubahan</button>
</div>
</div>
</div>
</div>
+11 -5
View File
@@ -139,7 +139,8 @@ class="form-control"
<button class="btn btn-primary btn-sm add-button" data-bs-toggle="modal" data-bs-target=".bd-example-modal-lg">Tambah</button>
</div>
<div id="rowActions" class="d-none">
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Edit</button>
<button class="btn btn-success btn-sm extend-button" id="btnExtend" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Perpanjang</button>
<button class="btn btn-warning btn-sm edit-button" id="btnEdit" data-bs-toggle="modal" data-bs-target=".bd-ubah-modal-lg">Ubah</button>
<button class="btn btn-danger btn-sm" id="btnDelete">Hapus</button>
<button class="btn btn-info btn-sm" id="btnDetail">Detail</button>
</div>
@@ -191,11 +192,11 @@ class="form-control"
<script src="{{asset ('vendor/sweetalert2/dist/sweetalert2.min.js') }}"></script>
<script src="{{asset ('js/custom.min.js') }}"></script>
<script src="{{asset ('js/dlabnav-init.js') }}"></script>
<script src="{{asset ('js/member/index.js') }}"></script>
<script>
var member = @json($jenisStiker);
</script>
<script src="{{asset ('js/member/member-register.js') }}"></script>
<script src="{{asset ('jx/stikermember/index.parkq.jx') }}"></script>
<script src="{{asset ('jx/stikermember/member-register.parkq.jx') }}"></script>
<script>
$(document).ready(function () {
var vehicle = @json($vehicleSelect);
@@ -225,12 +226,17 @@ class="form-control"
});
$(document).on('click', '.extend-button', function () {
if (!selectedRowData) {
alert('Pilih data terlebih dahulu');
return;
}
var rawId = $(this).data('id');
let id = rawId.substring(0, rawId.indexOf('/'));
// let id = rawId.substring(0, rawId.indexOf('/'));
let id = selectedRowData;
var kendaraan = vehicle;
console.log('Data ID : ', id);
var actionUrl = '{{ route("member.show", ":id") }}';
var actionUrl = '{{ route("getStikerMember.show", ":id") }}';
actionUrl = actionUrl.replace(':id', id);
console.log('Action URL : ', actionUrl);
// $('#extend-member').attr('action'), actionUrl;
+1 -1
View File
@@ -30,7 +30,7 @@
<div class="mb-3 row">
<label class="col-lg-3 col-form-label form-label">Jenis Transaksi</label>
<div class="col-lg-8">
<input type="text" class="form-control" value="BARU" readonly>
<input type="text" class="form-control" value="UBAH DATA" readonly>
<input type="hidden" class="form-control" name="jenis_transaksi" value="0" readonly>
</div>
</div>
+2 -2
View File
@@ -71,7 +71,8 @@
Route::prefix("/transaksi")->group(function () {
Route::resource("parkir", TransaksiParkirController::class)->names("transaksiparkir");
Route::get("stiker", [MemberStikerController::class, "index"]);
Route::resource("stiker", MemberStikerController::class)->names("getStikerMember");
Route::post("stiker/data", [MemberStikerController::class, "getMember"])->name("getMember");
Route::post("stiker/checkField", [MemberStikerController::class, "checkField"]);
Route::resource("member", MemberStikerController::class);
});
@@ -107,7 +108,6 @@
Route::resource("verify", VerifyTransController::class);
Route::post("/verify/show", [VerifyTransController::class, "showImages"]);
Route::resource("losttiket", LostiketController::class);
Route::post("member/data", [MemberStikerController::class, "getMember"])->name("getMember");
Route::post("member/checkField", [MemberStikerController::class, "checkField"]);
Route::resource("settings", LostiketController::class);
Route::resource("settings-register", MemberProductController::class);