fct.meta.tournee = {
"id": {
"lib": "(en dur) CHAMP_id_TourneeModeleR",
"aide": "",
"aff": "1",
"rangAff": -1,
"typeHTML": "number",
"unite": "",
"isTri": "1",
"isFiltre": "1"
},
"code_TourneeModeleR": {
"lib": "(en dur) CHAMP_code_TourneeModeleR",
"aide": "",
"aff": "1",
"rangAff": 1,
"typeHTML": "text",
"unite": "",
"isTri": "1",
"isFiltre": "1"
}
};
var i, j, dateDeb = "2018-01-17", dateFin = "2018-02-02", tournee2 = [], tournee3 = [], tournee4 = [], tasks;
RoulementDateService.get(dateDeb, dateFin).then(function (result) {
if (result && (result.status === 200)) {
fct.data.ficheposte = result.data.data;
fct.meta.ficheposte = result.data.meta;
/*tournee2 = [{
"id_TourneeModeleR": 4,
"code_TourneeModeleR": "t123",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee2"
}];
tournee3 = [{
"id_TourneeModeleR": 6,
"code_TourneeModeleR": "t145",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee3"
}];
tournee4 = [{
"id_TourneeModeleR": 7,
"code_TourneeModeleR": "t526",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee4"
}];
for (i = 0; i < fct.data.ficheposte.length; i++) {
tasks = fct.data.ficheposte[i].tasks;
for (j = 0; j < tasks.length; j++) {
switch (tasks[j].name) {
case "t145":
tasks[j].tournee = tournee3;
break;
case "t123":
tasks[j].tournee = tournee2;
break;
case "t526":
tasks[j].tournee = tournee4;
break;
default:
break;
}
}
}*/
/*fct.data.ficheposte = [
{
"name": "SPIDER Man",
"id": 16,
"tasks": [
{
"name": "t145",
"id": 122
},
{
"name": "t123",
"id": 123
}
]
}, {
"name": "Cloak Dagger",
"id": 16,
"tasks": [
{
"name": "t145",
"id": 122
},
{
"name": "t123",
"id": 123
}
]
}
];*/
fct.actions.run.PRO_AFFECTER_FICHE_POSTE = function(data) {
if (data.parentGanttItem) {
MsModalService.showModalWithId('app/views/gestionsite/planningroulement/popup/ficheposte/ficheposte.html', 'FichePosteCtl', true, data.parentGanttItem.id, fct.closePopup, true, {itemName: data.parentGanttItem.name, taskId: data.ganttItem.id, dateDeb: fct.data.gantt.dateDeb, dateFin: fct.data.gantt.dateFin, selectedDate: fct.data.selectedDate});
} else {
MsModalService.showModalWithId('app/views/gestionsite/planningroulement/popup/ficheposte/ficheposte.html', 'FichePosteCtl', false, undefined, fct.closePopup, true, {itemId: data.ganttItem.id});
}
};
fct.closePopup = la fonction après fermeture de la popup (fct.closePopup = function(result, modal) {
if (!result) {
return;
} else {
[...]
}
};
)
fct.data.tournee = [{
"id_TourneeModeleR": 4,
"code_TourneeModeleR": "t123",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee2"
}, {
"id_TourneeModeleR": 6,
"code_TourneeModeleR": "t145",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee3"
}, {
"id_TourneeModeleR": 7,
"code_TourneeModeleR": "t526",
"dateDebut_TourneeModeleR": null,
"dateFin_TourneeModeleR": null,
"libelle_TourneeModeleR": "tournee4"
}];
fct.meta.tournee = {
"id": {
"lib": "(en dur) CHAMP_id_TourneeModeleR",
"aide": "",
"aff": "1",
"rangAff": -1,
"typeHTML": "number",
"unite": "",
"isTri": "1",
"isFiltre": "1"
},
"code_TourneeModeleR": {
"lib": "(en dur) CHAMP_code_TourneeModeleR",
"aide": "",
"aff": "1",
"rangAff": 1,
"typeHTML": "text",
"unite": "",
"isTri": "1",
"isFiltre": "1"
},
"dateDebut_TourneeModeleR": {
"lib": "(en dur) CHAMP_dateDebut_TourneeModeleR",
"aide": "",
"aff": "1",
"typeHTML": "date",
"isTri": "1",
"isFiltre": "1"
},
"dateFin_TourneeModeleR": {
"lib": "(en dur) CHAMP_dateFin_TourneeModeleR",
"aide": "",
"aff": "1",
"typeHTML": "date",
"isTri": "1",
"isFiltre": "1"
}
};
fct.data.pro = [
{
"id_VueProRessourceR": 15,
"login_VueProRessourceR": "480293",
"nom_VueProRessourceR": "BAT",
"libProfilMetier_VueProRessourceR": "ProClient",
"refProfilMetier_VueProRessourceR": 3,
"prenom_VueProRessourceR": "Man",
"actif_VueProRessourceR": "1"
},
{
"id_VueProRessourceR": 16,
"login_VueProRessourceR": "018665",
"nom_VueProRessourceR": "SPIDER",
"libProfilMetier_VueProRessourceR": "ProClient",
"refProfilMetier_VueProRessourceR": 3,
"prenom_VueProRessourceR": "Man",
"actif_VueProRessourceR": "1"
},
{
"id_VueProRessourceR": 25,
"login_VueProRessourceR": "074804",
"nom_VueProRessourceR": "WONDER",
"libProfilMetier_VueProRessourceR": "ProClient",
"refProfilMetier_VueProRessourceR": 3,
"prenom_VueProRessourceR": "Woman",
"actif_VueProRessourceR": "1"
},
{
"id_VueProRessourceR": 27,
"login_VueProRessourceR": "903671",
"nom_VueProRessourceR": "SUPER",
"libProfilMetier_VueProRessourceR": "ProClient",
"refProfilMetier_VueProRessourceR": 3,
"prenom_VueProRessourceR": "MAN",
"actif_VueProRessourceR": "1"
}
];
fct.meta.pro = {
"id": {
"lib": "(en dur) CHAMP_id_VueProRessourceR",
"aide": "",
"aff": "1",
"rangAff": -1,
"typeHTML": "number",
"unite": "",
"isTri": "1",
"isFiltre": "1"
}
};
result de modal.controller planningroulement (popup ficheposte) ficheposte: (5) [{…}, {…}, {…}, {…}, {…}] pro: (5) [{…}, {…}, {…}, {…}, {…}, id_VueProRessourceR: 15] tournee: {dateDebut_TourneeModeleR: "2018-02-02", dateFin_TourneeModeleR: "2018-02-02"}
// affectation de fiche de poste
div(ng-if='::!fichePosteCtl.fct.msUpdating')
.row(ng-switch='fichePosteCtl.fct.msPopupParams.parentItem')
.col-md-12
ms-input(ng-switch-default, ms-id='nom_agent', ms-meta='::(fichePosteCtl.fct.meta.roulement.libelle_professionnel_PersonneR)', ms-value='fichePosteCtl.fct.msPopupParams.parentItem.name')
ms-input(ng-switch-when='undefined', ms-id='nom_agent', ms-meta='::(fichePosteCtl.fct.meta.roulement.libelle_professionnel_PersonneR)', ms-value='fichePosteCtl.fct.msPopupParams.item.name')
.row(ng-if='fichePosteCtl.fct.msPopupParams.item.data')
.col-md-12
ms-input.col-md-6(ms-id='dureeContrat', ms-meta='::(fichePosteCtl.fct.meta.proDispo.dureeContrat_ProfessionnelR)', ms-value='fichePosteCtl.fct.msPopupParams.item.data.cumul.dureeContrat')
ms-input.col-md-6(ms-id='dureeTheorique', ms-meta='::(fichePosteCtl.fct.meta.proDispo.dureeTheorique_ProfessionnelR)', ms-value='fichePosteCtl.fct.msPopupParams.item.data.cumul.dureeTheorique')
.row(ng-if='!fichePosteCtl.fct.msPopupParams.item.data')
.col-md-12
ms-input.col-md-6(ms-id='dureeContrat', ms-meta='::(fichePosteCtl.fct.meta.proDispo.dureeContrat_ProfessionnelR)', ms-value='fichePosteCtl.fct.data.proDispo.dureeContrat_ProfessionnelR')
ms-input.col-md-6(ms-id='dureeTheorique', ms-meta='::(fichePosteCtl.fct.meta.proDispo.dureeTheorique_ProfessionnelR)', ms-value='fichePosteCtl.fct.data.proDispo.dureeTheorique_ProfessionnelR')
.row
.col-md-12
ms-select(ms-id='id_roulement', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.id)', ms-value='fichePosteCtl.fct.data.roulement.id_RoulementDateR', ms-items='fichePosteCtl.fct.data.roulement', ms-item-id='id_RoulementDateR', ms-item-display='code_RoulementDateR', ms-search-enabled='true')
//ms-select(ms-id='id_tache', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.id)', ms-value='fichePosteCtl.fct.data.ficheposte.tasks.id', ms-items='fichePosteCtl.fct.roulementTabSorted', ms-item-id='id', ms-item-display='name', ms-search-enabled='true')
// modification
div(ng-if='::fichePosteCtl.fct.msUpdating')
// si action = action_pro_reaffecter_fiche_poste | action sur une fiche de poste
.row(ng-if='!(::fichePosteCtl.fct.msPopupParams.rowItems)')
.col-md-12
//ms-input.col-md-6(ms-id='id_tache', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.id)', ms-value='fichePosteCtl.fct.data.roulement.code_RoulementDateR')
ms-input.col-md-6(ms-id='id_roulement', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.name)', ms-value='fichePosteCtl.fct.msPopupParams.item.name')
ms-input.col-md-6(ms-id='oldRessource', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.name)', ms-value='fichePosteCtl.fct.msPopupParams.parentItem.name')
// si action = action_pro_reaffecter_fiches_poste | action sur la ligne
.row(ng-if='::fichePosteCtl.fct.msPopupParams.rowItems')
.col-md-12
// il faudra utiliser les données d'un getUpdate par rapport au pro
ms-select.col-md-6(ms-id='id_roulement', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.id)', ms-value='fichePosteCtl.fct.data.roulement.id_RoulementDateR', ms-items='fichePosteCtl.fct.data.roulement', ms-item-id='id_RoulementDateR', ms-item-display='code_RoulementDateR', ms-search-enabled='true')
ms-input.col-md-6(ms-id='oldRessource', ms-meta='::(fichePosteCtl.fct.meta.ficheposte.name)', ms-value='fichePosteCtl.fct.msPopupParams.rowItems.name')
.row
.col-md-12
ms-select(ms-id='newRessource', ms-meta='::(fichePosteCtl.fct.meta.pro.id)', ms-value='fichePosteCtl.fct.data.pro.idProContrat', ms-items='fichePosteCtl.fct.data.pro', ms-item-id='idProContrat', ms-item-display='nom_VueProRessourceR', ms-search-enabled='true')
//ms-on-change='fichePosteCtl.fct.getData()')
.row
.col-md-12
ms-date-picker.col-md-6(ms-id='dateDebutTournee', ms-meta='::(fichePosteCtl.fct.meta.tournee.dateDebut_TourneeModeleR)', ms-value='fichePosteCtl.fct.data.tournee.dateDebut_TourneeModeleR')
ms-date-picker.col-md-6(ms-id='dateFinTournee', ms-meta='::(fichePosteCtl.fct.meta.tournee.dateFin_TourneeModeleR)', ms-value='fichePosteCtl.fct.data.tournee.dateFin_TourneeModeleR')
RoulementDateService.reaffecterDate(newDateDeb, newDateFin, idProContratOld, idProContratNew).then(function (result) {
if (result && (result.status === 200)) {
ToastService.success(fct.sucessLib, fct.msgLib);
fct.data.ficheposte.reaffectationDate = true;
console.log("REAFFECTATION DATE");
console.log("newDateDeb : " + newDateDeb);
console.log("newDateFin : " + newDateFin);
fct.confOnSubmit = false;
fct.closeModalWithResult();
}
});
/*C'est pas possible, pour la simple et bonne raison que tu peux déjà avoir une tournée sur la journée. IL faut donc bien récupérer toutes les données du jour pour le salarié (cf mon mail du 22/01). Virer les données du jour pour le salarié.
Remplacer par celles retournées par l'API. Réaffectation de date a date : on récupère les données du mois pour les deux salariés et on écrase, Remplacement fiche de poste ou récupère les données du jour pour les deux salariés et on écrase Affectation et désaffectation on récupére les données du jour pour le salarié et on écrase.
Cf mail du 22/01. (liste api) Le front ne doit pas s'amuser a calculer la largeur des tournées dans le gantt, ni le taux de remplissage, c'est le taf du bak. On ne gère que l'affichage.*/
// reaffectation d'une fiche
// fct.data.prodispo
code_RoulementDateR:"t526",
dateDebut:"2018-02-12",
dateFin:"2018-02-28",
dureeContrat_ProfessionnelR:null,
dureeTheorique_ProfessionnelR:null,
duree_RoulementDateR:9000,
idPro:16,
idProContrat_Old:24,
idProContrat_ProfessionnelR:17,
id_RoulementDateR:1235,
libelle_PersonneR:"SPIDER Man ",
libelle_RoulementDateR:"test4"
// result de la popup
ficheposte:Array(6)
0:{name: "Brown James ", id: 9, tasks: Array(10), idProContrat: 17}
1:{name: "BAT Man ", id: 15, tasks: Array(4), idProContrat: 23}
2:{name: "SPIDER Man ", id: 16, tasks: Array(18), idProContrat: 24}
3:{name: "WONDER Woman ", id: 25, tasks: Array(14), idProContrat: 33}
4:{name: "SUPER MAN ", id: 27, tasks: Array(9), idProContrat: 35}
5:{name: "CHAMALLOW Tagada ", id: 29, tasks: Array(35), idProContrat: 37}
ficheposteCourant:Array(1)
0:{name: "SPIDER Man ", id: 16, tasks: Array(1), idProContrat: 24}
proDispo:
code_RoulementDateR:"t526"
dateDebut:"2018-02-12"
dateFin:"2018-02-28"
dureeContrat_ProfessionnelR:null
dureeTheorique_ProfessionnelR:null
duree_RoulementDateR:9000
idPro:16
idProContrat_Old:24
idProContrat_ProfessionnelR:17
id_RoulementDateR:1235
libelle_PersonneR:"SPIDER Man "
libelle_RoulementDateR:"test4"
roulement:
code_RoulementDateR:null,
duree_RoulementDateR:null,
id_RoulementDateR:null,
libelle_RoulementDateR:null,
proContratList_RoulementDateR:Array(1)
0:{id_proContratList_ProContratR: null, idProfessionnel_professionnel_ProfessionnelR: null, libelle_professionnel_PersonneR: null}
//resultat.data.data
0:
id: 16
idProContrat: 24
name: "SPIDER Man "
tasks: Array(10)
0: {name: "t145", id: 1266, data: {…}, progress: {…}, color: "#eeaa19", …}
1: {name: "t123", id: 1206, data: {…}, progress: {…}, color: "#eeaa19", …}
2: {name: "t123", id: 1203, data: {…}, progress: {…}, color: "#eeaa19", …}
3: {name: "t526", id: 1289, data: {…}, progress: {…}, color: "#f06b19", …}
4: {name: "t145", id: 1262, data: {…}, progress: {…}, color: "#eeaa19", …}
5: {name: "t145", id: 1245, data: {…}, progress: {…}, color: "#eeaa19", …}
6: {name: "t526", id: 1229, data: {…}, progress: {…}, color: "#f06b19", …}
7: {name: "t145", id: 1201, data: {…}, progress: {…}, color: "#eeaa19", …}
8: {name: "t145", id: 1249, data: {…}, progress: {…}, color: "#eeaa19", …}
9: {name: "t526", id: 1254, data: {…}, progress: {…}, color: "#eeaa19", …}
// fct.data.roulement
0: {name: "Brown James ", id: 9, tasks: Array(10), idProContrat: 17}
1: {name: "BAT Man ", id: 15, tasks: Array(4), idProContrat: 23}
2: {name: "SPIDER Man ", id: 16, tasks: Array(19), idProContrat: 24}
3: {name: "WONDER Woman ", id: 25, tasks: Array(14), idProContrat: 33}
4: {name: "SUPER MAN ", id: 27, tasks: Array(9), idProContrat: 35}
5: {name: "CHAMALLOW Tagada ", id: 29, tasks: Array(35), idProContrat: 37}
// 6.8_PLANNING refresh tournee, loadDetails(panel)
// on rafraîchit la tournée
fct.refreshTrn(params.tournee.id);
// rafraichir plusieurs tournées
fct.refreshTrns(fct.selectedItems);
// on met à jour les détails de la tournée
params.tournee.loadDetails();