diff --git a/app/Http/Controllers/Frontend/SimBriefController.php b/app/Http/Controllers/Frontend/SimBriefController.php index 2956f300..71291f44 100644 --- a/app/Http/Controllers/Frontend/SimBriefController.php +++ b/app/Http/Controllers/Frontend/SimBriefController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Frontend; use App\Exceptions\AssetNotFound; use App\Models\Aircraft; +use App\Models\Bid; use App\Models\Enums\AircraftState; use App\Models\Enums\AircraftStatus; use App\Models\Enums\FareType; @@ -14,6 +15,7 @@ use App\Models\SimBrief; use App\Models\User; use App\Repositories\FlightRepository; use App\Services\FareService; +use App\Services\ModuleService; use App\Services\SimBriefService; use App\Services\UserService; use Exception; @@ -24,17 +26,20 @@ class SimBriefController { private $fareSvc; private $flightRepo; + private $moduleSvc; private $simBriefSvc; private $userSvc; public function __construct( FareService $fareSvc, FlightRepository $flightRepo, + ModuleService $moduleSvc, SimBriefService $simBriefSvc, UserService $userSvc ) { $this->fareSvc = $fareSvc; $this->flightRepo = $flightRepo; + $this->moduleSvc = $moduleSvc; $this->simBriefSvc = $simBriefSvc; $this->userSvc = $userSvc; } @@ -106,6 +111,7 @@ class SimBriefController if (setting('simbrief.block_aircraft')) { // Build a list of aircraft_id's being used for active sb packs $sb_aircraft = SimBrief::whereNotNull('flight_id')->pluck('aircraft_id'); + // Filter aircraft list to non used/blocked ones $aircrafts = $aircrafts->whereNotIn('id', $sb_aircraft); } @@ -225,7 +231,7 @@ class SimBriefController // Show the main simbrief form return view('flights.simbrief_form', [ - 'user' => Auth::user(), + 'user' => $user, 'flight' => $flight, 'aircraft' => $aircraft, 'pax_weight' => $pax_weight, @@ -253,7 +259,11 @@ class SimBriefController */ public function briefing($id) { - $simbrief = SimBrief::find($id); + /** @var User $user */ + $user = Auth::user(); + + /** @var SimBrief $simbrief */ + $simbrief = SimBrief::with(['flight'])->find($id); if (!$simbrief) { flash()->error('SimBrief briefing not found'); return redirect(route('frontend.flights.index')); @@ -266,11 +276,18 @@ class SimBriefController $equipment = substr($str, $wc + 1, $tr - 2); $transponder = substr($str, $tr + 1); + // See if a bid exists for this flight + $bid = Bid::where(['user_id' => $user->id, 'flight_id' => $simbrief->flight_id])->first(); + return view('flights.simbrief_briefing', [ - 'simbrief' => $simbrief, - 'wakecat' => $wakecat, - 'equipment' => $equipment, - 'transponder' => $transponder, + 'user' => $user, + 'simbrief' => $simbrief, + 'wakecat' => $wakecat, + 'equipment' => $equipment, + 'transponder' => $transponder, + 'bid' => $bid, + 'flight' => $simbrief->flight, + 'acars_plugin' => $this->moduleSvc->isModuleActive('VMSAcars'), ]); } diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index 9e83652a..4a953e6c 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -195,22 +195,22 @@ class Pirep extends Model /** * Create a new PIREP from a SimBrief instance * - * @param \App\Models\SimBrief $simBrief + * @param \App\Models\SimBrief $simbrief * * @return \App\Models\Pirep */ - public static function fromSimBrief(SimBrief $simBrief): self + public static function fromSimBrief(SimBrief $simbrief): self { return new self([ - 'flight_id' => $simBrief->flight->id, - 'airline_id' => $simBrief->flight->airline_id, - 'flight_number' => $simBrief->flight->flight_number, - 'route_code' => $simBrief->flight->route_code, - 'route_leg' => $simBrief->flight->route_leg, - 'dpt_airport_id' => $simBrief->flight->dpt_airport_id, - 'arr_airport_id' => $simBrief->flight->arr_airport_id, - 'route' => $simBrief->xml->getRouteString(), - 'level' => $simBrief->xml->getFlightLevel(), + 'flight_id' => $simbrief->flight->id, + 'airline_id' => $simbrief->flight->airline_id, + 'flight_number' => $simbrief->flight->flight_number, + 'route_code' => $simbrief->flight->route_code, + 'route_leg' => $simbrief->flight->route_leg, + 'dpt_airport_id' => $simbrief->flight->dpt_airport_id, + 'arr_airport_id' => $simbrief->flight->arr_airport_id, + 'route' => $simbrief->xml->getRouteString(), + 'level' => $simbrief->xml->getFlightLevel(), ]); } diff --git a/app/Models/SimBrief.php b/app/Models/SimBrief.php index d88d7b65..f08c57cd 100644 --- a/app/Models/SimBrief.php +++ b/app/Models/SimBrief.php @@ -92,13 +92,12 @@ class SimBrief extends Model public function flight() { - if (!empty($this->attributes['flight_id'])) { - return $this->belongsTo(Flight::class, 'flight_id'); - } + return $this->belongsTo(Flight::class, 'flight_id'); + } - if (!empty($this->attributes['pirep_id'])) { - return $this->belongsTo(Pirep::class, 'pirep_id'); - } + public function pirep() + { + return $this->belongsTo(Pirep::class, 'pirep_id'); } public function user() diff --git a/resources/views/layouts/default/flights/simbrief_briefing.blade.php b/resources/views/layouts/default/flights/simbrief_briefing.blade.php index fc9c69cb..bf4b8e07 100644 --- a/resources/views/layouts/default/flights/simbrief_briefing.blade.php +++ b/resources/views/layouts/default/flights/simbrief_briefing.blade.php @@ -7,26 +7,39 @@