Perubahan api laporan harian

This commit is contained in:
2025-09-22 12:21:09 +07:00
parent 05bcb7ef29
commit 44f8014bb9

View File

@@ -5,48 +5,98 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\TransaksiParkir; use App\Models\TransaksiParkir;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class LaporanController extends Controller class LaporanController extends Controller
{ {
private function getTrans() {
$query = TransaksiParkir::selectRaw('jm.id, jm.nama as vehicle, COUNT(*) as jml, SUM(bayar_keluar) as VALUE')
->leftJoin('jenis_mobil as jm','jm.id','=','transaksi_parkir.id_kendaraan');
return $query;
}
public function harian(Request $request) public function harian(Request $request)
{ {
$tanggal = $request->input('tanggal'); $tanggal = $request->input('tanggal');
$shift = $request->input('shift'); $shift = $request->input('shift');
$cashless = $request->input('cashless'); // $cashless = $request->input('cashless');
$cash = [];
$cashless = [];
// Mulai query dengan select dasar // Mulai query dengan select dasar
$payment = ['cash', 'cashless'];
// Tentukan kolom tanggal berdasarkan input shift // Tentukan kolom tanggal berdasarkan input shift
// $dateField = ($shift == 1) ? 'pklogin' : 'waktu_keluar'; // $dateField = ($shift == 1) ? 'pklogin' : 'waktu_keluar';
$dateField = ($shift == null) ? 'waktu_keluar' : 'pklogin'; // $query = TransaksiParkir::selectRaw('jm.id, jm.nama as vehicle, COUNT(*) as jml, SUM(bayar_keluar) as VALUE')
$query = TransaksiParkir::selectRaw('DATE(' . $dateField . ') as tanggal, COUNT(*) as jml, SUM(bayar_keluar) as VALUE'); // ->leftJoin('jenis_mobil as jm','jm.id','=','transaksi_parkir.id_kendaraan');
// $query->selectRaw("DATE($dateField) as tanggal"); // $query->selectRaw("DATE($dateField) as tanggal");
// Terapkan filter tanggal berdasarkan input // Terapkan filter tanggal berdasarkan input
$totalTrans = 0;
$totalIncome = 0;
$dateField = ($shift == null) ? 'waktu_keluar' : 'pklogin';
// Cash payment initialize
$queryCash = $this->getTrans();
if ($tanggal) { if ($tanggal) {
$query->whereDate($dateField, '=', $tanggal); $queryCash->whereDate($dateField, '=', $tanggal);
} }
// Terapkan filter cara bayar $resultCash = $queryCash->whereRaw('cara_bayar <> 3')
if ($cashless == 1) { ->groupByRaw("jm.id, jm.nama")
$query->where('cara_bayar', 3); ->orderByRaw("jm.id, jm.nama")
->get();
Log::info($resultCash);
$jmlCash = 0;
$incomeCash = 0;
foreach ($resultCash as $row) {
$jmlCash += $row->jml;
$incomeCash += $row->value;
} }
// Terapkan grouping dan sorting // Cashless payment initialize
// $query->groupBy('tanggal') $queryCashless = $this->getTrans();
// ->orderBy('tanggal'); if ($tanggal) {
$queryCashless->whereDate($dateField, '=', $tanggal);
}
$resultCashless = $queryCashless->where('cara_bayar', 3)
->groupByRaw("jm.id, jm.nama")
->orderByRaw("jm.id, jm.nama")
->get();
$query->groupByRaw("DATE($dateField)") Log::info($resultCashless);
->orderByRaw("DATE($dateField)"); $jmlCashless = 0;
$incomeCashless = 0;
foreach ($resultCashless as $row) {
$jmlCashless += $row->jml;
$incomeCashless += $row->value;
}
$result = $query->get(); $totalTrans = $jmlCash + $jmlCashless;
$totalIncome = $incomeCash + $incomeCashless;
// Log::info($incomeCashless);
return response()->json([ return response()->json([
'status' => 'success', 'status' => 'success',
'result' => $result, 'result' => [
'cash' => $resultCash,
'cashless' => $resultCashless,
],
'total' => [
'jumlah' => $totalTrans,
'income' => $totalIncome,
]
]); ]);
}
}
// $tanggal = $request->input('tanggal'); // $tanggal = $request->input('tanggal');
// $shift = $request->input('shift'); // $shift = $request->input('shift');
@@ -74,5 +124,4 @@ public function harian(Request $request)
// 'status' => 'success', // 'status' => 'success',
// 'result' => $result, // 'result' => $result,
// ]); // ]);
}
}