Loading front/Mission/ListeTaux.vue +7 −10 Original line number Diff line number Diff line <template> <taux v-for="taux in listeTaux" @refresh="refresh" :key="taux.id" :taux="taux"></taux> <div v-for="taux in listeTaux"> <taux v-if="!taux.missionTauxRemu" :key="taux.id" :taux="taux" :listeTaux="listeTaux"></taux> </div> <a v-if="canAddTaux" class="btn btn-primary" :href="ajoutUrl" @click.prevent="ajout">Ajout d'un nouveau taux</a> </template> Loading @@ -18,7 +20,7 @@ export default { { return { listeTaux: [], ajoutUrl: "" //Util.url('mission/ajout/:intervenant', {intervenant: this.intervenant}) ajoutUrl: Util.url('missions-taux/saisir') }; }, mounted() Loading @@ -42,17 +44,12 @@ export default { }, reload() { this.listeTaux = { 1: {code: 'SMIC'}, 2: {code: 'Taux 1'}, 3: {code: 'Taux 2'}, } /*axios.get( Util.url("mission/liste-taux", {intervenant: this.intervenant}) axios.get( Util.url("missions-taux/liste-taux",) ).then(response => { this.listeTaux = response.data; });*/ }); }, } } Loading front/Mission/Taux.vue +84 −3 Original line number Diff line number Diff line <template> <div class="card"> {{ taux.code }} <div class="card" :class="{ 'ms-5':taux.missionTauxRemu}"> <div class="card-header"> {{ taux.libelle }} ({{ taux.code }}) <div class="float-end"> <a :href="saisieUrl" class="btn btn-primary" @click.prevent="saisie"> <u-icon name="pen-to-square"/> Modifier</a> <a :href="supprimerUrl" class="btn btn-danger" @click.prevent="supprimer"> <u-icon name="trash-can"/> Supprimer</a> </div> </div> <div class="card-body"> <!-- Pour les taux qui ne dépende pas d'un autre taux --> <div v-if=!taux.missionTauxRemu> Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>{{ tauxValeur.valeur }}€/h à partir du {{ tauxValeur.dateEffet }}</li> </div> </ul> </div> <!-- Pour les taux qui dépende d'un autre taux --> <div v-if=taux.missionTauxRemu class="row"> <div class="col"> Valeurs calculées (indexées sur le taux {{ taux.missionTauxRemu.libelle }}) : <ul> <div v-for="indexResult in taux.tauxRemuValeursIndex"> <li>{{ indexResult.valeur }}€/h à partir du {{ indexResult.date }}</li> </div> </ul> <br> </div> <div class="col order-1"> Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }}</li> </div> </ul> </div> </div> </div> </div> <div v-if=!taux.missionTauxRemu> <div v-for="item in listeTaux" :key="item"> <div v-if="item.missionTauxRemu && item.missionTauxRemu.id === taux.id"> <taux @refresh="refresh" :key="taux.id" :taux="item" :listeTaux="listeTaux"></taux> </div> </div> </div> </template> Loading @@ -8,8 +67,30 @@ export default { name: "Taux", props: { taux: {required: true} taux: {required: true}, listeTaux: {required: true}, }, data() { return { saisieUrl: Util.url('missions-taux/saisir/:missionTauxRemu', {missionTauxRemu: this.taux.id}), supprimerUrl: Util.url("missions-taux/supprimer/:missionTauxRemu", {missionTauxRemu: this.taux.id}), }; }, methods: { saisie(event) { modAjax(event.target, (widget) => { this.refresh(); }); }, supprimer(event) { popConfirm(event.target, (response) => { this.$emit('supprimer', this.missionTauxRemu); }); }, } } </script> Loading module/Mission/config/module.config.php +6 −1 Original line number Diff line number Diff line Loading @@ -86,6 +86,11 @@ return [ 'controller' => MissionTauxController::class, 'action' => 'saisir', ], 'liste-taux' => [ 'route' => '/liste-taux', 'controller' => MissionTauxController::class, 'action' => 'getListeTaux', ], 'supprimer' => [ 'route' => '/supprimer/:missionTauxRemu', 'controller' => MissionTauxController::class, Loading Loading @@ -208,7 +213,7 @@ return [ [ 'controller' => MissionTauxController::class, 'action' => ['index'], 'action' => ['index','getListeTaux'], 'privileges' => [ Privileges::MISSION_VISUALISATION_TAUX, ], Loading module/Mission/src/Controller/MissionTauxController.php +20 −2 Original line number Diff line number Diff line Loading @@ -24,14 +24,32 @@ class MissionTauxController extends AbstractController public function indexAction() { $annee = $this->getServiceContext()->getAnnee(); return compact('annee'); } public function getListeTauxAction() { $this->em()->getFilters()->enable('historique')->init([ MissionTauxRemu::class, ]); $tauxMissions = $this->getServiceMissionTaux()->getTauxRemus(); $annee = $this->getServiceContext()->getAnnee(); $tauxMissions = $this->getServiceMissionTaux()->getTauxRemusAnnee($tauxMissions); $liste = []; foreach ($tauxMissions as $tauxMission) { //Calcul de la liste des taux $liste[$tauxMission->getId()] = $this->getServiceMissionTaux()->missionTauxWs($tauxMission); } return compact('tauxMissions', 'annee'); return $this->axios()->send($liste); } Loading module/Mission/src/Entity/Db/MissionTauxRemu.php +145 −12 Original line number Diff line number Diff line Loading @@ -2,16 +2,21 @@ namespace Mission\Entity\Db; use Application\Service\Traits\ContextServiceAwareTrait; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Mission\Service\MissionTauxServiceAwareTrait; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Util; class MissionTauxRemu implements HistoriqueAwareInterface { use HistoriqueAwareTrait; use MissionTauxServiceAwareTrait; use ContextServiceAwareTrait; protected ?int $id = null; Loading Loading @@ -64,14 +69,88 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getMissionTauxRemu(): ?MissionTauxRemu public function getTauxRemuValeursIndex(): ?array { $tauxRemuindex = $this->getMissionTauxRemu(); if (!$tauxRemuindex) { return []; } $indexResult = []; $valeur = []; $annee = $this->getServiceContext()->getAnnee()->getId(); $dateDebutAnnee = "01-09-" . $annee; $valeursIndex = $tauxRemuindex->getValeurAnnee($annee); $valeurs = $this->getValeurAnnee($annee); $sizeIndex = sizeof($valeursIndex); $sizeTaux = sizeof($valeurs); $i = 0; $j = 0; while ($i < $sizeIndex || $j < $sizeTaux) { if ($valeursIndex[$i]->getDateEffet() < new DateTime($dateDebutAnnee) && $valeurs[$j]->getDateEffet() < new DateTime($dateDebutAnnee)) { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); $valeur['date'] = new DateTime($dateDebutAnnee); } elseif ($valeursIndex[$i]->getDateEffet() == $valeurs[$j]->getDateEffet()) { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); $valeur['date'] = $valeursIndex[$i]->getDateEffet(); } else { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); if ($valeursIndex[$i]->getDateEffet() > $valeurs[$j]->getDateEffet()) { $valeur['date'] = $valeursIndex[$i]->getDateEffet(); } else { $valeur['date'] = $valeurs[$j]->getDateEffet(); } $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); } if (!array_key_exists($valeur['date']->format(Util::DATE_FORMAT), $indexResult)) { $indexResult[$valeur['date']->format(Util::DATE_FORMAT)] = $valeur; } //rechercher le plus proche if ($i + 1 < $sizeIndex && $j + 1 < $sizeTaux) { if ($valeursIndex[$i]->getDateEffet() == $valeurs[$j]->getDateEffet()) { if ($valeursIndex[$i + 1]->getDateEffet() > $valeurs[$j + 1]->getDateEffet()) { $i++; } else { $j++; } } else { if ($valeursIndex[$i]->getDateEffet() > $valeurs[$j]->getDateEffet()) { $i++; } else { $j++; } } } else { if ($i + 1 < $sizeIndex) { $i++; } else { if ($j + 1 < $sizeTaux) { $j++; } else { break; } } } $valeur = []; } return $indexResult; } public function getMissionTauxRemu(): ?MissionTauxRemu { return $this->missionTauxRemu; } public function setMissionTauxRemu(?MissionTauxRemu $missionTauxRemu): MissionTauxRemu public function setMissionTauxRemu(?MissionTauxRemu $missionTauxRemu): MissionTauxRemu { $this->missionTauxRemu = $missionTauxRemu; Loading @@ -83,14 +162,16 @@ class MissionTauxRemu implements HistoriqueAwareInterface /** * @return Collection|MissionTauxRemuValeur[] */ public function getTauxRemuValeurs(): Collection public function getTauxRemuValeurs(): Collection { return $this->tauxRemuValeurs; } public function addTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self public function addTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self { $this->tauxRemuValeurs[] = $missionTauxRemuValeur; Loading @@ -99,7 +180,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function removeTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self public function removeTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self { $this->tauxRemuValeurs->removeElement($missionTauxRemuValeur); Loading @@ -108,7 +190,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getTauxRemuValeur(?\DateTime $date = null): ?MissionTauxRemuValeur public function getTauxRemuValeur(?\DateTime $date = null): ?MissionTauxRemuValeur { if (empty($date)) { $date = new \DateTime(); Loading @@ -127,7 +210,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getValeur(?\DateTime $date = null): ?float public function getValeur(?\DateTime $date = null): ?float { $tauxRemuValeur = $this->getTauxRemuValeur($date); if ($tauxRemuValeur) { Loading @@ -139,21 +223,32 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function __construct() public function getValeurs(): Collection { return $this->tauxRemuValeurs; } public function __construct() { $this->tauxRemuValeurs = new ArrayCollection(); } public function __toString(): string public function __toString(): string { return $this->getLibelle(); } public function getDerniereValeur() public function getDerniereValeur() { $valeurRetour = null; $valeurRetourDate = null; Loading @@ -170,7 +265,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getDerniereValeurDate() public function getDerniereValeurDate() { $valeurRetourDate = null; $valeurs = $this->tauxRemuValeurs->getValues(); Loading @@ -185,7 +281,44 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function setValeur(DateTime $date, float $valeur) public function setValeurs($tauxRemuValeurs) { $this->tauxRemuValeurs = new ArrayCollection(); foreach ($tauxRemuValeurs as $tauxRemuValeur) { $this->tauxRemuValeurs[] = $tauxRemuValeur; } } public function getValeurAnnee(int $annee): array { $valeurs = []; $dateDebutAnnee = "01-09-" . $annee; $dateFinAnnee = "01-09-" . $annee + 1; $temp = null; $testValeur = $this->getValeurs(); foreach ($testValeur as $valeur) { $date = $valeur->getDateEffet(); if (($temp == null || $temp > new DateTime($dateDebutAnnee)) && $date < new DateTime($dateDebutAnnee)) { $valeurs[] = $valeur; break; } if ($date >= new DateTime($dateDebutAnnee) && new $date < new DateTime($dateFinAnnee)) { $valeurs[] = $valeur; $temp = $date; } } return $valeurs; } public function setValeur(DateTime $date, float $valeur) { $tauxRemuValeurProche = $this->getTauxRemuValeur($date); if ($tauxRemuValeurProche != null && $tauxRemuValeurProche->getDateEffet() == $date) { Loading Loading
front/Mission/ListeTaux.vue +7 −10 Original line number Diff line number Diff line <template> <taux v-for="taux in listeTaux" @refresh="refresh" :key="taux.id" :taux="taux"></taux> <div v-for="taux in listeTaux"> <taux v-if="!taux.missionTauxRemu" :key="taux.id" :taux="taux" :listeTaux="listeTaux"></taux> </div> <a v-if="canAddTaux" class="btn btn-primary" :href="ajoutUrl" @click.prevent="ajout">Ajout d'un nouveau taux</a> </template> Loading @@ -18,7 +20,7 @@ export default { { return { listeTaux: [], ajoutUrl: "" //Util.url('mission/ajout/:intervenant', {intervenant: this.intervenant}) ajoutUrl: Util.url('missions-taux/saisir') }; }, mounted() Loading @@ -42,17 +44,12 @@ export default { }, reload() { this.listeTaux = { 1: {code: 'SMIC'}, 2: {code: 'Taux 1'}, 3: {code: 'Taux 2'}, } /*axios.get( Util.url("mission/liste-taux", {intervenant: this.intervenant}) axios.get( Util.url("missions-taux/liste-taux",) ).then(response => { this.listeTaux = response.data; });*/ }); }, } } Loading
front/Mission/Taux.vue +84 −3 Original line number Diff line number Diff line <template> <div class="card"> {{ taux.code }} <div class="card" :class="{ 'ms-5':taux.missionTauxRemu}"> <div class="card-header"> {{ taux.libelle }} ({{ taux.code }}) <div class="float-end"> <a :href="saisieUrl" class="btn btn-primary" @click.prevent="saisie"> <u-icon name="pen-to-square"/> Modifier</a> <a :href="supprimerUrl" class="btn btn-danger" @click.prevent="supprimer"> <u-icon name="trash-can"/> Supprimer</a> </div> </div> <div class="card-body"> <!-- Pour les taux qui ne dépende pas d'un autre taux --> <div v-if=!taux.missionTauxRemu> Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>{{ tauxValeur.valeur }}€/h à partir du {{ tauxValeur.dateEffet }}</li> </div> </ul> </div> <!-- Pour les taux qui dépende d'un autre taux --> <div v-if=taux.missionTauxRemu class="row"> <div class="col"> Valeurs calculées (indexées sur le taux {{ taux.missionTauxRemu.libelle }}) : <ul> <div v-for="indexResult in taux.tauxRemuValeursIndex"> <li>{{ indexResult.valeur }}€/h à partir du {{ indexResult.date }}</li> </div> </ul> <br> </div> <div class="col order-1"> Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }}</li> </div> </ul> </div> </div> </div> </div> <div v-if=!taux.missionTauxRemu> <div v-for="item in listeTaux" :key="item"> <div v-if="item.missionTauxRemu && item.missionTauxRemu.id === taux.id"> <taux @refresh="refresh" :key="taux.id" :taux="item" :listeTaux="listeTaux"></taux> </div> </div> </div> </template> Loading @@ -8,8 +67,30 @@ export default { name: "Taux", props: { taux: {required: true} taux: {required: true}, listeTaux: {required: true}, }, data() { return { saisieUrl: Util.url('missions-taux/saisir/:missionTauxRemu', {missionTauxRemu: this.taux.id}), supprimerUrl: Util.url("missions-taux/supprimer/:missionTauxRemu", {missionTauxRemu: this.taux.id}), }; }, methods: { saisie(event) { modAjax(event.target, (widget) => { this.refresh(); }); }, supprimer(event) { popConfirm(event.target, (response) => { this.$emit('supprimer', this.missionTauxRemu); }); }, } } </script> Loading
module/Mission/config/module.config.php +6 −1 Original line number Diff line number Diff line Loading @@ -86,6 +86,11 @@ return [ 'controller' => MissionTauxController::class, 'action' => 'saisir', ], 'liste-taux' => [ 'route' => '/liste-taux', 'controller' => MissionTauxController::class, 'action' => 'getListeTaux', ], 'supprimer' => [ 'route' => '/supprimer/:missionTauxRemu', 'controller' => MissionTauxController::class, Loading Loading @@ -208,7 +213,7 @@ return [ [ 'controller' => MissionTauxController::class, 'action' => ['index'], 'action' => ['index','getListeTaux'], 'privileges' => [ Privileges::MISSION_VISUALISATION_TAUX, ], Loading
module/Mission/src/Controller/MissionTauxController.php +20 −2 Original line number Diff line number Diff line Loading @@ -24,14 +24,32 @@ class MissionTauxController extends AbstractController public function indexAction() { $annee = $this->getServiceContext()->getAnnee(); return compact('annee'); } public function getListeTauxAction() { $this->em()->getFilters()->enable('historique')->init([ MissionTauxRemu::class, ]); $tauxMissions = $this->getServiceMissionTaux()->getTauxRemus(); $annee = $this->getServiceContext()->getAnnee(); $tauxMissions = $this->getServiceMissionTaux()->getTauxRemusAnnee($tauxMissions); $liste = []; foreach ($tauxMissions as $tauxMission) { //Calcul de la liste des taux $liste[$tauxMission->getId()] = $this->getServiceMissionTaux()->missionTauxWs($tauxMission); } return compact('tauxMissions', 'annee'); return $this->axios()->send($liste); } Loading
module/Mission/src/Entity/Db/MissionTauxRemu.php +145 −12 Original line number Diff line number Diff line Loading @@ -2,16 +2,21 @@ namespace Mission\Entity\Db; use Application\Service\Traits\ContextServiceAwareTrait; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Mission\Service\MissionTauxServiceAwareTrait; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; use UnicaenApp\Util; class MissionTauxRemu implements HistoriqueAwareInterface { use HistoriqueAwareTrait; use MissionTauxServiceAwareTrait; use ContextServiceAwareTrait; protected ?int $id = null; Loading Loading @@ -64,14 +69,88 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getMissionTauxRemu(): ?MissionTauxRemu public function getTauxRemuValeursIndex(): ?array { $tauxRemuindex = $this->getMissionTauxRemu(); if (!$tauxRemuindex) { return []; } $indexResult = []; $valeur = []; $annee = $this->getServiceContext()->getAnnee()->getId(); $dateDebutAnnee = "01-09-" . $annee; $valeursIndex = $tauxRemuindex->getValeurAnnee($annee); $valeurs = $this->getValeurAnnee($annee); $sizeIndex = sizeof($valeursIndex); $sizeTaux = sizeof($valeurs); $i = 0; $j = 0; while ($i < $sizeIndex || $j < $sizeTaux) { if ($valeursIndex[$i]->getDateEffet() < new DateTime($dateDebutAnnee) && $valeurs[$j]->getDateEffet() < new DateTime($dateDebutAnnee)) { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); $valeur['date'] = new DateTime($dateDebutAnnee); } elseif ($valeursIndex[$i]->getDateEffet() == $valeurs[$j]->getDateEffet()) { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); $valeur['date'] = $valeursIndex[$i]->getDateEffet(); } else { $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); if ($valeursIndex[$i]->getDateEffet() > $valeurs[$j]->getDateEffet()) { $valeur['date'] = $valeursIndex[$i]->getDateEffet(); } else { $valeur['date'] = $valeurs[$j]->getDateEffet(); } $valeur['valeur'] = $valeursIndex[$i]->getValeur() * $valeurs[$j]->getValeur(); } if (!array_key_exists($valeur['date']->format(Util::DATE_FORMAT), $indexResult)) { $indexResult[$valeur['date']->format(Util::DATE_FORMAT)] = $valeur; } //rechercher le plus proche if ($i + 1 < $sizeIndex && $j + 1 < $sizeTaux) { if ($valeursIndex[$i]->getDateEffet() == $valeurs[$j]->getDateEffet()) { if ($valeursIndex[$i + 1]->getDateEffet() > $valeurs[$j + 1]->getDateEffet()) { $i++; } else { $j++; } } else { if ($valeursIndex[$i]->getDateEffet() > $valeurs[$j]->getDateEffet()) { $i++; } else { $j++; } } } else { if ($i + 1 < $sizeIndex) { $i++; } else { if ($j + 1 < $sizeTaux) { $j++; } else { break; } } } $valeur = []; } return $indexResult; } public function getMissionTauxRemu(): ?MissionTauxRemu { return $this->missionTauxRemu; } public function setMissionTauxRemu(?MissionTauxRemu $missionTauxRemu): MissionTauxRemu public function setMissionTauxRemu(?MissionTauxRemu $missionTauxRemu): MissionTauxRemu { $this->missionTauxRemu = $missionTauxRemu; Loading @@ -83,14 +162,16 @@ class MissionTauxRemu implements HistoriqueAwareInterface /** * @return Collection|MissionTauxRemuValeur[] */ public function getTauxRemuValeurs(): Collection public function getTauxRemuValeurs(): Collection { return $this->tauxRemuValeurs; } public function addTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self public function addTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self { $this->tauxRemuValeurs[] = $missionTauxRemuValeur; Loading @@ -99,7 +180,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function removeTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self public function removeTauxRemuValeur(MissionTauxRemuValeur $missionTauxRemuValeur): self { $this->tauxRemuValeurs->removeElement($missionTauxRemuValeur); Loading @@ -108,7 +190,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getTauxRemuValeur(?\DateTime $date = null): ?MissionTauxRemuValeur public function getTauxRemuValeur(?\DateTime $date = null): ?MissionTauxRemuValeur { if (empty($date)) { $date = new \DateTime(); Loading @@ -127,7 +210,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getValeur(?\DateTime $date = null): ?float public function getValeur(?\DateTime $date = null): ?float { $tauxRemuValeur = $this->getTauxRemuValeur($date); if ($tauxRemuValeur) { Loading @@ -139,21 +223,32 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function __construct() public function getValeurs(): Collection { return $this->tauxRemuValeurs; } public function __construct() { $this->tauxRemuValeurs = new ArrayCollection(); } public function __toString(): string public function __toString(): string { return $this->getLibelle(); } public function getDerniereValeur() public function getDerniereValeur() { $valeurRetour = null; $valeurRetourDate = null; Loading @@ -170,7 +265,8 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function getDerniereValeurDate() public function getDerniereValeurDate() { $valeurRetourDate = null; $valeurs = $this->tauxRemuValeurs->getValues(); Loading @@ -185,7 +281,44 @@ class MissionTauxRemu implements HistoriqueAwareInterface public function setValeur(DateTime $date, float $valeur) public function setValeurs($tauxRemuValeurs) { $this->tauxRemuValeurs = new ArrayCollection(); foreach ($tauxRemuValeurs as $tauxRemuValeur) { $this->tauxRemuValeurs[] = $tauxRemuValeur; } } public function getValeurAnnee(int $annee): array { $valeurs = []; $dateDebutAnnee = "01-09-" . $annee; $dateFinAnnee = "01-09-" . $annee + 1; $temp = null; $testValeur = $this->getValeurs(); foreach ($testValeur as $valeur) { $date = $valeur->getDateEffet(); if (($temp == null || $temp > new DateTime($dateDebutAnnee)) && $date < new DateTime($dateDebutAnnee)) { $valeurs[] = $valeur; break; } if ($date >= new DateTime($dateDebutAnnee) && new $date < new DateTime($dateFinAnnee)) { $valeurs[] = $valeur; $temp = $date; } } return $valeurs; } public function setValeur(DateTime $date, float $valeur) { $tauxRemuValeurProche = $this->getTauxRemuValeur($date); if ($tauxRemuValeurProche != null && $tauxRemuValeurProche->getDateEffet() == $date) { Loading