processpilots.cpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "processpilots.h"
  2. #include "src/database/pilotentry.h"
  3. void ProcessPilots::parseRawData()
  4. {
  5. const QVector<int> cols_pilot1 = {37, 38, 39, 40}; //empId, name, phone, email
  6. const QVector<int> cols_pilot2 = {41, 42, 43, 44};
  7. const QVector<int> cols_pilot3 = {45, 46, 47, 48};
  8. const QVector<QVector<int>> pilot_cols = {
  9. cols_pilot1,
  10. cols_pilot2,
  11. cols_pilot3
  12. };
  13. QVector<QStringList> unique_pilots;
  14. QStringList pilot_data = {
  15. QString(),
  16. QStringLiteral("SELF"),
  17. QString(),
  18. QString()
  19. };
  20. unique_pilots.append(pilot_data);
  21. int unique_pilot_id = 1;
  22. processedPilotsIds.insert(pilot_data[1], unique_pilot_id);
  23. rawPilotsAndIds.append({pilot_data, unique_pilot_id});
  24. pilot_data.clear();
  25. unique_pilot_id ++;
  26. for (const auto &row : qAsConst(rawData)) {
  27. for (const auto &col_array : pilot_cols) {
  28. for (const auto &col : col_array) {
  29. pilot_data.append(row[col]);
  30. }
  31. if (!unique_pilots.contains(pilot_data) && !pilot_data.contains(QLatin1String("SELF"))) {
  32. unique_pilots.append(pilot_data);
  33. processedPilotsIds.insert(pilot_data[1], unique_pilot_id);
  34. rawPilotsAndIds.append({pilot_data, unique_pilot_id});
  35. unique_pilot_id ++;
  36. }
  37. pilot_data.clear();
  38. }
  39. }
  40. }
  41. void ProcessPilots::processParsedData()
  42. {
  43. for (const auto &pair : qAsConst(rawPilotsAndIds)) {
  44. //DEB << "ID:" << pair.second << "Details:" << pair.first;
  45. QHash<QString, QVariant> new_pilot_data;
  46. // process name [1]
  47. auto temp_list = pair.first[1].split(QLatin1Char(' '));
  48. if (!temp_list.isEmpty()) {
  49. new_pilot_data.insert(OPL::PilotEntry::LASTNAME, temp_list.first());
  50. temp_list.pop_front();
  51. if (!temp_list.isEmpty())
  52. new_pilot_data.insert(OPL::PilotEntry::FIRSTNAME, temp_list.join(QLatin1Char(' ')));
  53. } else {
  54. new_pilot_data.insert(OPL::PilotEntry::LASTNAME, QStringLiteral("UNKNOWN"));
  55. }
  56. // add additional data
  57. new_pilot_data.insert(OPL::PilotEntry::EMPLOYEEID, pair.first[0]);
  58. new_pilot_data.insert(OPL::PilotEntry::PHONE, pair.first[2]);
  59. new_pilot_data.insert(OPL::PilotEntry::EMAIL, pair.first[3]);
  60. // add pilot_id (workaround with literal until OPL::Db is updated)
  61. new_pilot_data.insert(QStringLiteral("pilot_id"), pair.second);
  62. processedPilotHashes.insert(pair.first[1], new_pilot_data);
  63. processedPilotsIds.insert(pair.first[1], pair.second);
  64. }
  65. }
  66. QHash<QString, QHash<QString, QVariant>> ProcessPilots::getProcessedPilotMaps() const
  67. {
  68. return processedPilotHashes;
  69. }
  70. QHash<QString, int> ProcessPilots::getProcessedPilotsIds() const
  71. {
  72. return processedPilotsIds;
  73. }