Loading front/Mission/ListeTaux.vue +9 −5 Original line number Diff line number Diff line <template> <div v-for="taux in listeTaux"> <taux v-if="!taux.missionTauxRemu" :key="taux.id" :taux="taux" :listeTaux="listeTaux"></taux> <taux v-if="!taux.missionTauxRemu" @supprimer="supprimer" @refreshListe="refreshListe" :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 Loading @@ -34,19 +34,23 @@ export default { this.reload(); }); }, supprimer(taux) supprimer() { this.reload(); }, refreshListe() { this.reload(); }, refresh(taux) { this.listeTaux[taux.id] = taux; let index = Util.json.indexById(this.listeTaux, taux.id); this.listeTaux[index] = taux; }, reload() { axios.get( Util.url("missions-taux/liste-taux",) Util.url("missions-taux/liste-taux") ).then(response => { this.listeTaux = response.data; }); Loading front/Mission/Taux.vue +75 −7 Original line number Diff line number Diff line Loading @@ -22,13 +22,30 @@ <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 v-for="tauxValeur in taux.tauxRemuValeurs" :key="tauxValeur.id"> <li>{{ tauxValeur.valeur }}€/h à partir du {{ tauxValeur.dateEffet }} <a class="btn btn-primary" @click.prevent="saisieValeur" :data-id="tauxValeur.id"> <u-icon name="pen-to-square"/> </a> <a class="btn btn-danger" @click.prevent="supprimerValeur" :data-id="tauxValeur.id"> <u-icon name="trash-can"/> </a> </li> </div> </ul> <a :href="ajoutValeurUrl" class="btn btn-primary" @click.prevent="ajoutValeur"> <u-icon name="plus"/> </a> </div> <!-- Pour les taux qui dépende d'un autre taux --> <div v-if=taux.missionTauxRemu class="row"> <div class="col"> Loading @@ -44,9 +61,25 @@ Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }}</li> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }} <a class="btn btn-primary" @click.prevent="saisieValeur" :data-id="tauxValeur.id"> <i class=" fas fa-pen-square" :data-id="tauxValeur.id"/> </a> <a class="btn btn-danger" @click.prevent="supprimerValeur" :data-id="tauxValeur.id"> <i class=" fas fa-trash-can" :data-id="tauxValeur.id"/> </a> </li> </div> </ul> <a :href="ajoutValeurUrl" class="btn btn-primary" @click.prevent="ajoutValeur"> <u-icon name="plus"/> </a> </div> </div> Loading @@ -57,7 +90,7 @@ <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> <taux @supprimer="supprimer" @refreshListe="refreshListe" :key="taux.id" :taux="item" :listeTaux="listeTaux"></taux> </div> </div> </div> Loading @@ -75,19 +108,54 @@ export default { return { saisieUrl: Util.url('missions-taux/saisir/:missionTauxRemu', {missionTauxRemu: this.taux.id}), supprimerUrl: Util.url("missions-taux/supprimer/:missionTauxRemu", {missionTauxRemu: this.taux.id}), ajoutValeurUrl: Util.url("missions-taux/saisir-valeur/:missionTauxRemu",{missionTauxRemu: this.taux.id}), }; }, methods: { saisie(event) { modAjax(event.target, (widget) => { this.refresh(); modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, ajoutValeur(event) { modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, saisieValeur(event) { event.target.href = Util.url("missions-taux/saisir-valeur/:missionTauxRemu/:missionTauxRemuValeur", {missionTauxRemu: this.taux, missionTauxRemuValeur: event.target.dataset.id}); modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, refreshListe(event) { this.$emit('refreshListe'); }, supprimer(event) { popConfirm(event.target, (response) => { this.$emit('supprimer', this.missionTauxRemu); this.$emit('refreshListe'); }); }, supprimerValeur(event) { event.target.href = Util.url("missions-taux/supprimer-valeur/:missionTauxRemuValeur", {missionTauxRemuValeur: event.target.dataset.id}); popConfirm(event.target, (response) => { this.$emit('refreshListe'); }); }, refresh(taux) { axios.get( Util.url("missions-taux/get/:missionTauxRemu", {missionTauxRemu: taux.id}) ).then(response => { this.$emit('refresh', response.data); }); }, } 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', ], 'get' => [ 'route' => '/get/:missionTauxRemu', 'controller' => MissionTauxController::class, 'action' => 'get', ], 'liste-taux' => [ 'route' => '/liste-taux', 'controller' => MissionTauxController::class, Loading Loading @@ -213,7 +218,7 @@ return [ [ 'controller' => MissionTauxController::class, 'action' => ['index','getListeTaux'], 'action' => ['index','get','getListeTaux'], 'privileges' => [ Privileges::MISSION_VISUALISATION_TAUX, ], Loading module/Mission/src/Controller/MissionTauxController.php +15 −2 Original line number Diff line number Diff line Loading @@ -120,15 +120,28 @@ class MissionTauxController extends AbstractController public function supprimerAction(): MessengerViewModel public function supprimerAction(): \Laminas\View\Model\JsonModel { $tauxRemu = $this->getEvent()->getParam('missionTauxRemu'); $this->getServiceMissionTaux()->delete($tauxRemu, true); return new MessengerViewModel(); $this->flashMessenger()->addSuccessMessage("Taux supprimée avec succès."); return $this->axios()->send([]); } /** * Retourne les données pour un taux * * @return \Laminas\View\Model\JsonModel */ public function getAction() { /** @var Mission $mission */ $missionTauxRemu = $this->getEvent()->getParam('missionTauxRemu'); return $this->axios()->send($missionTauxRemu); } public function supprimerValeurAction(): MessengerViewModel { Loading module/Mission/src/Service/MissionTauxService.php +6 −3 Original line number Diff line number Diff line Loading @@ -52,7 +52,8 @@ class MissionTauxService extends AbstractEntityService FROM " . MissionTauxRemu::class . " mtr LEFT JOIN mtr.missionTauxRemu mtrp LEFT JOIN mtr.tauxRemuValeurs mtrv WHERE mtr.histoDestruction IS NULL"; WHERE mtr.histoDestruction IS NULL ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); return $query->getResult(); Loading @@ -66,7 +67,8 @@ class MissionTauxService extends AbstractEntityService FROM " . MissionTauxRemu::class . " mtr LEFT JOIN mtr.tauxRemuValeurs mtrv WHERE mtr.histoDestruction IS NULL AND mtr.missionTauxRemu IS NULL"; AND mtr.missionTauxRemu IS NULL ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); return $query->getResult(); Loading @@ -78,7 +80,8 @@ class MissionTauxService extends AbstractEntityService { $dql = "SELECT mtr FROM " . MissionTauxRemuValeur::class . " mtr WHERE mtr.id =" . $tauxRemuValeurId; WHERE mtr.id =" . $tauxRemuValeurId ." ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); $result = $query->getResult(); if (!empty($result)) { Loading Loading
front/Mission/ListeTaux.vue +9 −5 Original line number Diff line number Diff line <template> <div v-for="taux in listeTaux"> <taux v-if="!taux.missionTauxRemu" :key="taux.id" :taux="taux" :listeTaux="listeTaux"></taux> <taux v-if="!taux.missionTauxRemu" @supprimer="supprimer" @refreshListe="refreshListe" :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 Loading @@ -34,19 +34,23 @@ export default { this.reload(); }); }, supprimer(taux) supprimer() { this.reload(); }, refreshListe() { this.reload(); }, refresh(taux) { this.listeTaux[taux.id] = taux; let index = Util.json.indexById(this.listeTaux, taux.id); this.listeTaux[index] = taux; }, reload() { axios.get( Util.url("missions-taux/liste-taux",) Util.url("missions-taux/liste-taux") ).then(response => { this.listeTaux = response.data; }); Loading
front/Mission/Taux.vue +75 −7 Original line number Diff line number Diff line Loading @@ -22,13 +22,30 @@ <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 v-for="tauxValeur in taux.tauxRemuValeurs" :key="tauxValeur.id"> <li>{{ tauxValeur.valeur }}€/h à partir du {{ tauxValeur.dateEffet }} <a class="btn btn-primary" @click.prevent="saisieValeur" :data-id="tauxValeur.id"> <u-icon name="pen-to-square"/> </a> <a class="btn btn-danger" @click.prevent="supprimerValeur" :data-id="tauxValeur.id"> <u-icon name="trash-can"/> </a> </li> </div> </ul> <a :href="ajoutValeurUrl" class="btn btn-primary" @click.prevent="ajoutValeur"> <u-icon name="plus"/> </a> </div> <!-- Pour les taux qui dépende d'un autre taux --> <div v-if=taux.missionTauxRemu class="row"> <div class="col"> Loading @@ -44,9 +61,25 @@ Modification :<br/> <ul> <div v-for="tauxValeur in taux.tauxRemuValeurs"> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }}</li> <li>Coéfficient de {{ tauxValeur.valeur }} à partir du {{ tauxValeur.dateEffet }} <a class="btn btn-primary" @click.prevent="saisieValeur" :data-id="tauxValeur.id"> <i class=" fas fa-pen-square" :data-id="tauxValeur.id"/> </a> <a class="btn btn-danger" @click.prevent="supprimerValeur" :data-id="tauxValeur.id"> <i class=" fas fa-trash-can" :data-id="tauxValeur.id"/> </a> </li> </div> </ul> <a :href="ajoutValeurUrl" class="btn btn-primary" @click.prevent="ajoutValeur"> <u-icon name="plus"/> </a> </div> </div> Loading @@ -57,7 +90,7 @@ <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> <taux @supprimer="supprimer" @refreshListe="refreshListe" :key="taux.id" :taux="item" :listeTaux="listeTaux"></taux> </div> </div> </div> Loading @@ -75,19 +108,54 @@ export default { return { saisieUrl: Util.url('missions-taux/saisir/:missionTauxRemu', {missionTauxRemu: this.taux.id}), supprimerUrl: Util.url("missions-taux/supprimer/:missionTauxRemu", {missionTauxRemu: this.taux.id}), ajoutValeurUrl: Util.url("missions-taux/saisir-valeur/:missionTauxRemu",{missionTauxRemu: this.taux.id}), }; }, methods: { saisie(event) { modAjax(event.target, (widget) => { this.refresh(); modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, ajoutValeur(event) { modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, saisieValeur(event) { event.target.href = Util.url("missions-taux/saisir-valeur/:missionTauxRemu/:missionTauxRemuValeur", {missionTauxRemu: this.taux, missionTauxRemuValeur: event.target.dataset.id}); modAjax(event.target, (response) => { this.$emit('refreshListe'); }); }, refreshListe(event) { this.$emit('refreshListe'); }, supprimer(event) { popConfirm(event.target, (response) => { this.$emit('supprimer', this.missionTauxRemu); this.$emit('refreshListe'); }); }, supprimerValeur(event) { event.target.href = Util.url("missions-taux/supprimer-valeur/:missionTauxRemuValeur", {missionTauxRemuValeur: event.target.dataset.id}); popConfirm(event.target, (response) => { this.$emit('refreshListe'); }); }, refresh(taux) { axios.get( Util.url("missions-taux/get/:missionTauxRemu", {missionTauxRemu: taux.id}) ).then(response => { this.$emit('refresh', response.data); }); }, } 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', ], 'get' => [ 'route' => '/get/:missionTauxRemu', 'controller' => MissionTauxController::class, 'action' => 'get', ], 'liste-taux' => [ 'route' => '/liste-taux', 'controller' => MissionTauxController::class, Loading Loading @@ -213,7 +218,7 @@ return [ [ 'controller' => MissionTauxController::class, 'action' => ['index','getListeTaux'], 'action' => ['index','get','getListeTaux'], 'privileges' => [ Privileges::MISSION_VISUALISATION_TAUX, ], Loading
module/Mission/src/Controller/MissionTauxController.php +15 −2 Original line number Diff line number Diff line Loading @@ -120,15 +120,28 @@ class MissionTauxController extends AbstractController public function supprimerAction(): MessengerViewModel public function supprimerAction(): \Laminas\View\Model\JsonModel { $tauxRemu = $this->getEvent()->getParam('missionTauxRemu'); $this->getServiceMissionTaux()->delete($tauxRemu, true); return new MessengerViewModel(); $this->flashMessenger()->addSuccessMessage("Taux supprimée avec succès."); return $this->axios()->send([]); } /** * Retourne les données pour un taux * * @return \Laminas\View\Model\JsonModel */ public function getAction() { /** @var Mission $mission */ $missionTauxRemu = $this->getEvent()->getParam('missionTauxRemu'); return $this->axios()->send($missionTauxRemu); } public function supprimerValeurAction(): MessengerViewModel { Loading
module/Mission/src/Service/MissionTauxService.php +6 −3 Original line number Diff line number Diff line Loading @@ -52,7 +52,8 @@ class MissionTauxService extends AbstractEntityService FROM " . MissionTauxRemu::class . " mtr LEFT JOIN mtr.missionTauxRemu mtrp LEFT JOIN mtr.tauxRemuValeurs mtrv WHERE mtr.histoDestruction IS NULL"; WHERE mtr.histoDestruction IS NULL ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); return $query->getResult(); Loading @@ -66,7 +67,8 @@ class MissionTauxService extends AbstractEntityService FROM " . MissionTauxRemu::class . " mtr LEFT JOIN mtr.tauxRemuValeurs mtrv WHERE mtr.histoDestruction IS NULL AND mtr.missionTauxRemu IS NULL"; AND mtr.missionTauxRemu IS NULL ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); return $query->getResult(); Loading @@ -78,7 +80,8 @@ class MissionTauxService extends AbstractEntityService { $dql = "SELECT mtr FROM " . MissionTauxRemuValeur::class . " mtr WHERE mtr.id =" . $tauxRemuValeurId; WHERE mtr.id =" . $tauxRemuValeurId ." ORDER BY mtr.id"; $query = $this->getEntityManager()->createQuery($dql); $result = $query->getResult(); if (!empty($result)) { Loading