BUG dans la grille des consommations

Plus d'informations
il y a 6 ans 8 mois - il y a 6 ans 8 mois #19327 par Tokashi
Lors de la saisie d'une absence justifiée :

## 20/03/2018 22:24:34 | 1.2.2.8 | wxPython 3.0.1.0 msw (classic) | win32 Windows 10 AMD64 ##
Traceback (most recent call last):
File "Ctrl\CTRL_Grille.pyc", line 2193, in OnLeftClick
File "Ctrl\CTRL_Grille_cases.pyc", line 1131, in OnClick
File "Ctrl\CTRL_Grille_cases.pyc", line 1607, in ModifieEtat
File "Ctrl\CTRL_Grille_cases.pyc", line 429, in MAJ_facturation
File "Ctrl\CTRL_Grille.pyc", line 2689, in Facturation
File "Ctrl\CTRL_Grille.pyc", line 4019, in CalculeTarif
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'

Toutefois en validant l'absence est bien prise en compte mais impossible de recalculer les prestations (la même erreur réapparait).

Même problème lors de la saisie en attente ou en refus.
Dernière édition: il y a 6 ans 8 mois par Tokashi.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19389 par Tokashi
Bonjour.

Je viens de faire quelques recherches et le problème vient de mon fichier de configuration. Il me reste à comprendre ce qui peut poser problème.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19391 par Tokashi
Ça sent quand même le bug.
Noethys a du mal à digérer mon paramétrage.
Je continue mon enquête ce soir. Ca tourne soit autour du delta temps soit du QF que je n'utilise pas.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19396 par Tokashi
Ce qui pose problème : heure_fin_delta et heure_debut_delta ont pour valeur none

(4030) # Recherche des heures debut et fin des unités cochées
duree, heure_debut_delta, heure_fin_delta = self.CalculeDuree(IDindividu, date, combinaisons_unites)
duree_delta = heure_fin_delta - heure_debut_delta



Car si l'état est autre que "réservation, présent ou absent injustifié" alors duree, heure_min, heure max sont tous none

(3373) def CalculeDuree(self, IDindividu=None, datePrestation=None, combinaisons_unites=[]):
""" Pour Facturation """

liste_temps = []
heure_min = None
heure_max = None
for IDunite, listeConso in self.dictConsoIndividus[IDindividu][datePrestation].iteritems() :
if IDunite in combinaisons_unites :
for conso in listeConso :
if conso.statut != "suppression" and conso.etat in ("reservation", "present", "absenti") :
heure_debut = conso.heure_debut
heure_fin = conso.heure_fin
if heure_debut not in (None, "") and heure_fin not in (None, "") :
liste_temps.append((heure_debut, heure_fin))
if heure_min == None or HeureStrEnDelta(heure_debut) < heure_min :
heure_min = HeureStrEnDelta(heure_debut)
if heure_max == None or HeureStrEnDelta(heure_fin) > heure_max :
heure_max = HeureStrEnDelta(heure_fin)
if len(liste_temps) > 0 :
duree = Additionne_intervalles_temps(liste_temps)
else :
duree = None
return duree, heure_min, heure_max

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19397 par Tokashi
Ça y est j'ai trouvé la source du problème.

Dans le paramétrage de l'activité -> Tarification -> dans les paramètres d'un tarif -> Type de tarif -> Après avoir choisi une unité ou une combinaison -> cochez les états conditionnels

Et c'est là que ça se passe !!! Si on ne coche que réservation, présence, ou injustifié alors il n'y aura pas de problème dans la grille des conso. Par contre si on coche tout alors patatra il va y avoir des pop-up de plantage python.

Le problème vient certainement de la fonction CalculeDuree dans CTRL_Grille (cité ci-dessus).

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19436 par Ivan
Réponse de Ivan sur le sujet BUG dans la grille des consommations
Bonjour,

Merci pour le débogage. Le correctif sera dans la prochaine version.

Bon week-end,

Ivan

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 7 mois #19443 par Tokashi
De rien.

Pour le coup je n'avais pas l'utilité de cocher toutes les cases. Seulement "réservation, présence et absence injustifiée". Comme la plupart des structures je pense. Mais je n'avais pas compris leur fonctionnement. De mémoire, elles ne sont pas expliquées dans le manuel.
Maintenant j'ai compris leur fonctionnement mais il serait utile de le rajouter.

Bon week-end également.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.516 secondes
Propulsé par Kunena