processaircraft.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include "processaircraft.h"
  2. void ProcessAircraft::parseRawData()
  3. {
  4. QStringList tail_details;
  5. // relevant colums: {reg,company,make,model,variant,multipilot,multiengine,engineType,weightClass}
  6. int relevant_cols[9] = {79, 36, 76, 77, 78, 83, 84, 92, 96};
  7. for (const auto &row : qAsConst(rawData)) {
  8. for (const auto &col : relevant_cols) {
  9. tail_details.append(row[col]);
  10. }
  11. if (!(unique_tails.contains(tail_details)))
  12. unique_tails.append(tail_details);
  13. tail_details.clear();
  14. }
  15. }
  16. void ProcessAircraft::processParsedData()
  17. {
  18. // init counter
  19. int unique_tail_id = 1;
  20. QMap<QString, QVariant> new_tail_data;
  21. for (const auto &list : qAsConst(unique_tails)) {
  22. new_tail_data.insert(Opl::Db::TAILS_REGISTRATION, list[0]);
  23. new_tail_data.insert(Opl::Db::TAILS_COMPANY, list[1]);
  24. new_tail_data.insert(Opl::Db::TAILS_MAKE, list[2]);
  25. new_tail_data.insert(Opl::Db::TAILS_MODEL, list[3]);
  26. new_tail_data.insert(Opl::Db::TAILS_VARIANT, list[4]);
  27. if (list[5] == "TRUE")
  28. new_tail_data.insert(Opl::Db::TAILS_MULTIPILOT, 1);
  29. else
  30. new_tail_data.insert(Opl::Db::TAILS_MULTIPILOT, 0);
  31. if (list[6] == "TRUE")
  32. new_tail_data.insert(Opl::Db::TAILS_MULTIENGINE, 1);
  33. else
  34. new_tail_data.insert(Opl::Db::TAILS_MULTIENGINE, 0);
  35. if (list[7] == "Piston") // other values need to be added as needed, do later
  36. new_tail_data.insert(Opl::Db::TAILS_ENGINETYPE, 1);
  37. else if (list[7] == "Turbine (jet-fan)")
  38. new_tail_data.insert(Opl::Db::TAILS_ENGINETYPE, 3);
  39. if (list[8] == "TRUE") // this is a above 7.5t switch in MCC, so default to medium for now
  40. new_tail_data.insert(Opl::Db::TAILS_WEIGHTCLASS, 1);
  41. else
  42. new_tail_data.insert(Opl::Db::TAILS_WEIGHTCLASS, 0);
  43. new_tail_data.insert(QStringLiteral("tail_id"), unique_tail_id);
  44. processedTailIds.insert(list[0], unique_tail_id);
  45. processedTailMaps.insert(list[0], new_tail_data);
  46. unique_tail_id ++;
  47. new_tail_data.clear();
  48. }
  49. }
  50. QMap<QString, int> ProcessAircraft::getProcessedTailIds() const
  51. {
  52. return processedTailIds;
  53. }
  54. QMap<QString, QMap<QString, QVariant> > ProcessAircraft::getProcessedTailMaps() const
  55. {
  56. return processedTailMaps;
  57. }