Seredenko-V

Untitled

May 1st, 2022
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. tuple<TasksInfo, TasksInfo> PerformPersonTasks(const string& person, int task_count) {
  2. if (InfoPerson_.count(person) == 0) { // если такого разработчика нет
  3. return {};
  4. }
  5.  
  6. vector<int> number_task_begin(4, 0); // кол-во задач i-го статуса
  7. for (const auto& [status, num] : InfoPerson_.at(person)) {
  8. number_task_begin[static_cast<size_t>(status)] = num;
  9. }
  10. vector<int> number_task_end = number_task_begin; // кол-во задач i-го статуса
  11.  
  12. /*for (const int& num : number_task_begin) {
  13. cout << num << " ";
  14. }
  15. cout << endl;*/
  16.  
  17. TasksInfo updated_tasks; // обновленные задачи
  18. TasksInfo untouched_tasks;
  19.  
  20. // РАБОТАЕТ, НО НЕ ЕСТ ТРЕНАЖЕР
  21. for (size_t i = 0; i < number_task_begin.size() - 1; ++i) { // перевод задач в след. сост.
  22. if (task_count <= number_task_begin[i]) {
  23. number_task_end[i] -= task_count;
  24. updated_tasks[static_cast<TaskStatus>(i + 1)] += task_count;
  25. InfoPerson_[person][static_cast<TaskStatus>(i + 1)] += task_count;
  26. untouched_tasks[static_cast<TaskStatus>(i)] = number_task_begin[i] - task_count;
  27. InfoPerson_[person][static_cast<TaskStatus>(i)] = number_task_end[i];
  28. number_task_end[i + 1] += task_count;
  29. break;
  30. } else {
  31. updated_tasks[static_cast<TaskStatus>(i + 1)] += number_task_begin[i];
  32. number_task_end[i + 1] += number_task_begin[i];
  33. InfoPerson_[person][static_cast<TaskStatus>(i + 1)] += number_task_begin[i + 1];
  34. task_count -= number_task_begin[i];
  35. number_task_end[i] -= number_task_begin[i];
  36. InfoPerson_[person][static_cast<TaskStatus>(i)] = number_task_end[i];
  37. }
  38. }
  39.  
  40. /*for (const int& num : number_task_end) {
  41. cout << num << " ";
  42. }
  43. cout << endl;*/
  44. untouched_tasks.erase(TaskStatus::DONE); // все невыполненные задачи
  45. return {updated_tasks, untouched_tasks};
  46. }
Advertisement
Add Comment
Please, Sign In to add comment