forked from ScoDoc/ScoDoc
Assiduite : Justification présence. Fix #769
This commit is contained in:
parent
0b6c628e04
commit
6792efcc18
@ -1565,6 +1565,14 @@ function updateJustifyBtn() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fastJustify(assiduite) {
|
function fastJustify(assiduite) {
|
||||||
|
if (assiduite.etat == "PRESENT") {
|
||||||
|
openAlertModal(
|
||||||
|
"Attention",
|
||||||
|
document.createTextNode("Une présence ne peut être justifiée.")
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const period = {
|
const period = {
|
||||||
deb: new moment.tz(assiduite.date_debut, TIMEZONE),
|
deb: new moment.tz(assiduite.date_debut, TIMEZONE),
|
||||||
fin: new moment.tz(assiduite.date_fin, TIMEZONE),
|
fin: new moment.tz(assiduite.date_fin, TIMEZONE),
|
||||||
|
@ -123,17 +123,15 @@
|
|||||||
function countAssiduites(dateDeb, dateFin) {
|
function countAssiduites(dateDeb, dateFin) {
|
||||||
$.when(
|
$.when(
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=present`),
|
getAssiduitesCount(dateDeb, dateFin, `etat=present`),
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=present&est_just=v`),
|
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=retard`),
|
getAssiduitesCount(dateDeb, dateFin, `etat=retard`),
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=retard&est_just=v`),
|
getAssiduitesCount(dateDeb, dateFin, `etat=retard&est_just=v`),
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=absent`),
|
getAssiduitesCount(dateDeb, dateFin, `etat=absent`),
|
||||||
getAssiduitesCount(dateDeb, dateFin, `etat=absent&est_just=v`),
|
getAssiduitesCount(dateDeb, dateFin, `etat=absent&est_just=v`),
|
||||||
).then(
|
).then(
|
||||||
(pt, pj, rt, rj, at, aj) => {
|
(pt, rt, rj, at, aj) => {
|
||||||
const counter = {
|
const counter = {
|
||||||
"present": {
|
"present": {
|
||||||
"total": pt[0],
|
"total": pt[0],
|
||||||
"justi": pj[0],
|
|
||||||
},
|
},
|
||||||
"retard": {
|
"retard": {
|
||||||
"total": rt[0],
|
"total": rt[0],
|
||||||
@ -155,14 +153,19 @@
|
|||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.classList.add('stats-values-part');
|
div.classList.add('stats-values-part');
|
||||||
|
|
||||||
|
const withJusti = (key, metric) => {
|
||||||
|
if (key == "present") return "";
|
||||||
|
return ` dont ${counter[key].justi[metric]} justifiées`
|
||||||
|
}
|
||||||
|
|
||||||
const heure = document.createElement('span');
|
const heure = document.createElement('span');
|
||||||
heure.textContent = `${counter[key].total.heure} heure(s) dont ${counter[key].justi.heure} justifiées`;
|
heure.textContent = `${counter[key].total.heure} heure(s)${withJusti(key, "heure")}`;
|
||||||
|
|
||||||
const demi = document.createElement('span');
|
const demi = document.createElement('span');
|
||||||
demi.textContent = `${counter[key].total.demi} demi-journée(s) dont ${counter[key].justi.demi} justifiées`;
|
demi.textContent = `${counter[key].total.demi} demi-journée(s)${withJusti(key, "demi")}`;
|
||||||
|
|
||||||
const jour = document.createElement('span');
|
const jour = document.createElement('span');
|
||||||
jour.textContent = `${counter[key].total.journee} journée(s) dont ${counter[key].justi.journee} justifiées`;
|
jour.textContent = `${counter[key].total.journee} journée(s)${withJusti(key, "journee")}`;
|
||||||
|
|
||||||
div.append(jour, demi, heure);
|
div.append(jour, demi, heure);
|
||||||
|
|
||||||
|
@ -341,18 +341,19 @@
|
|||||||
|
|
||||||
const li = document.createElement('li')
|
const li = document.createElement('li')
|
||||||
li.textContent = "Justifier"
|
li.textContent = "Justifier"
|
||||||
|
let obj_id = selectedRow.getAttribute('obj_id');
|
||||||
|
let assi = Object.values(assiduites).flat().filter((a) => { return a.assiduite_id == obj_id })[0]
|
||||||
li.addEventListener('click', () => {
|
li.addEventListener('click', () => {
|
||||||
let obj_id = selectedRow.getAttribute('obj_id');
|
|
||||||
assiduite = Object.values(assiduites).flat().filter((a) => { return a.assiduite_id == obj_id })
|
|
||||||
if (assiduite && !assiduite[0].est_just && assiduite[0].etat != "PRESENT") {
|
if (assiduite && !assiduite[0].est_just && assiduite[0].etat != "PRESENT") {
|
||||||
fastJustify(assiduite[0])
|
fastJustify(assiduite[0])
|
||||||
} else {
|
} else {
|
||||||
openAlertModal("Erreur", document.createTextNode("L'assiduité est déjà justifiée ou ne peut pas l'être."))
|
openAlertModal("Erreur", document.createTextNode("L'assiduité est déjà justifiée."))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (assi && assi.etat != "PRESENT") {
|
||||||
contextMenu.appendChild(li)
|
contextMenu.appendChild(li);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user