|  | @@ -0,0 +1,89 @@
 | 
	
		
			
				|  |  | +#include "processflights.h"
 | 
	
		
			
				|  |  | +#include <src/functions/atime.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void ProcessFlights::parseRawData()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    // doft, flightNumber, dept, dest, tofb, tonb, tblk, tPIC, tSIC, tDUAL, tPICUS, tFI, tNight, pic, secondPilot, thirdPilot   toDN,ldDN   pilotFlying, appType, remarks,  acftReg
 | 
	
		
			
				|  |  | +    int relevant_cols[24] = {0,3,5,7,9,11,17,19,20,21,22,23,25,38,42,46,53,54,55,56,58,60,64,79};
 | 
	
		
			
				|  |  | +    QStringList row_data;
 | 
	
		
			
				|  |  | +    for (const auto &row : qAsConst(rawData)) {
 | 
	
		
			
				|  |  | +        for (const auto &col : relevant_cols) {
 | 
	
		
			
				|  |  | +            row_data.append(row[col]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        rawFlightData.append(row_data);
 | 
	
		
			
				|  |  | +        row_data.clear();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    DEB << "Flight Info #1742:" << rawFlightData[1742];
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void ProcessFlights::processParsedData()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    QMap<QString, QVariant> new_flight_data;
 | 
	
		
			
				|  |  | +    int flight_id = 1;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    for (const auto &row : qAsConst(rawFlightData)) {
 | 
	
		
			
				|  |  | +        // insert values that don't require editing
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_FLIGHTNUMBER, row[1]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_DEPT, row[2]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_DEST, row[3]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TBLK, row[6]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TPIC, row[7]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TSIC, row[8]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TDUAL, row[9]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TPICUS, row[10]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TFI, row[11]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TNIGHT, row[12]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TODAY, row[16]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TONIGHT, row[17]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_LDGDAY, row[18]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_LDGNIGHT, row[19]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_APPROACHTYPE, row[21]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_REMARKS, row[22]);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // PF
 | 
	
		
			
				|  |  | +        if (row[20] == QLatin1String("TRUE"))
 | 
	
		
			
				|  |  | +            new_flight_data.insert(Opl::Db::FLIGHTS_PILOTFLYING, 1);
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +            new_flight_data.insert(Opl::Db::FLIGHTS_PILOTFLYING, 0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // Convert Date and Time
 | 
	
		
			
				|  |  | +        const QDate doft = QDate::fromString(row[0],QStringLiteral("dd/MM/yyyy"));
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_DOFT, doft.toString(Qt::ISODate));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        auto time_off = QTime::fromString(row[4], QStringLiteral("hh:mm"));
 | 
	
		
			
				|  |  | +        if (!time_off.isValid())
 | 
	
		
			
				|  |  | +            time_off = QTime::fromString(row[4], QStringLiteral("h:mm"));
 | 
	
		
			
				|  |  | +        int tofb = ATime::toMinutes(time_off);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TOFB, tofb);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        auto time_on = QTime::fromString(row[5], QStringLiteral("hh:mm"));
 | 
	
		
			
				|  |  | +        if (!time_on.isValid())
 | 
	
		
			
				|  |  | +            time_on = QTime::fromString(row[5], QStringLiteral("h:mm"));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        int tonb = ATime::toMinutes(time_on);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_TONB, tonb);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // map pilots
 | 
	
		
			
				|  |  | +        int pic = processedPilotsIds.value(row[13]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_PIC, pic);
 | 
	
		
			
				|  |  | +        int second_pilot = processedPilotsIds.value(row[14]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_SECONDPILOT, second_pilot);
 | 
	
		
			
				|  |  | +        int third_pilot = processedPilotsIds.value(row[15]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_THIRDPILOT, third_pilot);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // map tail
 | 
	
		
			
				|  |  | +        int acft = processedTailsIds.value(row[23]);
 | 
	
		
			
				|  |  | +        new_flight_data.insert(Opl::Db::FLIGHTS_ACFT, acft);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // set id, fix opl to include alias
 | 
	
		
			
				|  |  | +        new_flight_data.insert(QStringLiteral("flight_id"), flight_id);
 | 
	
		
			
				|  |  | +        processedFlights.append(new_flight_data);
 | 
	
		
			
				|  |  | +        new_flight_data.clear();
 | 
	
		
			
				|  |  | +        flight_id ++;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +QVector<QMap<QString, QVariant> > ProcessFlights::getProcessedFlights() const
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    return processedFlights;
 | 
	
		
			
				|  |  | +}
 |