From a952071cb49d5de176dfe9af6114d7d179952b84 Mon Sep 17 00:00:00 2001 From: "B.Fatih KOZ" <74361521+FatihKoz@users.noreply.github.com> Date: Sun, 17 Jan 2021 20:43:06 +0300 Subject: [PATCH] Subfleet Hubs / Base Airports (#978) * Update SubFleet Model Add hub_id for storing subfleet's main base/hub airport, define a relationship with airport model to get details of the base/hub airport when needed. * Update Admin / SubFleetController Added the ability to read and pass hub airports to admin view for create/edit options. * Update Admin/SubFleets.fields.blade Added the dropdown for adding/editing main base/hub of a subfleet. * Add migration for the hub_id column Co-authored-by: Nabeel S Co-authored-by: Nabeel Shahzad --- ...2021_01_17_044305_add_hub_to_subfleets.php | 20 +++++++++++++++++++ .../Controllers/Admin/SubfleetController.php | 3 +++ app/Models/Subfleet.php | 17 +++++++++++----- .../views/admin/subfleets/fields.blade.php | 12 ++++++++--- 4 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php diff --git a/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php b/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php new file mode 100644 index 00000000..e71bf1b4 --- /dev/null +++ b/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php @@ -0,0 +1,20 @@ +string('hub_id', 4) + ->nullable() + ->after('airline_id'); + }); + } +} diff --git a/app/Http/Controllers/Admin/SubfleetController.php b/app/Http/Controllers/Admin/SubfleetController.php index 7943ee11..b1ff4caa 100644 --- a/app/Http/Controllers/Admin/SubfleetController.php +++ b/app/Http/Controllers/Admin/SubfleetController.php @@ -7,6 +7,7 @@ use App\Http\Controllers\Admin\Traits\Importable; use App\Http\Requests\CreateSubfleetRequest; use App\Http\Requests\UpdateSubfleetRequest; use App\Models\Airline; +use App\Models\Airport; use App\Models\Enums\FareType; use App\Models\Enums\FuelType; use App\Models\Enums\ImportExportType; @@ -133,6 +134,7 @@ class SubfleetController extends Controller { return view('admin.subfleets.create', [ 'airlines' => Airline::all()->pluck('name', 'id'), + 'hubs' => Airport::where('hub', 1)->pluck('name', 'id'), 'fuel_types' => FuelType::labels(), ]); } @@ -203,6 +205,7 @@ class SubfleetController extends Controller return view('admin.subfleets.edit', [ 'airlines' => Airline::all()->pluck('name', 'id'), + 'hubs' => Airport::where('hub', 1)->pluck('name', 'id'), 'fuel_types' => FuelType::labels(), 'avail_fares' => $avail_fares, 'avail_ranks' => $avail_ranks, diff --git a/app/Models/Subfleet.php b/app/Models/Subfleet.php index 58116b5a..0bad6db1 100644 --- a/app/Models/Subfleet.php +++ b/app/Models/Subfleet.php @@ -8,27 +8,26 @@ use App\Models\Traits\ExpensableTrait; use App\Models\Traits\FilesTrait; /** - * Class Subfleet - * * @property int id * @property string type * @property string name + * @property int airline_id + * @property int hub_id * @property string ground_handling_multiplier * @property Fare[] fares * @property float cost_block_hour * @property float cost_delay_minute * @property Airline airline - * @property int airline_id + * @property Airport hub */ class Subfleet extends Model { use ExpensableTrait; use FilesTrait; - public $table = 'subfleets'; - public $fillable = [ 'airline_id', + 'hub_id', 'type', 'name', 'fuel_type', @@ -40,6 +39,8 @@ class Subfleet extends Model 'gross_weight', ]; + public $table = 'subfleets'; + public $casts = [ 'airline_id' => 'integer', 'turn_time' => 'integer', @@ -55,6 +56,7 @@ class Subfleet extends Model public static $rules = [ 'type' => 'required', 'name' => 'required', + 'hub_id' => 'nullable', 'ground_handling_multiplier' => 'nullable|numeric', ]; @@ -81,6 +83,11 @@ class Subfleet extends Model return $this->belongsTo(Airline::class, 'airline_id'); } + public function hub() + { + return $this->hasOne(Airport::class, 'id', 'hub_id'); + } + public function fares() { return $this->belongsToMany(Fare::class, 'subfleet_fare') diff --git a/resources/views/admin/subfleets/fields.blade.php b/resources/views/admin/subfleets/fields.blade.php index a58b1725..69ac6c4d 100644 --- a/resources/views/admin/subfleets/fields.blade.php +++ b/resources/views/admin/subfleets/fields.blade.php @@ -12,19 +12,25 @@
-
+
{{ Form::label('airline_id', 'Airline:') }} {{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}

{{ $errors->first('airline_id') }}

-
+
+ {{ Form::label('hub_id', 'Main Hub:') }} + {{ Form::select('hub_id', $hubs, null , ['class' => 'form-control select2']) }} +

{{ $errors->first('hub_id') }}

+
+ +
{{ Form::label('type', 'Type:') }} {{ Form::text('type', null, ['class' => 'form-control']) }}

{{ $errors->first('type') }}

-
+
{{ Form::label('name', 'Name:') }} {{ Form::text('name', null, ['class' => 'form-control']) }}

{{ $errors->first('name') }}