Perubahan api laporan harian
This commit is contained in:
@@ -5,49 +5,99 @@
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$resultCash = $queryCash->whereRaw('cara_bayar <> 3')
|
||||||
|
->groupByRaw("jm.id, jm.nama")
|
||||||
|
->orderByRaw("jm.id, jm.nama")
|
||||||
|
->get();
|
||||||
|
Log::info($resultCash);
|
||||||
|
|
||||||
|
$jmlCash = 0;
|
||||||
|
$incomeCash = 0;
|
||||||
|
foreach ($resultCash as $row) {
|
||||||
|
$jmlCash += $row->jml;
|
||||||
|
$incomeCash += $row->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cashless payment initialize
|
||||||
|
$queryCashless = $this->getTrans();
|
||||||
|
if ($tanggal) {
|
||||||
|
$queryCashless->whereDate($dateField, '=', $tanggal);
|
||||||
|
}
|
||||||
|
$resultCashless = $queryCashless->where('cara_bayar', 3)
|
||||||
|
->groupByRaw("jm.id, jm.nama")
|
||||||
|
->orderByRaw("jm.id, jm.nama")
|
||||||
|
->get();
|
||||||
|
|
||||||
|
Log::info($resultCashless);
|
||||||
|
$jmlCashless = 0;
|
||||||
|
$incomeCashless = 0;
|
||||||
|
|
||||||
|
foreach ($resultCashless as $row) {
|
||||||
|
$jmlCashless += $row->jml;
|
||||||
|
$incomeCashless += $row->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$totalTrans = $jmlCash + $jmlCashless;
|
||||||
|
$totalIncome = $incomeCash + $incomeCashless;
|
||||||
|
// Log::info($incomeCashless);
|
||||||
|
|
||||||
// Terapkan filter cara bayar
|
|
||||||
if ($cashless == 1) {
|
|
||||||
$query->where('cara_bayar', 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Terapkan grouping dan sorting
|
|
||||||
// $query->groupBy('tanggal')
|
|
||||||
// ->orderBy('tanggal');
|
|
||||||
|
|
||||||
$query->groupByRaw("DATE($dateField)")
|
|
||||||
->orderByRaw("DATE($dateField)");
|
|
||||||
|
|
||||||
|
|
||||||
$result = $query->get();
|
|
||||||
|
|
||||||
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');
|
||||||
// $cashless = $request->input('cashless');
|
// $cashless = $request->input('cashless');
|
||||||
@@ -74,5 +124,4 @@ public function harian(Request $request)
|
|||||||
// 'status' => 'success',
|
// 'status' => 'success',
|
||||||
// 'result' => $result,
|
// 'result' => $result,
|
||||||
// ]);
|
// ]);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user