Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CET : Erreur dans le calcul en cas d'annulation #1000

Closed
ctmareil opened this issue Sep 21, 2023 · 13 comments · Fixed by #1001
Closed

CET : Erreur dans le calcul en cas d'annulation #1000

ctmareil opened this issue Sep 21, 2023 · 13 comments · Fixed by #1001

Comments

@ctmareil
Copy link
Collaborator

En version 1.45.1
avec dans le fichier parameters
cycle_duration: '28 days'
cycle_type: null
new_users_start_as_beginner: false
use_card_reader_to_validate_shifts: false
use_time_log_saving: true

l'annulation d'un créneau supplémentaire (i.e. qui a incrémenté le CET) est erronée :

Deux onglets dans le fichier joint

  1. Situations #1610 au 20/09/2023

  2. #1610 Les messages copiés

  3. Situations #1610 au 20/09/2023 : cet onglet est un copier/colller du contenu du compteur temps à chaque étape (vue ROLE_USER).
    4 étapes : initialisation du compte (compteur temps à zéro) ; réservation d’un 1er créneau ; réservation d’un 2e créneau ; libération du 2e créneau

L’ajout d’un 2e créneau génère 3 écritures sur le compteur temps.
La libération du 2e créneau ne provoque que l’annulation de 2 écritures sur 3.
Le résultat du compteur devient aberrant, car l’écriture_2 n’a pas été annulée en même temps que écriture_1 et écriture_3

  1. #1610 Les messages copiés : cet onglet trace des copies de tous les écrans vue ROLE_USER.
    Les actions des 4 étapes sont délimitées.
    Les mouvements du compteur temps sont bien lisibles.
    Cela permet aussi de voir que l’affichage des créneaux n’est pas dans le bon cycle.

POPv1.45.1 Pb CET.xlsx

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

Salut Christophe, j'ai regardé ton doc, si je te suis bien :

  • tu as inscrit le membre #1610 a un créneau (le 21/09), puis un deuxième (le 27/09)
  • tu as ensuite libéré le créneau du 27/09
  • ca aurait dû supprimé 3 lignes au lieu de 2

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

d'après le code - TimeLogEventListener > onShiftFreed > deleteShiftLogs - ca aurait dû supprimer tous les logs rattachés au créneau en question. Mais en effet dans ton document, la ligne "Régulation du bénévolat facultatif" ne contient pas l'information du créneau, et a donc été ignoré 🤔 ⚠️

En gros on a pas pris en compte ce cas de figure : use_card_reader_to_validate_shifts: false + use_time_log_saving: true

@ctmareil
Copy link
Collaborator Author

Tu me suis bien

  • inscrit le membre #1610 a un créneau (le 21/09), puis un deuxième (le 27/09)
  • ensuite libéré le créneau du 27/09

Et le calcul est faux
En final, le membre aurait du avoir
Total temps : 3 h
Total cycle en cours : 3h
Total CET : 0

Et il semble effectivement qu'il y a des écritures qui ne sont pas faites.

Je me pose d'ailleurs la question de savoir pourquoi vous supprimer des lignes / écritures. Vous pourriez passer des écritures en négatifs, cela serait plus clair pour tous .

@ctmareil
Copy link
Collaborator Author

Dis moi si tu veux te connecter à notre système....

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

Il me semble que l'on passe par des suppressions car le créneau est dans le futur.

Il faut que je regarde ce qu'il se passe si le créneau avait eu lieu dans le passé. Il me semble que dans ce cas là il n'y a plus l'option de libérer dans l'interface ?

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

Avant que je me lance dans une correction, il faudrait aussi s'assurer que ca marche dans un cas différent :

  • 1e créneau inscrit de 1h30
  • 2e créneau inscrit de 3h / du coup seulement 1h30 est mis sur le compteur épargne
  • libération du 2e créneau : il faut que ca revienne bien à 1h30, pas 3h

En effet la solution pourrait être de ne plus supprimer, mais de faire des écritures négatives 🤔
(on le fait déjà ailleurs)

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

J'ai retrouvé la doc que j'avais fait pour le compteur temps : https://github.com/elefan-grenoble/gestion-compte/wiki/Compteur-temps

Pour les coop avec use_card_reader_to_validate_shifts: false, une solution serait d'incrémenter dans le compteur épargne seulement à la fin du cycle. C'est déjà le cas (on vérifie si il y a surplus, et on fait la bascule). Et dans ce cas en cours de cycle on laisserait le compteur temps grossir, au lieu de faire des A/R avec le compteur épargne.

@ctmareil
Copy link
Collaborator Author

ctmareil commented Sep 21, 2023

Ca me semble une très bonne idée. Elle est surtout compréhensible par les membres
Je pense que cela fonctionne également pour les coop qui valident les compteurs avec le scan, non ?
Et si ma suggestion de faire des écritures négatives est possible et facile à mettre en œuvre, je suis preneur !
(Notre groupe support passe une bonne partie de son temps à expliquer aux membres pourquoi ils sont négatifs alors qu'ils pensent être à jour, etc...)

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

Il va quand même y avoir une question au moment de la fin du cycle, pour les créneaux qui auront été ajoutés pour le cycle suivant. Vu que vous ne validez pas la présence, le créneau est validé dès l'inscription. Il faudrait voir si il est pris en compte dans le cycle courant, ou le cycle suivant.

@ctmareil
Copy link
Collaborator Author

La bonne logique voudrait que ce type de créneaux ne soient validé que dans la régularisation de "leur cycle", i.e.: lors du cycle suivant

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

En effet c'est bien pris en compte je viens de vérifier, les log de temps sont définis par rapport à la date effective du créneau

Et pour le calcul à la fin de cycle, il y a une PR d'ouverte où c'est un sujet à corriger / vérifier : #990

@raphodn
Copy link
Member

raphodn commented Sep 21, 2023

Et tu voudrais qu'il se passe quoi si le créneau est dans le passé et est libéré ? Sur l'interface le wording change à "Supprimer la participation". Peut-être que dans ce cas là on peut faire une écriture négative ? (mais c'est un autre sujet / issue je dirais).

@raphodn
Copy link
Member

raphodn commented Sep 22, 2023

j'ai fait une release qui contient le correctif : https://github.com/elefan-grenoble/gestion-compte/releases/tag/v1.45.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants