waktu_gratis) { // Log::info("GP Rules : "); // return $parkingPrice; // } elseif ( // $tarifVehicle->waktu_gratis !== 0 && // $tarifVehicle->tarif_periode !== 0 // ) { // Log::info("GP Rules : "); // $parkingPrice = $parkingPrice + $tarifVehicle->tarif_period; // $duration = $duration - $tarifVehicle->waktu_gratis; // Log::info( // "Setelah GP : " . // $parkingPrice . // " Durasi parkir : " . // $duration, // ); // } ## Hitung Tarif pertama $firstPrice = 0; $firstDuration = $tarifVehicle->frek_interval * ($tarifVehicle->interval * 60); Log::info("Firstime rules : " . $firstDuration); // if ($duration >= $firstDuration) { do { $duration -= $tarifVehicle->interval * 60; $parkingPrice += $tarifVehicle->tarif_interval; $firstPrice++; } while ($firstPrice < $tarifVehicle->frek_interval); Log::info("Tarif jam pertama : " . $parkingPrice . " Sisa durasi : " . $duration); // } // Log::info($firstDuration); ## Hitung tarif kedua $secondPrice = 1; // Log::info($tarifVehicle->frek_waktu2 . ' - ' . $tarifVehicle->waktu2); $secondDuration = $tarifVehicle->frek_waktu2 * ($tarifVehicle->waktu2 * 60); if ($duration >= $secondDuration) { Log::info(""); Log::info("Secondtime rules : " . $secondDuration); Log::info($secondPrice); do { $duration -= $tarifVehicle->waktu2 * 60; Log::info($parkingPrice); Log::info($tarifVehicle->tarif); $parkingPrice += $tarifVehicle->tarif; $secondPrice++; Log::info($secondPrice); } while ($secondPrice < $tarifVehicle->frek_waktu2); Log::info("Tarif jam kedua : " . $parkingPrice . " Sisa durasi : " . $duration); } $nextDuration = 0; $lastDuration = $tarifVehicle->waktu_tarif * 60; if ($lastDuration <= $duration) { Log::info(""); Log::info("Sisa Durasi " . $duration); do { $duration -= $tarifVehicle->waktu_tarif * 60; $parkingPrice += $tarifVehicle->tarif; // $nextDuration++; } while ($duration > 0); Log::info("Tarif jam berikutnya : " . $parkingPrice . " Sisa durasi : " . $duration); } $tarifMaks = $tarifVehicle->maksimum; if ($tarifMaks != 0) { if ($parkingPrice > $tarifMaks) { $parkingPrice = $tarifMaks; } } Log::info( "Tarif Parkir Anda : " . // $parkingPrice . " Sisa durasi : " . $duration, ); // if ($tarifVehicle->time_base_maks == 1) { // if ($parkingPrice > $tarifVehicle->maksimum) { // $parkingPrice = $tarifVehicle->maksimum; // } // } return [$duration, $parkingPrice]; } public function parkingDailysCalc($vehicle, $times) { if ($times < 86400) { $parkingPrice = $this->parkingTimeCalc($vehicle, $times); return $parkingPrice; } $tarifVehicle = MasterTarif::find($vehicle); $parkingPrice = 0; Log::info("Parameter tarif : " . json_encode($tarifVehicle)); Log::info("Memulai hitung tarif : " . $parkingPrice); Log::info("Base time : " . $times); if ($tarifVehicle->time_base == 1) { $durationDailys = $tarifVehicle->time_base_maks * 60 * 60; Log::info("Waktu 1 hari : " . $durationDailys); $parkingDuration = $times; do { $parkingDuration -= $durationDailys; $parkingPrice += $tarifVehicle->maksimum; } while ($parkingDuration >= 86400); $result = $this->parkingTimeCalc($vehicle, $parkingDuration); $parkingDuration = $result[0]; $parkingPrice = $result[1]; } Log::info("Sisa waktu : " . $parkingDuration); Log::info("Tarif nya jadi : " . $parkingPrice); return [$parkingDuration, (int) $parkingPrice]; } }