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:
+20
-2
@@ -420,7 +420,16 @@ class Pirep extends Model
|
|||||||
|
|
||||||
public function arr_airport()
|
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()
|
public function alt_airport()
|
||||||
@@ -430,7 +439,16 @@ class Pirep extends Model
|
|||||||
|
|
||||||
public function dpt_airport()
|
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()
|
public function comments()
|
||||||
|
|||||||
@@ -7,9 +7,6 @@ use App\Models\Airport;
|
|||||||
use Prettus\Repository\Contracts\CacheableInterface;
|
use Prettus\Repository\Contracts\CacheableInterface;
|
||||||
use Prettus\Repository\Traits\CacheableRepository;
|
use Prettus\Repository\Traits\CacheableRepository;
|
||||||
|
|
||||||
/**
|
|
||||||
* Class AirportRepository
|
|
||||||
*/
|
|
||||||
class AirportRepository extends Repository implements CacheableInterface
|
class AirportRepository extends Repository implements CacheableInterface
|
||||||
{
|
{
|
||||||
use CacheableRepository;
|
use CacheableRepository;
|
||||||
@@ -27,8 +24,8 @@ class AirportRepository extends Repository implements CacheableInterface
|
|||||||
/**
|
/**
|
||||||
* Return the list of airports formatted for a select box
|
* Return the list of airports formatted for a select box
|
||||||
*
|
*
|
||||||
* @param mixed $add_blank
|
* @param bool $add_blank
|
||||||
* @param mixed $only_hubs
|
* @param bool $only_hubs
|
||||||
*
|
*
|
||||||
* @return array
|
* @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 [
|
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(),
|
'line' => $route->getLine(),
|
||||||
'points' => $route->getPoints(),
|
'points' => $route->getPoints(),
|
||||||
'airports' => [
|
'airports' => [
|
||||||
|
|||||||
@@ -108,14 +108,6 @@ class FlightImporter extends ImportExport
|
|||||||
|
|
||||||
// Any specific transformations
|
// 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
|
// Check for a valid value
|
||||||
$flight_type = $row['flight_type'];
|
$flight_type = $row['flight_type'];
|
||||||
if (!array_key_exists($flight_type, FlightType::labels())) {
|
if (!array_key_exists($flight_type, FlightType::labels())) {
|
||||||
@@ -139,6 +131,14 @@ class FlightImporter extends ImportExport
|
|||||||
$this->processAirport($row['alt_airport']);
|
$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->processSubfleets($flight, $row['subfleets']);
|
||||||
$this->processFares($flight, $row['fares']);
|
$this->processFares($flight, $row['fares']);
|
||||||
$this->processFields($flight, $row['fields']);
|
$this->processFields($flight, $row['fields']);
|
||||||
|
|||||||
Reference in New Issue
Block a user