HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/dashboard.orbiwheels.com/app/Helper.php
<?php

use App\Models\SystemSetting;
use App\Models\VehicleRateCard;
use Illuminate\Support\Facades\Config;

if (!function_exists('get_setting')) {
    function get_setting($key, $default = null)
    {
        static $settings = null;

        if ($settings == null) {
            $settings = SystemSetting::pluck('value', 'key')->toArray();
        }

        return $settings[$key] ?? $default;
    }
}

if (!function_exists('loadSmtpSettingsFromDb')) {
    function loadSmtpSettingsFromDb()
    {
        $mailer = get_setting('mail_mailer') ?? env('MAIL_MAILER', 'smtp');

        Config::set('mail.default', $mailer);

        Config::set('mail.mailers.smtp', [
            'transport'  => $mailer,
            'host'       => get_setting('mail_host') ?? env('MAIL_HOST', 'smtp.gmail.com'),
            'port'       => get_setting('mail_port') ?? env('MAIL_PORT', 587),
            'encryption' => get_setting('mail_encryption') ?? env('MAIL_ENCRYPTION', 'tls'),
            'username'   => get_setting('mail_username') ?? env('MAIL_USERNAME'),
            'password'   => get_setting('mail_password') ?? env('MAIL_PASSWORD'),
            'timeout'    => null,
        ]);

        Config::set('mail.from.address', get_setting('mail_from_address') ?? env('MAIL_FROM_ADDRESS', '[email protected]'));
        Config::set('mail.from.name', get_setting('mail_from_name') ?? env('MAIL_FROM_NAME', 'Orbi Pre-Booking'));
    }
}
if (!function_exists('loadCaptchaSettingsFromDb')) {
    function loadCaptchaSettingsFromDb()
    {
        Config::set('captcha.secret', get_setting('nocaptcha_secret', env('NOCAPTCHA_SECRET')));
        Config::set('captcha.sitekey', get_setting('nocaptcha_sitekey', env('NOCAPTCHA_SITEKEY')));
    }
}


if (!function_exists('getTimeSlot')) {
    function getTimeSlot(string $time): string
    {
        $hour = (int) date('H', strtotime($time));
        return $hour < 12 ? 'morning' : 'evening';
    }
}
if (!function_exists('getDistance')) {
    function getDistance($lat1, $lon1, $lat2, $lon2, $unit = 'K')
    {
        $theta = $lon1 - $lon2;
        $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +
                cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
        $dist = acos($dist);
        $dist = rad2deg($dist);
        $miles = $dist * 60 * 1.1515;

        if ($unit == 'K') {
            return $miles * 1.609344; // Kilometers
        } elseif ($unit == 'N') {
            return $miles * 0.8684;   // Nautical miles
        }

        return $miles; // Miles
    }
}
if (!function_exists('getFare')) {
    function getFare($distance, $vehicle_type, $rate_type = "city")
    {
        $rate_per_km = 0;
        $vehicle_rate_card = VehicleRateCard::where('vehicle_type_id', $vehicle_type->id)->first();

        if ($vehicle_rate_card) {
            if ($rate_type == "city") {
                $rate_per_km = $vehicle_rate_card->city_rate;
            } elseif ($rate_type == "outstation") {
                $rate_per_km = $vehicle_rate_card->outstation_rate;
            }
        }

        return $distance * $rate_per_km;
    }
}
if (!function_exists('getCommission')) {
    function getCommission($distance)
    {
        // Commission per km
        $commission_per_km = 2;

        $totalCommission = $distance * $commission_per_km;

        return round($totalCommission, 2);
    }
}
if (!function_exists('get_gst_on_commission')) {
    function get_gst_on_commission($commission)
    {
        $gst_rate = 18; 

        $gst_amount = ($commission * $gst_rate) / 100;

        return round($gst_amount, 2);
    }
}