diff --git a/TODO.md b/TODO.md index 3264832..c837ad9 100644 --- a/TODO.md +++ b/TODO.md @@ -63,13 +63,13 @@ TODO avant rendu : - [x] Étudie/Analyse des `RunProjet` - [ ] Interagis avec un `ProtoProjet` pour y mettre des tâches -- [ ] Recommande des ordonnancements pour la suite des exécutions à venir +- [x] Recommande des ordonnancements pour la suite des exécutions à venir (ordre d'exécutions des tâches) - [x] Calcule la durée totale restante d'un projet - [ ] Demande un salaire pour travailler - Méthodes - [x] Surcharge de `<<` : Affiche une facturation - - [ ] `pair, int> avis(const RunProjet &)` : renvoie l'ordonnancement + - [x] `pair, int> avis(const RunProjet &)` : renvoie l'ordonnancement et la durée totale restante #### Consultant diff --git a/src/Consultant.cpp b/src/Consultant.cpp index 4e91356..5050b39 100644 --- a/src/Consultant.cpp +++ b/src/Consultant.cpp @@ -19,11 +19,16 @@ std::ostream &operator<<(std::ostream &out, const Consultant &data) { } std::pair, int> Consultant::avis(const RunProjet &projet) { - // TODO + const std::vector taches = projet.consult_tasks(); int duree_totale = 0; - for (const Tache *it : projet.consult_tasks()) { + for (const Tache *it : taches) { duree_totale += it->get_duree_totale(); } - return std::make_pair(std::vector(), duree_totale); + std::vector ordonnancement; + for (const Tache *it : taches) { + ordonnancement.push_back(it->unique_id); + } + + return std::make_pair(ordonnancement, duree_totale); } diff --git a/src/Expert.cpp b/src/Expert.cpp index e6718d1..81c3ccb 100644 --- a/src/Expert.cpp +++ b/src/Expert.cpp @@ -19,8 +19,13 @@ std::ostream &operator<<(std::ostream &out, const Expert &data) { } std::pair, int> Expert::avis(const RunProjet &projet) { - // TODO - const int duree_totale = projet.consult_tasks().front()->dureeParal(); + const std::vector taches = projet.consult_tasks(); + const int duree_totale = taches.front()->dureeParal(); - return std::make_pair(std::vector(), duree_totale); + std::vector ordonnancement; + for (const Tache *it : taches) { + ordonnancement.push_back(it->unique_id); + } + + return std::make_pair(ordonnancement, duree_totale); }