Commit bdabf336 authored by Florian Joriot's avatar Florian Joriot
Browse files

Administrations des taux avec boutons fonctionnel (designe a revoir)

parent 3f15eb52
Loading
Loading
Loading
Loading
+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>
@@ -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;
            });
+75 −7
Original line number Diff line number Diff line
@@ -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">
@@ -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>

@@ -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>
@@ -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);
            });
        },
    }
+6 −1
Original line number Diff line number Diff line
@@ -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,
@@ -213,7 +218,7 @@ return [

        [
            'controller' => MissionTauxController::class,
            'action'     => ['index','getListeTaux'],
            'action'     => ['index','get','getListeTaux'],
            'privileges' => [
                Privileges::MISSION_VISUALISATION_TAUX,
            ],
+15 −2
Original line number Diff line number Diff line
@@ -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
    {
+6 −3
Original line number Diff line number Diff line
@@ -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();
@@ -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();
@@ -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