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) {
|
||||
if (assiduite.etat == "PRESENT") {
|
||||
openAlertModal(
|
||||
"Attention",
|
||||
document.createTextNode("Une présence ne peut être justifiée.")
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const period = {
|
||||
deb: new moment.tz(assiduite.date_debut, TIMEZONE),
|
||||
fin: new moment.tz(assiduite.date_fin, TIMEZONE),
|
||||
|
@ -123,17 +123,15 @@
|
||||
function countAssiduites(dateDeb, dateFin) {
|
||||
$.when(
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=present`),
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=present&est_just=v`),
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=retard`),
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=retard&est_just=v`),
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=absent`),
|
||||
getAssiduitesCount(dateDeb, dateFin, `etat=absent&est_just=v`),
|
||||
).then(
|
||||
(pt, pj, rt, rj, at, aj) => {
|
||||
(pt, rt, rj, at, aj) => {
|
||||
const counter = {
|
||||
"present": {
|
||||
"total": pt[0],
|
||||
"justi": pj[0],
|
||||
},
|
||||
"retard": {
|
||||
"total": rt[0],
|
||||
@ -155,14 +153,19 @@
|
||||
const div = document.createElement('div');
|
||||
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');
|
||||
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');
|
||||
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');
|
||||
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);
|
||||
|
||||
|
@ -341,18 +341,19 @@
|
||||
|
||||
const li = document.createElement('li')
|
||||
li.textContent = "Justifier"
|
||||
|
||||
li.addEventListener('click', () => {
|
||||
let obj_id = selectedRow.getAttribute('obj_id');
|
||||
assiduite = Object.values(assiduites).flat().filter((a) => { return a.assiduite_id == obj_id })
|
||||
let assi = Object.values(assiduites).flat().filter((a) => { return a.assiduite_id == obj_id })[0]
|
||||
li.addEventListener('click', () => {
|
||||
|
||||
if (assiduite && !assiduite[0].est_just && assiduite[0].etat != "PRESENT") {
|
||||
fastJustify(assiduite[0])
|
||||
} 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."))
|
||||
}
|
||||
})
|
||||
|
||||
contextMenu.appendChild(li)
|
||||
if (assi && assi.etat != "PRESENT") {
|
||||
contextMenu.appendChild(li);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user