fix taux
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 8 Sep 2011 15:42:54 +0000 (11:42 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 8 Sep 2011 15:42:54 +0000 (11:42 -0400)
project/dae/models.py

index 8394d2c..192cb8f 100644 (file)
@@ -213,14 +213,13 @@ class Poste(PosteWorkflow, models.Model):
         return (float)(self.salaire_min + self.indemn_expat_min + + self.indemn_fct_min +  self.charges_patronales_min + self.autre_min)
 
     def get_taux_minimum(self):
-        taux_changes = rh.TauxChange.objects.filter(devise=self.devise_min).order_by('annee')
-        for t in taux_changes:
-            if t.implantation == self.implantation:
-                return t.taux
-        if len(taux_changes) > 0:
-            return taux_changes[0].taux
+        if self.devise_min.code == 'EUR':
+          return 1
+        liste_taux = self.devise_min.tauxchange_set.order_by('-annee').filter(implantation=self.implantation)
+        if len(liste_taux) == 0:
+            raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise_min, self.implantation))
         else:
-            raise DeviseException('Taux indisponible pour la devise %s (%s)' % (self.devise_min, self.implantation))
+            return liste_taux[0].taux
 
     def get_couts_minimum_euros(self):
         return self.get_couts_minimum() * self.get_taux_minimum()
@@ -229,14 +228,13 @@ class Poste(PosteWorkflow, models.Model):
         return (float)(self.salaire_max + self.indemn_expat_max + + self.indemn_fct_max +  self.charges_patronales_max + self.autre_max)
 
     def get_taux_maximum(self):
-        taux_changes = rh.TauxChange.objects.filter(devise=self.devise_max).order_by('annee')
-        for t in taux_changes:
-            if t.implantation == self.implantation:
-                return t.taux
-        if len(taux_changes) > 0:
-            return taux_changes[0].taux
+        if self.devise_max.code == 'EUR':
+          return 1
+        liste_taux = self.devise_max.tauxchange_set.order_by('-annee').filter(implantation=self.implantation)
+        if len(liste_taux) == 0:
+            raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise_max, self.implantation))
         else:
-            raise DeviseException('Taux indisponible pour la devise %s (%s)' % (self.devise_max, self.implantation))
+            return liste_taux[0].taux
 
     def get_couts_maximum_euros(self):
         return self.get_couts_maximum() * self.get_taux_maximum()