When importing flights, set subfleet name only if subfleet has been created (#1095)

* when importing flights, set subfleet name only if subfleet has been created, do not update existing subfleets

* add tests for flights import regarding subfleets

Co-authored-by: Andreas Palm <ap@ewsp.de>
This commit is contained in:
exciler 2021-03-23 13:50:19 +01:00 committed by GitHub
parent 8f38fc2dec
commit be6332936f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 6 deletions

View File

@ -209,7 +209,7 @@ class FlightImporter extends ImportExport
$count = 0;
$subfleets = $this->parseMultiColumnValues($col);
foreach ($subfleets as $subfleet_type) {
$subfleet = Subfleet::updateOrCreate(
$subfleet = Subfleet::firstOrCreate(
['type' => $subfleet_type],
['name' => $subfleet_type]
);

View File

@ -472,7 +472,7 @@ class ImporterTest extends TestCase
$file_path = base_path('tests/data/flights.csv');
$status = $this->importSvc->importFlights($file_path);
$this->assertCount(2, $status['success']);
$this->assertCount(3, $status['success']);
$this->assertCount(1, $status['errors']);
// See if it imported
@ -531,6 +531,16 @@ class ImporterTest extends TestCase
// Check the subfleets
$subfleets = $flight->subfleets;
$this->assertCount(1, $subfleets);
$this->assertNotEquals('A32X', $subfleets[0]->name);
$flight = Flight::where([
'airline_id' => $airline->id,
'flight_number' => '999',
])->first();
$subfleets = $flight->subfleets;
$this->assertCount(2, $subfleets);
$this->assertEquals('B737', $subfleets[1]->type);
$this->assertEquals('B737', $subfleets[1]->name);
}
/**

View File

@ -2,3 +2,4 @@ airline,flight_number,route_code,route_leg,dpt_airport,arr_airport,alt_airport,d
VMS,1972,,,KAUS,KJFK,KLGA,15,0810 CST,1235 EST,350,1477,207,J,85,0,100, ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6,"Just a flight",1,A32X,Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B?,Departure Gate=4;Arrival Gate=C41
" ",1972,,,KAUS,KJFK,KLGA,15,0810 CST,1235 EST,350,1477,207,J,100,10, ,ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6,"Just a flight",1,A32X,Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B?,Departure Gate=4;Arrival Gate=C41
VMS,113,,,KJFK,KAUS,KDFW,15,0810 EST,1035 CST,350,,207,J,70,2,,,"Empty distance",1,A32X,Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B?,Departure Gate=C41;Arrival Gate=2
VMS,999,,,KAUS,KJFK,KLGA,15,0810 CST,1235 EST,350,1477,207,J,85,0,100, ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6,"Just a flight",1,A32X;B737,Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B?,Departure Gate=4;Arrival Gate=C41

1 airline flight_number route_code route_leg dpt_airport arr_airport alt_airport days dpt_time arr_time level distance flight_time flight_type load_factor load_factor_variance pilot_pay route notes active subfleets fares fields
2 VMS 1972 KAUS KJFK KLGA 15 0810 CST 1235 EST 350 1477 207 J 85 0 100 ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6 Just a flight 1 A32X Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B? Departure Gate=4;Arrival Gate=C41
3 1972 KAUS KJFK KLGA 15 0810 CST 1235 EST 350 1477 207 J 100 10 ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6 Just a flight 1 A32X Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B? Departure Gate=4;Arrival Gate=C41
4 VMS 113 KJFK KAUS KDFW 15 0810 EST 1035 CST 350 207 J 70 2 Empty distance 1 A32X Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B? Departure Gate=C41;Arrival Gate=2
5 VMS 999 KAUS KJFK KLGA 15 0810 CST 1235 EST 350 1477 207 J 85 0 100 ILEXY2 ZENZI LFK ELD J29 MEM Q29 JHW J70 STENT J70 MAGIO J70 LVZ LENDY6 Just a flight 1 A32X;B737 Y?price=300&cost=100&capacity=130;F?price=600&cost=400;B? Departure Gate=4;Arrival Gate=C41