added form parking / toll

This commit is contained in:
Jagad R R
2025-06-19 19:39:20 +07:00
parent a7fd26d2e6
commit a286e4c28a
11 changed files with 264 additions and 100 deletions
@@ -39,27 +39,30 @@ class FormVehicleController extends Controller
$role = auth()->user()->getRoleNames()[0];
$startDay = (int) env('STARTING_DATE', 11);
$closingDay = (int) env('CLOSING_DATE', 10);
// Referensi waktu sekarang
$now = Carbon::now();
// Tentukan periode aktif
// Determine the period
if ($now->day >= $startDay) {
$startDate = Carbon::create($now->year, $now->month, $startDay)->startOfDay();
$closingDate = Carbon::create($now->copy()->addMonth()->year, $now->copy()->addMonth()->month, $closingDay)->endOfDay();
$currentPeriodStartDate = Carbon::create($now->year, $now->month, $startDay)->startOfDay();
$currentPeriodClosingDate = Carbon::create($now->copy()->addMonth()->year, $now->copy()->addMonth()->month, $closingDay)->endOfDay();
} else {
$startDate = Carbon::create($now->copy()->subMonth()->year, $now->copy()->subMonth()->month, $startDay)->startOfDay();
$closingDate = Carbon::create($now->year, $now->month, $closingDay)->endOfDay();
$currentPeriodStartDate = Carbon::create($now->copy()->subMonth()->year, $now->copy()->subMonth()->month, $startDay)->startOfDay();
$currentPeriodClosingDate = Carbon::create($now->year, $now->month, $closingDay)->endOfDay();
}
// Hitung periode untuk keperluan budget
$periodeMonth = strtolower($startDate->format('F'));
$periodeYear = (int) $startDate->format('Y');
// Calculate the actual start date for data retrieval (1 month before currentPeriodStartDate)
$dataRetrievalStartDate = $currentPeriodStartDate->copy()->subMonth()->startOfDay();
$forms = FormVehicleRunningCost::whereBetween('tanggal', [$startDate, $closingDate])
$forms = FormVehicleRunningCost::whereBetween('tanggal', [$dataRetrievalStartDate, $currentPeriodClosingDate])
->orderBy('tanggal', 'desc')
->with('user')
->get();
$availableBudget = null;
$periodeMonth = strtolower($currentPeriodStartDate->format('F'));
$periodeYear = (int) $currentPeriodStartDate->format('Y');
if ($role === 'Admin Region' || $role === 'Marketing Operational Manager Region') {
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
@@ -133,11 +136,12 @@ class FormVehicleController extends Controller
$this->checkAuthorization(auth()->user(), ['forms.vehicle.create']);
$request->validate([
'tanggal' => 'required',
'liter' => 'required',
'type' => 'required',
'liter' => 'nullable|numeric|min:0',
'total' => 'required|numeric|min:1',
'jarak' => 'required',
'tipe_bensin' => 'required|in:pertalite,pertamax',
'nopol' => 'required',
'jarak' => 'nullable|numeric|min:0',
'tipe_bensin' => 'nullable|in:pertalite,pertamax',
'nopol' => 'nullable',
'keterangan' => 'required',
'bukti_total' => ['nullable', 'file', 'max:51200'],
]);
@@ -215,11 +219,12 @@ class FormVehicleController extends Controller
'expense_number' => $expense_number,
'user_id' => auth()->user()->id,
'tanggal' => $request->tanggal,
'liter' => $request->liter,
'type' => $request->type,
'liter' => $request->liter ?? 0,
'total' => $request->total,
'jarak' => $request->jarak,
'tipe_bensin' => $request->tipe_bensin,
'nopol' => $request->nopol,
'jarak' => $request->jarak ?? 0,
'tipe_bensin' => $request->tipe_bensin ?? '-',
'nopol' => $request->nopol ?? '-',
'keterangan' => $request->keterangan,
'bukti_total' => $filePaths['bukti_total'] ?? null,
'account_number' => $kategori->account_number,
@@ -354,11 +359,12 @@ class FormVehicleController extends Controller
// Validasi input
$request->validate([
'tanggal' => 'required',
'liter' => 'required',
'type' => 'required',
'liter' => 'nullable|numeric|min:0',
'total' => 'required|numeric|min:1|max:' . $availableBudget,
'jarak' => 'required',
'tipe_bensin' => 'required|in:pertalite,pertamax',
'nopol' => 'required',
'jarak' => 'nullable|numeric|min:0',
'tipe_bensin' => 'nullable|in:pertalite,pertamax',
'nopol' => 'nullable',
'keterangan' => 'required',
'bukti_total' => ['nullable', 'file', 'max:51200'],
]);
@@ -391,11 +397,12 @@ class FormVehicleController extends Controller
// Save the form data
$form->update([
'tanggal' => $request->tanggal,
'liter' => $request->liter,
'type' => $request->type,
'liter' => $request->liter ?? 0,
'total' => $request->total,
'jarak' => $request->jarak,
'tipe_bensin' => $request->tipe_bensin,
'nopol' => $request->nopol,
'jarak' => $request->jarak ?? 0,
'tipe_bensin' => $request->tipe_bensin ?? '-',
'nopol' => $request->nopol ?? '-',
'keterangan' => $request->keterangan,
'bukti_total' => $filePaths['bukti_total'] ?? $form->bukti_total,
'account_number' => $kategori->account_number,