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') }}