Penambahan endpoint, payment, operator dan gate
This commit is contained in:
@@ -11,10 +11,10 @@ class LaporanController extends Controller
|
||||
{
|
||||
|
||||
private function getTrans() {
|
||||
$query = TransaksiParkir::selectRaw('jm.id, jm.nama as vehicle, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('jenis_mobil as jm','jm.id','=','transaksi_parkir.id_kendaraan');
|
||||
// $query = TransaksiParkir::all();
|
||||
|
||||
return $query;
|
||||
// return $query;
|
||||
return TransaksiParkir::query();
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ public function harian(Request $request)
|
||||
|
||||
$tanggal = $request->input('tanggal');
|
||||
$shift = $request->input('shift');
|
||||
$harian = $request->input('harian');
|
||||
Log::info($shift);
|
||||
// $cashless = $request->input('cashless');
|
||||
|
||||
@@ -40,15 +41,34 @@ public function harian(Request $request)
|
||||
// Terapkan filter tanggal berdasarkan input
|
||||
$totalTrans = 0;
|
||||
$totalIncome = 0;
|
||||
if ($shift === null || $shift === 0 || $shift === '0') {
|
||||
$dateField = 'waktu_keluar' ;
|
||||
} else {
|
||||
$dateField = 'pklogin';
|
||||
}
|
||||
|
||||
// if ($shift === null || $shift === 0 || $shift === '0' || $shift === false) {
|
||||
// $dateField = 'pklogin';
|
||||
// } else {
|
||||
// $dateField = 'waktu_keluar' ;
|
||||
// }
|
||||
|
||||
// if ($harian === null || $harian === 0 || $harian === '0' || $harian === false) {
|
||||
// $dateField = 'waktu_keluar' ;
|
||||
// } else {
|
||||
// $dateField = 'pklogin';
|
||||
// }
|
||||
|
||||
$isShift = ($shift !== null && $shift !== 0 && $shift !== '0' && $shift !== false);
|
||||
$isHarian = ($harian !== null && $harian !== 0 && $harian !== '0' && $harian !== false);
|
||||
|
||||
if ($isHarian) {
|
||||
$dateField = 'waktu_keluar'; // harian aktif → pklogin
|
||||
} elseif ($isShift) {
|
||||
$dateField = 'pklogin'; // shift aktif → waktu_keluar
|
||||
} else {
|
||||
$dateField = 'waktu_keluar'; // default
|
||||
}
|
||||
// Log::info('Memproses permintaan dengan perhitungan : ' . $dateField);
|
||||
// Cash payment initialize
|
||||
$queryCash = $this->getTrans();
|
||||
$queryCash = $this->getTrans()->selectRaw('jm.id, jm.nama as vehicle, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('jenis_mobil as jm','jm.id','=','transaksi_parkir.id_kendaraan');
|
||||
|
||||
if ($tanggal) {
|
||||
$queryCash->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
@@ -75,7 +95,9 @@ public function harian(Request $request)
|
||||
}
|
||||
|
||||
// Cashless payment initialize
|
||||
$queryCashless = $this->getTrans();
|
||||
$queryCashless = $this->getTrans()->selectRaw('jm.id, jm.nama as vehicle, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('jenis_mobil as jm','jm.id','=','transaksi_parkir.id_kendaraan');
|
||||
|
||||
if ($tanggal) {
|
||||
$queryCashless->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
@@ -101,6 +123,273 @@ public function harian(Request $request)
|
||||
}
|
||||
|
||||
|
||||
$totalTrans = $jmlCash + $jmlCashless;
|
||||
$totalIncome = $incomeCash + $incomeCashless;
|
||||
// Log::info($incomeCashless);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'result' => [
|
||||
'cash' => $resultCash,
|
||||
'cashless' => $resultCashless,
|
||||
],
|
||||
'total' => [
|
||||
'jumlah' => $totalTrans,
|
||||
'income' => $totalIncome,
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function payment(Request $request)
|
||||
{
|
||||
$tanggal = $request->input('tanggal');
|
||||
$shift = $request->input('shift');
|
||||
$harian = $request->input('harian');
|
||||
Log::info($shift);
|
||||
|
||||
$cash = [];
|
||||
$cashless = [];
|
||||
|
||||
// Mulai query dengan select dasar
|
||||
$payment = ['cash', 'cashless'];
|
||||
$totalTrans = 0;
|
||||
$totalIncome = 0;
|
||||
|
||||
$isShift = ($shift !== null && $shift !== 0 && $shift !== '0' && $shift !== false);
|
||||
$isHarian = ($harian !== null && $harian !== 0 && $harian !== '0' && $harian !== false);
|
||||
|
||||
if ($isHarian) {
|
||||
$dateField = 'waktu_keluar'; // harian aktif → pklogin
|
||||
} elseif ($isShift) {
|
||||
$dateField = 'pklogin'; // shift aktif → waktu_keluar
|
||||
} else {
|
||||
$dateField = 'waktu_keluar'; // default
|
||||
}
|
||||
|
||||
$queryCash = $this->getTrans()->selectRaw('rep_bank as payment, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar');
|
||||
if ($tanggal) {
|
||||
$queryCash->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info('Find cash transaksi with params date : ' . $tanggal . ', and : ' . $dateField);
|
||||
$resultCash = $queryCash
|
||||
->where(function ($q) {
|
||||
$q->whereRaw('cara_bayar <> 3')
|
||||
->orWhereRaw('cara_bayar is null');
|
||||
})
|
||||
->groupByRaw("rep_bank")
|
||||
->orderByRaw("rep_bank")
|
||||
->get();
|
||||
|
||||
$jmlCash = 0;
|
||||
$incomeCash = 0;
|
||||
foreach ($resultCash as $row) {
|
||||
$jmlCash += $row->jml;
|
||||
$incomeCash += $row->total_bayar;
|
||||
}
|
||||
|
||||
// Cashless payment initialize
|
||||
$queryCashless = $this->getTrans()->selectRaw('rep_bank as payment, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar');
|
||||
if ($tanggal) {
|
||||
$queryCashless->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info(' Cari data cashless dengan tanggal : ' . $tanggal);
|
||||
|
||||
$resultCashless = $queryCashless
|
||||
->where('cara_bayar', 3)
|
||||
->groupByRaw("rep_bank")
|
||||
->orderByRaw("rep_bank")
|
||||
->get();
|
||||
|
||||
Log::info($resultCashless);
|
||||
$jmlCashless = 0;
|
||||
$incomeCashless = 0;
|
||||
|
||||
foreach ($resultCashless as $row) {
|
||||
$jmlCashless += $row->jml;
|
||||
$incomeCashless += $row->total_bayar;
|
||||
}
|
||||
|
||||
|
||||
$totalTrans = $jmlCash + $jmlCashless;
|
||||
$totalIncome = $incomeCash + $incomeCashless;
|
||||
// Log::info($incomeCashless);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'result' => [
|
||||
'cash' => $resultCash,
|
||||
'cashless' => $resultCashless,
|
||||
],
|
||||
'total' => [
|
||||
'jumlah' => $totalTrans,
|
||||
'income' => $totalIncome,
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function operator(Request $request)
|
||||
{
|
||||
$tanggal = $request->input('tanggal');
|
||||
$shift = $request->input('shift');
|
||||
$harian = $request->input('harian');
|
||||
Log::info($shift);
|
||||
|
||||
$cash = [];
|
||||
$cashless = [];
|
||||
|
||||
// Mulai query dengan select dasar
|
||||
$payment = ['cash', 'cashless'];
|
||||
$totalTrans = 0;
|
||||
$totalIncome = 0;
|
||||
|
||||
$isShift = ($shift !== null && $shift !== 0 && $shift !== '0' && $shift !== false);
|
||||
$isHarian = ($harian !== null && $harian !== 0 && $harian !== '0' && $harian !== false);
|
||||
|
||||
if ($isHarian) {
|
||||
$dateField = 'waktu_keluar'; // harian aktif → pklogin
|
||||
} elseif ($isShift) {
|
||||
$dateField = 'pklogin'; // shift aktif → waktu_keluar
|
||||
} else {
|
||||
$dateField = 'waktu_keluar'; // default
|
||||
}
|
||||
|
||||
$queryCash = $this->getTrans()->selectRaw('id_op_keluar as operator, p.nama, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('pegawai as p','p.nomer','=','transaksi_parkir.id_op_keluar');
|
||||
if ($tanggal) {
|
||||
$queryCash->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info('Find cash transaksi with params date : ' . $tanggal . ', and : ' . $dateField);
|
||||
$resultCash = $queryCash
|
||||
->where(function ($q) {
|
||||
$q->whereRaw('cara_bayar <> 3')
|
||||
->orWhereRaw('cara_bayar is null');
|
||||
})
|
||||
->groupByRaw("id_op_keluar, p.nama")
|
||||
->orderByRaw("id_op_keluar, p.nama")
|
||||
->get();
|
||||
|
||||
$jmlCash = 0;
|
||||
$incomeCash = 0;
|
||||
foreach ($resultCash as $row) {
|
||||
$jmlCash += $row->jml;
|
||||
$incomeCash += $row->total_bayar;
|
||||
}
|
||||
|
||||
// Cashless payment initialize
|
||||
$queryCashless = $this->getTrans()->selectRaw('id_op_keluar as operator, p.nama, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('pegawai as p','p.nomer','=','transaksi_parkir.id_op_keluar');
|
||||
|
||||
if ($tanggal) {
|
||||
$queryCashless->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info(' Cari data cashless dengan tanggal : ' . $tanggal);
|
||||
|
||||
$resultCashless = $queryCashless
|
||||
->where('cara_bayar', 3)
|
||||
->groupByRaw("id_op_keluar, p.nama")
|
||||
->orderByRaw("id_op_keluar, p.nama")
|
||||
->get();
|
||||
|
||||
Log::info($resultCashless);
|
||||
$jmlCashless = 0;
|
||||
$incomeCashless = 0;
|
||||
|
||||
foreach ($resultCashless as $row) {
|
||||
$jmlCashless += $row->jml;
|
||||
$incomeCashless += $row->total_bayar;
|
||||
}
|
||||
|
||||
|
||||
$totalTrans = $jmlCash + $jmlCashless;
|
||||
$totalIncome = $incomeCash + $incomeCashless;
|
||||
// Log::info($incomeCashless);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'result' => [
|
||||
'cash' => $resultCash,
|
||||
'cashless' => $resultCashless,
|
||||
],
|
||||
'total' => [
|
||||
'jumlah' => $totalTrans,
|
||||
'income' => $totalIncome,
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function gate(Request $request)
|
||||
{
|
||||
$tanggal = $request->input('tanggal');
|
||||
$shift = $request->input('shift');
|
||||
$harian = $request->input('harian');
|
||||
Log::info($shift);
|
||||
|
||||
$cash = [];
|
||||
$cashless = [];
|
||||
|
||||
// Mulai query dengan select dasar
|
||||
$payment = ['cash', 'cashless'];
|
||||
$totalTrans = 0;
|
||||
$totalIncome = 0;
|
||||
|
||||
$isShift = ($shift !== null && $shift !== 0 && $shift !== '0' && $shift !== false);
|
||||
$isHarian = ($harian !== null && $harian !== 0 && $harian !== '0' && $harian !== false);
|
||||
|
||||
if ($isHarian) {
|
||||
$dateField = 'waktu_keluar'; // harian aktif → pklogin
|
||||
} elseif ($isShift) {
|
||||
$dateField = 'pklogin'; // shift aktif → waktu_keluar
|
||||
} else {
|
||||
$dateField = 'waktu_keluar'; // default
|
||||
}
|
||||
|
||||
$queryCash = $this->getTrans()->selectRaw('id_pintu_keluar as gate, np.nama, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('nama_pos as np','np.id','=','transaksi_parkir.id_pintu_keluar');
|
||||
if ($tanggal) {
|
||||
$queryCash->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info('Find cash transaksi with params date : ' . $tanggal . ', and : ' . $dateField);
|
||||
$resultCash = $queryCash
|
||||
->where(function ($q) {
|
||||
$q->whereRaw('cara_bayar <> 3')
|
||||
->orWhereRaw('cara_bayar is null');
|
||||
})
|
||||
->groupByRaw("id_pintu_keluar, np.nama")
|
||||
->orderByRaw("id_pintu_keluar, np.nama")
|
||||
->get();
|
||||
|
||||
$jmlCash = 0;
|
||||
$incomeCash = 0;
|
||||
foreach ($resultCash as $row) {
|
||||
$jmlCash += $row->jml;
|
||||
$incomeCash += $row->total_bayar;
|
||||
}
|
||||
|
||||
// Cashless payment initialize
|
||||
$queryCashless = $this->getTrans()->selectRaw('id_pintu_keluar as gate, np.nama, COUNT(*) as jml, SUM(bayar_keluar) as total_bayar')
|
||||
->leftJoin('nama_pos as np','np.id','=','transaksi_parkir.id_pintu_keluar');
|
||||
|
||||
if ($tanggal) {
|
||||
$queryCashless->whereDate($dateField, '=', $tanggal);
|
||||
}
|
||||
Log::info(' Cari data cashless dengan tanggal : ' . $tanggal);
|
||||
|
||||
$resultCashless = $queryCashless
|
||||
->where('cara_bayar', 3)
|
||||
->groupByRaw("id_pintu_keluar, np.nama")
|
||||
->orderByRaw("id_pintu_keluar, np.nama")
|
||||
->get();
|
||||
|
||||
Log::info($resultCashless);
|
||||
$jmlCashless = 0;
|
||||
$incomeCashless = 0;
|
||||
|
||||
foreach ($resultCashless as $row) {
|
||||
$jmlCashless += $row->jml;
|
||||
$incomeCashless += $row->total_bayar;
|
||||
}
|
||||
|
||||
|
||||
$totalTrans = $jmlCash + $jmlCashless;
|
||||
$totalIncome = $incomeCash + $incomeCashless;
|
||||
// Log::info($incomeCashless);
|
||||
|
||||
@@ -32,4 +32,7 @@
|
||||
|
||||
Route::prefix('report')->group(function () {
|
||||
Route::post('harian', [LaporanController::class, 'harian']);
|
||||
Route::post('payment', [LaporanController::class, 'payment']);
|
||||
Route::post('operator', [LaporanController::class, 'operator']);
|
||||
Route::post('gate', [LaporanController::class, 'gate']);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user