Set a default model value for airports on PIREP (#500)
* Set a default model value for airports on PIREP * Fix airport icao reference * Default airport models
This commit is contained in:
parent
de8046288b
commit
831b72fb2b
@ -420,7 +420,16 @@ class Pirep extends Model
|
||||
|
||||
public function arr_airport()
|
||||
{
|
||||
return $this->belongsTo(Airport::class, 'arr_airport_id');
|
||||
return $this->belongsTo(Airport::class, 'arr_airport_id')
|
||||
->withDefault(function ($model) {
|
||||
if (!empty($this->attributes['arr_airport_id'])) {
|
||||
$model->id = $this->attributes['arr_airport_id'];
|
||||
$model->icao = $this->attributes['arr_airport_id'];
|
||||
$model->name = $this->attributes['arr_airport_id'];
|
||||
}
|
||||
|
||||
return $model;
|
||||
});
|
||||
}
|
||||
|
||||
public function alt_airport()
|
||||
@ -430,7 +439,16 @@ class Pirep extends Model
|
||||
|
||||
public function dpt_airport()
|
||||
{
|
||||
return $this->belongsTo(Airport::class, 'dpt_airport_id');
|
||||
return $this->belongsTo(Airport::class, 'dpt_airport_id')
|
||||
->withDefault(function ($model) {
|
||||
if (!empty($this->attributes['dpt_airport_id'])) {
|
||||
$model->id = $this->attributes['dpt_airport_id'];
|
||||
$model->icao = $this->attributes['dpt_airport_id'];
|
||||
$model->name = $this->attributes['dpt_airport_id'];
|
||||
}
|
||||
|
||||
return $model;
|
||||
});
|
||||
}
|
||||
|
||||
public function comments()
|
||||
|
@ -7,9 +7,6 @@ use App\Models\Airport;
|
||||
use Prettus\Repository\Contracts\CacheableInterface;
|
||||
use Prettus\Repository\Traits\CacheableRepository;
|
||||
|
||||
/**
|
||||
* Class AirportRepository
|
||||
*/
|
||||
class AirportRepository extends Repository implements CacheableInterface
|
||||
{
|
||||
use CacheableRepository;
|
||||
@ -27,8 +24,8 @@ class AirportRepository extends Repository implements CacheableInterface
|
||||
/**
|
||||
* Return the list of airports formatted for a select box
|
||||
*
|
||||
* @param mixed $add_blank
|
||||
* @param mixed $only_hubs
|
||||
* @param bool $add_blank
|
||||
* @param bool $only_hubs
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
|
@ -231,23 +231,13 @@ class GeoService extends Service
|
||||
]);
|
||||
}*/
|
||||
|
||||
// If there is a position update from ACARS, show where it is
|
||||
// Otherwise, just assume it's at the arrival airport currently
|
||||
if ($pirep->position) {
|
||||
$position = [
|
||||
'lat' => $pirep->position->lat,
|
||||
'lon' => $pirep->position->lon,
|
||||
];
|
||||
} else {
|
||||
// if arrived, show it being at the arrival airport
|
||||
$position = [
|
||||
'lat' => $pirep->arr_airport->lat,
|
||||
'lon' => $pirep->arr_airport->lon,
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'position' => $position,
|
||||
// If there is a position update from ACARS, show where it is
|
||||
// Otherwise, just assume it's at the arrival airport currently
|
||||
'position' => [
|
||||
'lat' => optional($pirep->position)->lat ?? $pirep->arr_airport->lat,
|
||||
'lon' => optional($pirep->position)->lon ?? $pirep->arr_airport->lon,
|
||||
],
|
||||
'line' => $route->getLine(),
|
||||
'points' => $route->getPoints(),
|
||||
'airports' => [
|
||||
|
@ -108,14 +108,6 @@ class FlightImporter extends ImportExport
|
||||
|
||||
// Any specific transformations
|
||||
|
||||
// Check/calculate the distance
|
||||
if (empty($row['distance'])) {
|
||||
$row['distance'] = $this->airportSvc->calculateDistance(
|
||||
$row['dpt_airport'],
|
||||
$row['arr_airport']
|
||||
);
|
||||
}
|
||||
|
||||
// Check for a valid value
|
||||
$flight_type = $row['flight_type'];
|
||||
if (!array_key_exists($flight_type, FlightType::labels())) {
|
||||
@ -139,6 +131,14 @@ class FlightImporter extends ImportExport
|
||||
$this->processAirport($row['alt_airport']);
|
||||
}
|
||||
|
||||
// Check/calculate the distance
|
||||
if (empty($row['distance'])) {
|
||||
$row['distance'] = $this->airportSvc->calculateDistance(
|
||||
$row['dpt_airport'],
|
||||
$row['arr_airport']
|
||||
);
|
||||
}
|
||||
|
||||
$this->processSubfleets($flight, $row['subfleets']);
|
||||
$this->processFares($flight, $row['fares']);
|
||||
$this->processFields($flight, $row['fields']);
|
||||
|
Loading…
Reference in New Issue
Block a user