Kumpulan perubahan yang udah numpuk di working tree: refactor Setup (Gate/Vehicle/Member), rapihin memberin & stiker, service parking baru (ParkingUtilsServices, NetworkService), model/migration lot-parking & DHCP reservation, dan fitur baru Intercom (controller/model/migration/ view). ReportTransaksiController versi lokal ini WIP (~90%, masih didebug) - versi yang bener ada di server, jadi dikeluarin dari git (ditambahin ke .gitignore) biar gak numpuk nindihin punya server pas git pull di sana. Sekalian keluarin dump mentah tabel softseting (1.8MB, nyasar ke-commit), file .bak, dan arsip ad-hoc (api.tgz, c.zip) yang emang bukan source code. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01EAJc2mrpj2cSTe4oowLPzQ
68 lines
1.8 KiB
PHP
68 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Parking\Audit;
|
|
|
|
use App\Models\TransaksiParkir;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Yajra\DataTables\Facades\DataTables;
|
|
|
|
class AuditReportController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return view("Parking.Audit.index");
|
|
}
|
|
|
|
public function data(Request $request)
|
|
{
|
|
$query = TransaksiParkir::query()
|
|
->from("transaksi_parkir as tp")
|
|
->leftJoin("pegawai as p", "p.nomer", "=", "tp.adm");
|
|
|
|
// Tanggal wajib
|
|
$query->whereBetween("waktu_keluar", [$request->start_date . " 00:00:00", $request->end_date . " 23:59:59"]);
|
|
|
|
// Status
|
|
if ($request->filled("status_transaksi")) {
|
|
$query->where("status_transaksi", $request->status_transaksi);
|
|
} else {
|
|
// Default hanya -1 dan -2
|
|
$query->whereIn("status_transaksi", [0, -1, -2]);
|
|
}
|
|
|
|
// Alasan tidak boleh NULL
|
|
if ($request->filter_alasan == "1") {
|
|
$query->whereNotNull("alasan");
|
|
}
|
|
|
|
$totalTransaksi = (clone $query)->count();
|
|
|
|
$totalBayar = (clone $query)->sum("bayar_keluar");
|
|
|
|
$data = $query
|
|
->select([
|
|
"tp.id",
|
|
"no_pol",
|
|
"waktu_masuk",
|
|
"waktu_keluar",
|
|
"status_transaksi",
|
|
"bayar_keluar",
|
|
"alasan",
|
|
"cara_bayar",
|
|
"p.nama as operator",
|
|
])
|
|
->orderByDesc("waktu_keluar")
|
|
->get();
|
|
|
|
return response()->json([
|
|
"response" => true,
|
|
"data" => $data,
|
|
"summary" => [
|
|
"total_transaksi" => $totalTransaksi,
|
|
"total_bayar" => $totalBayar,
|
|
],
|
|
]);
|
|
}
|
|
}
|