Skip to content

Commit

Permalink
Add MTOW and ZFW to aircraft editor #775 (#805)
Browse files Browse the repository at this point in the history
Add MTOW and ZFW to aircraft editor #775
  • Loading branch information
nabeelio committed Sep 3, 2020
1 parent e99c22b commit 50a0b89
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 15 deletions.
16 changes: 11 additions & 5 deletions app/Database/factories/AircraftFactory.php
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
<?php

use App\Models\Airport;
use App\Models\Enums\AircraftState;
use App\Models\Enums\AircraftStatus;
use App\Models\Subfleet;
use App\Support\ICAO;
use Faker\Generator as Faker;

$factory->define(App\Models\Aircraft::class, function (Faker $faker) {
return [
'id' => null,
'subfleet_id' => function () {
return factory(\App\Models\Subfleet::class)->create()->id;
return factory(Subfleet::class)->create()->id;
},
'airport_id' => function () {
return factory(\App\Models\Airport::class)->create()->id;
return factory(Airport::class)->create()->id;
},
'iata' => $faker->unique()->text(5),
'icao' => $faker->unique()->text(5),
'name' => $faker->text(50),
'registration' => $faker->unique()->text(10),
'hex_code' => \App\Support\ICAO::createHexCode(),
'hex_code' => ICAO::createHexCode(),
'mtow' => $faker->randomFloat(2, 0, 50000),
'zfw' => $faker->randomFloat(2, 0, 50000),
'status' => \App\Models\Enums\AircraftStatus::ACTIVE,
'state' => \App\Models\Enums\AircraftState::PARKED,
'status' => AircraftStatus::ACTIVE,
'state' => AircraftState::PARKED,
'created_at' => $faker->dateTimeBetween('-1 week', 'now'),
'updated_at' => function (array $pirep) {
return $pirep['created_at'];
Expand Down
33 changes: 33 additions & 0 deletions app/Database/migrations/2020_09_03_141152_aircraft_add_mtow.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

/**
* Add a `mtow` column for the max takeoff weight
*/
class AircraftAddMtow extends Migration
{
public function up()
{
Schema::table('aircraft', function (Blueprint $table) {
$table->unsignedDecimal('mtow')
->nullable()
->default(0.0)
->after('hex_code');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('aircraft', function (Blueprint $table) {
$table->dropColumn('mtow');
});
}
}
6 changes: 6 additions & 0 deletions app/Models/Aircraft.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
* @property string icao
* @property string registration
* @property int flight_time
* @property float mtow
* @property float zfw
* @property string hex_code
* @property Airport airport
* @property Subfleet subfleet
Expand All @@ -39,6 +41,7 @@ class Aircraft extends Model
'registration',
'hex_code',
'flight_time',
'mtow',
'zfw',
'status',
'state',
Expand All @@ -49,6 +52,7 @@ class Aircraft extends Model
*/
protected $casts = [
'subfleet_id' => 'integer',
'mtow' => 'float',
'zfw' => 'float',
'flight_time' => 'float',
'state' => 'integer',
Expand All @@ -62,6 +66,8 @@ class Aircraft extends Model
'name' => 'required',
'status' => 'required',
'registration' => 'required',
'mtow' => 'nullable|number',
'zfw' => 'nullable|number',
];

/**
Expand Down
32 changes: 22 additions & 10 deletions resources/views/admin/aircraft/fields.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,23 @@
<div class="col-12">
<div class="form-container">
<h6>
<span style="float:right">
View list of
<a href="https://en.wikipedia.org/wiki/List_of_ICAO_aircraft_type_designators"
target="_blank">
IATA and ICAO Type Designators
</a>
</span>
<i class="fas fa-plane"></i>
&nbsp;Aircraft Information

<span style="float:right">
View list of
<a href="https://en.wikipedia.org/wiki/List_of_ICAO_aircraft_type_designators"
target="_blank">IATA and ICAO Type Designators</a>
</span>
<i class="fas fa-plane"></i>&nbsp;Aircraft Information
</h6>
<div class="form-container-body">

<div class="row">
<div class="form-group col-sm-12">
{{ Form::label('name', 'Name:') }}&nbsp;<span class="required">*</span>
{{ Form::text('name', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('name') }}</p>
</div>
</div>

<div class="row">
<div class="form-group col-sm-3">
{{ Form::label('iata', 'IATA:') }}
Expand All @@ -75,6 +73,20 @@
<p class="text-danger">{{ $errors->first('registration') }}</p>
</div>
</div>

<div class="row">
<div class="form-group col-sm-6">
{{ Form::label('mtow', 'Max Takeoff Weight (MTOW):') }}
{{ Form::text('mtow', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('mtow') }}</p>
</div>
<div class="form-group col-sm-6">
{{ Form::label('zfw', 'Zero Fuel Weight (ZFW):') }}
{{ Form::text('zfw', null, ['class' => 'form-control']) }}
<p class="text-danger">{{ $errors->first('zfw') }}</p>
</div>
</div>

</div>
</div>
</div>
Expand Down
16 changes: 16 additions & 0 deletions tests/ApiTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -242,13 +242,17 @@ public function testGetAircraft()

$fare_svc = app(FareService::class);

/** @var Subfleet $subfleet */
$subfleet = factory(Subfleet::class)->create([
'airline_id' => $this->user->airline_id,
]);

/** @var Fare $fare */
$fare = factory(Fare::class)->create();

$fare_svc->setForSubfleet($subfleet, $fare);

/** @var Aircraft $aircraft */
$aircraft = factory(Aircraft::class)->create([
'subfleet_id' => $subfleet->id,
]);
Expand All @@ -258,15 +262,27 @@ public function testGetAircraft()
*/
$resp = $this->get('/api/fleet/aircraft/'.$aircraft->id);
$body = $resp->json()['data'];

$this->assertEquals($body['id'], $aircraft->id);
$this->assertEquals($body['name'], $aircraft->name);
$this->assertEquals($body['mtow'], $aircraft->mtow);
$this->assertEquals($body['zfw'], $aircraft->zfw);

$resp = $this->get('/api/fleet/aircraft/'.$aircraft->id.'?registration='.$aircraft->registration);
$body = $resp->json()['data'];

$this->assertEquals($body['id'], $aircraft->id);
$this->assertEquals($body['name'], $aircraft->name);
$this->assertEquals($body['mtow'], $aircraft->mtow);
$this->assertEquals($body['zfw'], $aircraft->zfw);

$resp = $this->get('/api/fleet/aircraft/'.$aircraft->id.'?icao='.$aircraft->icao);
$body = $resp->json()['data'];

$this->assertEquals($body['id'], $aircraft->id);
$this->assertEquals($body['name'], $aircraft->name);
$this->assertEquals($body['mtow'], $aircraft->mtow);
$this->assertEquals($body['zfw'], $aircraft->zfw);
}

public function testGetAllSettings()
Expand Down

0 comments on commit 50a0b89

Please sign in to comment.