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
+94 -59
View File
@@ -174,13 +174,13 @@ public function vehicleReport(Request $request)
// ? 'tp.waktu_keluar'
// : 'tp.pklogin';
if ($harian == 1) {
// $dateColumn = ['tp.waktu_masuk', 'tp.waktu_keluar'];
$isReport = "harian";
$dateColumn = ["tp.waktu_keluar"];
// $dateColumn = ["tp.waktu_keluar"];
$dateColumn = ["tp.waktu_masuk", "tp.waktu_keluar"];
} else {
// $dateColumn = ['tp.pmlogin', 'tp.pklogin'];
$isReport = "shift";
$dateColumn = ["tp.pklogin"];
// $dateColumn = ["tp.pklogin"];
$dateColumn = ["tp.pmlogin", "tp.pklogin"];
}
$transactions = DB::table("transaksi_parkir as tp")
@@ -230,11 +230,26 @@ public function vehicleReport(Request $request)
$tunai = $transactions
->sortBy("id_kendaraan")
->groupBy("id_kendaraan")
->map(function ($items, $idKendaraan) {
->map(function ($items, $idKendaraan) use ($startDate, $endDate) {
$start = $startDate . " 00:00:00";
$end = $endDate . " 00:00:00";
// ======================
// PISAH MASUK & KELUAR
// ======================
// $masuk = $items->where('status', 1);
// $masuk = $items;
$masuk = $items->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
// $masuk = $items->where("status", 1);
// ->whereBetween("waktu_masuk", [$startDate . " 00:00:00", $endDate . " 23:59:59"]);
// ->filter(function ($item) use ($start, $end) {
// $waktuMasuk = $item->waktu_masuk;
// $pmLogin = $item->pmlogin ?? null;
// $inWaktuMasuk = $waktuMasuk && $waktuMasuk >= $start && $waktuMasuk <= $end;
// $inPmMasuk = $pmLogin && $pmLogin >= $start && $pmLogin <= $end;
// return $inWaktuMasuk || $inPmMasuk;
// });
// $keluar = $items->where('status', 0);
$keluar = $items->filter(fn($r) => (int) $r->status === 0);
// $tunai = $keluar->where('cara_bayar', '!=', 3);
@@ -243,8 +258,8 @@ public function vehicleReport(Request $request)
// ======================
// MASUK
// ======================
// $masukCasual = $masuk->where('status_transaksi', '0');
// $masukMember = $masuk->where('status_transaksi', '3');
$masukCasual = $masuk->where("status_transaksi", "0");
$masukMember = $masuk->where("status_transaksi", "3");
// ======================
// KELUAR
@@ -281,16 +296,16 @@ public function vehicleReport(Request $request)
"total" => $items->count(),
"tunaiOut" => $tunai->count(),
// ========= MASUK =========
// 'masuk' => [
// 'casual' => [
// 'jumlah' => $masukCasual->count(),
// 'income' => $masukCasual->sum('bayar_masuk'),
// ],
// 'member' => [
// 'jumlah' => $masukMember->count(),
// 'income' => $masukMember->sum('bayar_masuk'),
// ],
// ],
"masuk" => [
"casual" => [
"jumlah" => $masuk->count(),
"income" => $masukCasual->sum("bayar_masuk"),
],
"member" => [
"jumlah" => $masukMember->count(),
"income" => $masukMember->sum("bayar_masuk"),
],
],
// ========= KELUAR =========
"keluar" => [
@@ -327,7 +342,8 @@ public function vehicleReport(Request $request)
// ======================
// PISAH MASUK & KELUAR
// ======================
// $masuk = $items->where('status', 1);
// $masuk = $items->where("status", 1);
$masuk = $items->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
// $keluar = $items->where('status', 0);
// $nonTunai = $keluar->where('cara_bayar', 3);
$keluar = $items->filter(fn($r) => (int) $r->status === 0);
@@ -337,8 +353,8 @@ public function vehicleReport(Request $request)
// ======================
// MASUK
// ======================
// $masukCasual = $masuk->where('status_transaksi', '0');
// $masukMember = $masuk->where('status_transaksi', '3');
$masukCasual = $masuk;
$masukMember = $masuk->where("status_transaksi", "3");
// ======================
// KELUAR
@@ -370,16 +386,16 @@ public function vehicleReport(Request $request)
"nonTunaiOut" => $nonTunai->count(),
// ========= MASUK =========
// 'masuk' => [
// 'casual' => [
// 'jumlah' => $masukCasual->count(),
// 'income' => $masukCasual->sum('bayar_masuk'),
// ],
// 'member' => [
// 'jumlah' => $masukMember->count(),
// 'income' => $masukMember->sum('bayar_masuk'),
// ],
// ],
"masuk" => [
"casual" => [
"jumlah" => $masuk->count(),
"income" => $masukCasual->sum("bayar_masuk"),
],
"member" => [
"jumlah" => $masukMember->count(),
"income" => $masukMember->sum("bayar_masuk"),
],
],
// ========= KELUAR =========
"keluar" => [
@@ -489,10 +505,10 @@ public function reportOfficer(Request $request)
// ? 'tp.waktu_keluar'
// : 'tp.pklogin';
if ($harian == 1) {
// $dateColumn = ['tp.waktu_masuk', 'tp.waktu_keluar'];
$dateColumn = ["tp.waktu_masuk", "tp.waktu_keluar"];
$dateColumn = ["tp.waktu_keluar"];
} else {
// $dateColumn = ['tp.pmlogin', 'tp.pklogin'];
$dateColumn = ["tp.pmlogin", "tp.pklogin"];
$dateColumn = ["tp.pklogin"];
}
@@ -508,6 +524,8 @@ public function reportOfficer(Request $request)
// $q->whereRaw('DATE(tp.waktu_masuk) = ?', [$selectDate])
// ->orWhereRaw('DATE(tp.waktu_keluar) = ?', [$selectDate]);
})
// ->whereNull("id_op_masuk")
// ->where("manual", 1)
// ->whereRaw("DATE($dateColumn) = ?", [$dateNow])
// ->whereBetween($dateColumn, [$startDate, $endDate])
->select(
@@ -542,17 +560,17 @@ public function reportOfficer(Request $request)
Log::info("Rekap petugas dimulai");
$tunai = $transactions
->sortBy("id_op_keluar")
->sortBy("petugas")
->groupBy("id_op_keluar")
->map(function ($items, $id_op_keluar) {
// ======================
// PISAH MASUK & KELUAR
// ======================
// $masuk = $items->where('status', 1);
$masuk = $items->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
// $keluar = $items->where('status', 0);
$keluar = $items->filter(fn($r) => (int) $r->status === 0);
// $tunai = $keluar->where('cara_bayar', '!=', 3);
$tunai = $keluar->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
// ======================
// MASUK
@@ -566,6 +584,8 @@ public function reportOfficer(Request $request)
// $keluarCasual = $tunai->where('status_transaksi', '0');
// $keluarMember = $tunai->where('status_transaksi', '3');
// $keluarLost = $tunai->where('status_transaksi', '32');
$tunai = $keluar->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
$keluarCasual = $tunai->filter(
fn($r) => (string) data_get($r, "status_transaksi") === "0" && data_get($r, "id_op_masuk") !== null,
);
@@ -594,19 +614,19 @@ public function reportOfficer(Request $request)
return [
"id_petugas" => $id_op_keluar,
"petugas" => $items->first()->petugas,
"total" => $items->count(),
"total" => 0,
"tunaiOut" => $tunai->count(),
// ========= MASUK =========
// 'masuk' => [
// 'casual' => [
// 'jumlah' => $masukCasual->count(),
// 'income' => $masukCasual->sum('bayar_masuk'),
// ],
// 'member' => [
// 'jumlah' => $masukMember->count(),
// 'income' => $masukMember->sum('bayar_masuk'),
// ],
// ],
"masuk" => [
"casual" => [
"jumlah" => 0,
"income" => $masuk->sum("bayar_masuk"),
],
// 'member' => [
// 'jumlah' => $masukMember->count(),
// 'income' => $masukMember->sum('bayar_masuk'),
// ],
],
// ========= KELUAR =========
"keluar" => [
@@ -644,6 +664,7 @@ public function reportOfficer(Request $request)
// PISAH MASUK & KELUAR
// ======================
// $masuk = $items->where('status', 1);
$masuk = $items->filter(fn($row) => in_array(data_get($row, "cara_bayar"), [null, 0, "0"], true));
// $keluar = $items->where('status', 0);
// $nonTunai = $keluar->where('cara_bayar', 3);
$keluar = $items->filter(fn($r) => (int) $r->status === 0);
@@ -682,20 +703,20 @@ public function reportOfficer(Request $request)
return [
"id_petugas" => $id_op_keluar,
"petugas" => $items->first()->petugas,
"total" => $items->count(),
"total" => 0,
"nonTunaiOut" => $nonTunai->count(),
// ========= MASUK =========
// 'masuk' => [
// 'casual' => [
// 'jumlah' => $masukCasual->count(),
// 'income' => $masukCasual->sum('bayar_masuk'),
// ],
// 'member' => [
// 'jumlah' => $masukMember->count(),
// 'income' => $masukMember->sum('bayar_masuk'),
// ],
// ],
"masuk" => [
"casual" => [
"jumlah" => 0,
"income" => $masuk->sum("bayar_masuk"),
],
"member" => [
"jumlah" => $masuk->count(),
"income" => $masuk->sum("bayar_masuk"),
],
],
// ========= KELUAR =========
"keluar" => [
@@ -794,9 +815,11 @@ public function paymentType(Request $request)
Log::info("Query transaksi dimulai");
if ($harian == 1) {
$dateColumn = ["tp.waktu_keluar"];
// $dateColumn = ["tp.waktu_keluar"];
$dateColumn = ["tp.waktu_masuk", "tp.waktu_keluar"];
} else {
$dateColumn = ["tp.pklogin"];
// $dateColumn = ["tp.pklogin"];
$dateColumn = ["tp.pmlogin", "tp.pklogin"];
}
$transactions = DB::table("transaksi_parkir as tp")
@@ -867,6 +890,12 @@ public function paymentType(Request $request)
"petugas" => $items->first()->bankType,
"total" => $items->count(),
"tunaiOut" => $tunai->count(),
"masuk" => [
"casual" => [
"jumlah" => 0,
"income" => 0,
],
],
"keluar" => [
"casual" => [
"jumlah" => $keluarCasual->count(),
@@ -923,6 +952,12 @@ public function paymentType(Request $request)
"petugas" => $items->first()->bankType,
"total" => $items->count(),
"nonTunaiOut" => $nonTunai->count(),
"masuk" => [
"casual" => [
"jumlah" => 0,
"income" => 0,
],
],
"keluar" => [
"casual" => [
"jumlah" => $keluarCasual->count(),