Perbaikan Menu Laporan per pintu pos
This commit is contained in:
@@ -56,6 +56,7 @@
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title laporan">Laporan Per Pintu ({{ $locationSettings->namalokasi }})</h4>
|
||||
<div id="user-profile" data-user-id="{{ auth()->user()->nama }}"></div>
|
||||
<form id="fromByGate">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
@@ -214,7 +215,12 @@
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
let location = @json(collect($locationSettings ?? [])->except('logo'));
|
||||
let user = $('#user-profile').data('user-id');
|
||||
console.log(user);
|
||||
let tanggal = '';
|
||||
let pdfData = [];
|
||||
const title = $('.laporan').val();
|
||||
|
||||
|
||||
$('.select2').select2({
|
||||
theme: 'bootstrap-5',
|
||||
@@ -227,6 +233,15 @@
|
||||
$('#tanggalMulai').val(new Date().toISOString().split('T')[0]);
|
||||
$('#tanggalSelesai').val(new Date().toISOString().split('T')[0]);
|
||||
|
||||
let startDate = $('#tanggalMulai').val();
|
||||
let endDate = $('#tanggalSelesai').val();
|
||||
|
||||
if ( startDate !== endDate ) {
|
||||
tanggal = startDate + ' s/d ' + endDate;
|
||||
} else {
|
||||
tanggal = endDate;
|
||||
}
|
||||
|
||||
$('#btnProses').on('click', function () {
|
||||
|
||||
let formData = $('#fromByGate').serialize();
|
||||
@@ -567,7 +582,10 @@ function formatRupiah(angka) {
|
||||
};
|
||||
}
|
||||
|
||||
let operator = item.petugas;
|
||||
// let operator = item.petugas;
|
||||
let operator = (item.petugas && item.petugas.trim() !== null)
|
||||
? item.petugas
|
||||
: 'NO-OP';
|
||||
|
||||
if (!grouped[gate].operators[operator]) {
|
||||
grouped[gate].operators[operator] = {
|
||||
@@ -578,16 +596,16 @@ function formatRupiah(angka) {
|
||||
|
||||
// 🔥 HITUNG TOTAL
|
||||
if (item.status_transaksi == 0) {
|
||||
casualJml++;
|
||||
casualJml += parseFloat(item.jumlah_transaksi || 0);
|
||||
casualIncome += parseFloat(item.income_transaksi || 0);
|
||||
}
|
||||
|
||||
if (item.status_transaksi == 3) {
|
||||
memberJml++;
|
||||
memberJml += parseFloat(item.jumlah_transaksi || 0);
|
||||
memberIncome += parseFloat(item.income_transaksi || 0);
|
||||
}
|
||||
|
||||
totalTrans++;
|
||||
totalTrans += parseFloat(item.jumlah_transaksi || 0);
|
||||
totalIncome += parseFloat(item.income_transaksi || 0);
|
||||
|
||||
let kendaraan = item.kendaraan;
|
||||
@@ -756,7 +774,10 @@ function kendaraanLabel(kode) {
|
||||
};
|
||||
}
|
||||
|
||||
let operator = item.petugas;
|
||||
// let operator = item.petugas || 'NO-OP';
|
||||
let operator = (item.petugas && item.petugas.trim() !== '')
|
||||
? item.petugas
|
||||
: 'NO-OP';
|
||||
|
||||
if (!grouped[gate].operators[operator]) {
|
||||
grouped[gate].operators[operator] = {
|
||||
@@ -847,7 +868,6 @@ function kendaraanLabel(kode) {
|
||||
|
||||
$('.btn-export-pdf').on('click', function () {
|
||||
|
||||
const title = $('.laporan').val();
|
||||
const { jsPDF } = window.jspdf;
|
||||
|
||||
const doc = new jsPDF({
|
||||
@@ -865,16 +885,16 @@ function kendaraanLabel(kode) {
|
||||
|
||||
pdfData.forEach(row => {
|
||||
|
||||
totalTrans++;
|
||||
totalTrans += parseFloat(row.jumlah_transaksi || 0);
|
||||
totalIncome += parseFloat(row.income_transaksi || 0);
|
||||
|
||||
if (row.status_transaksi == 0) {
|
||||
jmlCasual++;
|
||||
jmlCasual += parseFloat(row.jumlah_transaksi || 0);
|
||||
incomeCasual += parseFloat(row.income_transaksi || 0);
|
||||
}
|
||||
|
||||
if (row.status_transaksi == 3) {
|
||||
jmlMember++;
|
||||
jmlMember += parseFloat(row.jumlah_transaksi || 0);
|
||||
incomeMember += parseFloat(row.income_transaksi || 0);
|
||||
}
|
||||
|
||||
@@ -894,7 +914,7 @@ function kendaraanLabel(kode) {
|
||||
pdfData.forEach(row => {
|
||||
|
||||
let gate = row.gate || '-';
|
||||
let operator = row.petugas || '-';
|
||||
let operator = row.petugas || 'NO-OP';
|
||||
|
||||
if (!grouped[gate]) grouped[gate] = {};
|
||||
if (!grouped[gate][operator]) grouped[gate][operator] = [];
|
||||
@@ -924,7 +944,8 @@ function kendaraanLabel(kode) {
|
||||
operatorFirst ? operator : '',
|
||||
row.kendaraan ?? '-',
|
||||
row.status_transaksi == 0 ? 'Casual' : 'Member',
|
||||
'', // ❌ jumlah dihapus biar ga ngulang
|
||||
// '', // ❌ jumlah dihapus biar ga ngulang
|
||||
row.jumlah_transaksi ?? 0,
|
||||
formatRupiah(row.income_transaksi ?? 0),
|
||||
]);
|
||||
|
||||
@@ -995,14 +1016,18 @@ function kendaraanLabel(kode) {
|
||||
|
||||
doc.setFont('helvetica', 'bold');
|
||||
doc.setFontSize(14);
|
||||
doc.text(String(title || 'LAPORAN'), pageWidth / 2, 15, { align: 'center' });
|
||||
doc.text(String('LAPORAN TRANSAKSI PER PINTU'), pageWidth / 2, 15, { align: 'center' });
|
||||
|
||||
doc.setFontSize(12);
|
||||
doc.setFont('helvetica', 'normal');
|
||||
doc.text(String(tanggal || '-'), pageWidth / 2, 20, { align: 'center' });
|
||||
|
||||
doc.setFontSize(10);
|
||||
doc.setFont('helvetica', 'normal');
|
||||
doc.text(String(location?.namaperusahaan || '-'), pageWidth / 2, 22, { align: 'center' });
|
||||
doc.text(String(location?.namaperusahaan || '-'), pageWidth / 2, 25, { align: 'center' });
|
||||
|
||||
doc.setFontSize(9);
|
||||
doc.text(`Periode : `, marginLeft, 32);
|
||||
doc.text(`Lokasi : ` + location?.namalokasi, marginLeft, 32);
|
||||
|
||||
doc.line(marginLeft, 40, pageWidth - marginRight, 40);
|
||||
}
|
||||
@@ -1049,6 +1074,9 @@ function kendaraanLabel(kode) {
|
||||
}
|
||||
|
||||
doc.setFontSize(9);
|
||||
doc.text(`Dicetak oleh : ${user}`, marginLeft, finalY);
|
||||
doc.text(`Tanggal cetak : ${new Date().toISOString().split('T')[0]}`, marginLeft, finalY + 6);
|
||||
|
||||
doc.text(`Casual : ${jmlCasual} (${formatRupiah(incomeCasual)})`, pageWidth - marginRight, finalY + 12, { align: 'right' });
|
||||
doc.text(`Member : ${jmlMember} (${formatRupiah(incomeMember)})`, pageWidth - marginRight, finalY + 18, { align: 'right' });
|
||||
|
||||
@@ -1056,7 +1084,7 @@ function kendaraanLabel(kode) {
|
||||
doc.text(`Total Pendapatan : ${formatRupiah(totalIncome)}`, pageWidth - marginRight, finalY + 6, { align: 'right' });
|
||||
|
||||
|
||||
doc.save(`${title}.pdf`);
|
||||
doc.save(`Laporan_per_pintu.pdf`);
|
||||
});
|
||||
|
||||
// function renderGateData(data) {
|
||||
|
||||
Reference in New Issue
Block a user