Commit bdfcedc1 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Merge remote-tracking branch 'origin/missions' into missions

parents 5fe9ad81 bdabf336
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@
* Il est de nouveau possible de saisir des taux de charge TTC et des taux de charge patronale a virgule
* Modification du filtre des status séléctionnables dans les données personnelles (#48151)
* Lors de la demande de mise en paiement, pouvoir choisir un EOTP même si son centre de coût parent n'est pas de l'activité attendue (pilotage / enseignement) (#48286)
* Utilisation prioritaire de l'email personnel des données personnelles pour l'envoi d'email via les indicateurs (#48393)
* Meilleure gestion de la casse lors de la recherche d'un employeur (#48543)

## Notes de mise à jour

@@ -48,9 +50,9 @@
* La génération des contrats de travail ayant été remaniée, veuillez vérifier que vous pouvez générer correctement de nouveaux contrats de travail


Avec l'ajout de la notion de tag sur les services d'enseignement et référentiel, les champs 'TAG' et 'TAG_ID' ont été ajouté dans la V_EXPORT_SERVICE, si vous avez créer votre propre V_EXPORT_SERVICE, il vous faudra la modifier vous même en vous appuyant sur la V_EXPORT_SERVICE par défaut de OSE (https://git.unicaen.fr/open-source/OSE/-/blob/master/data/ddl/view/V_EXPORT_SERVICE.sql)
Avec l'ajout de la notion de tag sur les services d'enseignement et référentiel, les champs 'TAG' et 'TAG_ID' ont été ajouté dans la V_EXPORT_SERVICE, si vous avez créé votre propre V_EXPORT_SERVICE, il vous faudra la modifier vous même en vous appuyant sur la V_EXPORT_SERVICE par défaut de OSE (https://git.unicaen.fr/open-source/OSE/-/blob/master/data/ddl/view/V_EXPORT_SERVICE.sql)

Ensuite si vous souhaitez faire apparaître les tags dans l'export des services, il vous faudra modifier vous même l'état de sorte 'Export des services', dans l'onglet 'Export CSV' : 
Ensuite si vous souhaitez faire apparaître les tags dans l'export des services, il vous faudra modifier vous même l'état de sortie 'Export des services', dans l'onglet 'Export CSV' : 

A la **ligne 56** ajouter TAG_ID à la variable $sid : 

+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ return [
    'table'   => 'MISSION_TAUX_REMU',
    'columns' => [
        'CODE',
        'HISTO_DESTRUCTION',
    ],
];

+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ return [
    'index'   => 'MISSION_TR_CODE_UN',
    'columns' => [
        'CODE',
        'HISTO_DESTRUCTION',
    ],
];

+14 −13
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" @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>

@@ -18,7 +20,7 @@ export default {
    {
        return {
            listeTaux: [],
            ajoutUrl: "" //Util.url('mission/ajout/:intervenant', {intervenant: this.intervenant})
            ajoutUrl: Util.url('missions-taux/saisir')
        };
    },
    mounted()
@@ -32,27 +34,26 @@ 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()
        {
            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;
            });*/
            });
        },
    }
}
+152 −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>
                &nbsp;
                <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" :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">
                    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 }}
                                <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>


        </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 @supprimer="supprimer" @refreshListe="refreshListe" :key="taux.id" :taux="item" :listeTaux="listeTaux"></taux>
            </div>
        </div>
    </div>
</template>

@@ -8,8 +100,65 @@
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}),
            ajoutValeurUrl: Util.url("missions-taux/saisir-valeur/:missionTauxRemu",{missionTauxRemu: this.taux.id}),
        };
    },
    methods: {
        saisie(event)
        {
            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('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);
            });
        },
    }
}
</script>

Loading