Merge branch 'master' into dev
[auf_rh_dae.git] / project / dae / models.py
index a7b4cd2..a7eab96 100644 (file)
@@ -44,6 +44,9 @@ POSTE_ACTION = (
 )
 
 
+class DeviseException(Exception):
+  silent_variable_failure = True
+
 
 class Poste(PosteWorkflow, models.Model):
 
@@ -217,7 +220,7 @@ class Poste(PosteWorkflow, models.Model):
         if len(taux_changes) > 0:
             return taux_changes[0].taux
         else:
-            raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_min, self.implantation))
+            raise DeviseException('Taux indisponible pour la devise %s (%s)' % (self.devise_min, self.implantation))
 
     def get_couts_minimum_euros(self):
         return self.get_couts_minimum() * self.get_taux_minimum()
@@ -233,7 +236,7 @@ class Poste(PosteWorkflow, models.Model):
         if len(taux_changes) > 0:
             return taux_changes[0].taux
         else:
-            raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_max, self.implantation))
+            raise DeviseException('Taux indisponible pour la devise %s (%s)' % (self.devise_max, self.implantation))
 
     def get_couts_maximum_euros(self):
         return self.get_couts_maximum() * self.get_taux_maximum()
@@ -387,9 +390,11 @@ class PosteComparaison(models.Model):
     devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
 
     def taux_devise(self):
+        if self.devise.code == 'EUR':
+          return 1
         liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.implantation)
         if len(liste_taux) == 0:
-            raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.implantation))
+            raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.implantation))
         else:
             return liste_taux[0].taux
 
@@ -666,9 +671,11 @@ class DossierComparaison(models.Model):
     devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
 
     def taux_devise(self):
+        if self.devise.code == 'EUR':
+          return 1
         liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)
         if len(liste_taux) == 0:
-            raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
+            raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
         else:
             return liste_taux[0].taux
 
@@ -698,9 +705,11 @@ class Remuneration(models.Model):
         return round(self.montant / 12, 2)
 
     def taux_devise(self):
+        if self.devise.code == 'EUR':
+          return 1
         liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)
         if len(liste_taux) == 0:
-            raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
+            raise DeviseException(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
         else:
             return liste_taux[0].taux