return True
def get_salaire_anterieur_euros(self):
- if self.devise_anterieur.code == 'EUR':
- tx = 1
- else:
- liste_taux = self.devise_anterieur.tauxchange_set.order_by('-annee')
- if len(liste_taux) == 0:
- raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise_anterieur, self.poste.implantation))
- tx = liste_taux[0].taux
- return (float)(tx) * (float)(self.salaire_anterieur)
+ try:
+ taux = self.taux_devise(self.devise_anterieur)
+ except Exception, e:
+ return e
+ if not taux:
+ return None
+ return int(round(float(self.salaire_anterieur) * float(taux), 2))
+
def get_salaire_titulaire_anterieur_euros(self):
- if self.devise_titulaire_anterieur is None:
+ try:
+ taux = self.taux_devise(self.devise_anterieur)
+ except Exception, e:
+ return e
+ if not taux:
return None
- if self.devise_titulaire_anterieur.code == 'EUR':
- tx = 1
- else:
- liste_taux = self.devise_titulaire_anterieur.tauxchange_set.order_by('-annee')
- if len(liste_taux) == 0:
- raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise_titulaire_anterieur, self.poste.implantation))
- tx = liste_taux[0].taux
- return (float)(tx) * (float)(self.salaire_titulaire_anterieur)
+ return int(round(float(self.salaire_titulaire_anterieur) * float(taux), 2))
def get_salaire_euros(self):
tx = self.taux_devise()
def get_annee_pour_taux_devise(self):
return datetime.datetime.now().year
- def taux_devise(self):
- if self.devise is None:
+
+ def taux_devise(self, devise=None):
+ if devise is None:
+ devise = self.devise
+
+ if devise is None:
return None
- if self.devise.code == "EUR":
+ if devise.code == "EUR":
return 1
annee = self.get_annee_pour_taux_devise()
- taux = [tc.taux for tc in TauxChange.objects.filter(devise=self.devise, annee=annee)]
+ taux = [tc.taux for tc in TauxChange.objects.filter(devise=devise, annee=annee)]
taux = set(taux)
if len(taux) == 0:
- raise Exception(u"Pas de taux pour %s en %s" % (self.devise.code, annee))
+ raise Exception(u"Pas de taux pour %s en %s" % (devise.code, annee))
if len(taux) > 1:
raise Exception(u"Il existe plusieurs taux de %s en %s" %
- (self.devise.code, annee))
+ (devise.code, annee))
else:
return list(taux)[0]