fix infos manqunates
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 9 May 2011 17:12:42 +0000 (13:12 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 9 May 2011 17:12:42 +0000 (13:12 -0400)
project/dae/views.py
project/rh_v1/models.py

index 0cc893d..5230b65 100644 (file)
@@ -556,7 +556,11 @@ def dossier_resume(request, dossier_id=None):
     data['implantation'] = dossier.implantation1.id
     data['poste'] = u"%s %s" % (dossier.poste1.type_poste.nom, dossier.complement1)
     data['montant'] = dossier.get_salaire()
-    data['devise'] = dossier.get_dernier_salaire_remun().devise.id
-    data['montant_euros'] = dossier.get_dernier_salaire_remun().en_euros()
-
+    salaire = dossier.get_dernier_salaire_remun()
+    if salaire is not None:
+        data['devise'] = dossier.get_dernier_salaire_remun().devise.id
+        data['montant_euros'] = dossier.get_dernier_salaire_remun().en_euros()
+    else:
+        data['devise'] = None
+        data['montant_euros'] = 0
     return HttpResponse(dumps(data))
index 43d4228..3852093 100644 (file)
@@ -157,7 +157,11 @@ class Dossier(models.Model):
         toutes les rémuérations n'ont pas de devise associées, c'est pourquoi on récupère
         les anciennes rémunérations pour rechercher si elle existait auparavant.
         """
-        return "%s %s" % (self.get_salaire(), self.dernier_salaire_remun().devise.code, )
+        if self.dernier_salaire_remun() is not None:
+            devise_code = self.dernier_salaire_remun().devise.code
+        else:
+            devise_code = '???'
+        return "%s %s" % (self.get_salaire(), devise_code, )
 
     def get_salaire_euro_display(self):
         """
@@ -220,11 +224,22 @@ class Remuneration(models.Model):
         return "%s %s (%s EUR - %s)" % (self.montant, devise, self.en_euros(), self.get_taux_historique(), )
 
     def get_taux_historique(self):
-        tauxchange = TauxChange.objects.filter(devise=self.devise, annee=self.date_creation.year)[0]
-        return tauxchange
+        """
+        Retourne le taux en vigueur durant l'année considérée. Un taux de 0 est crée, si le taux de change
+        n'existe pas.
+        """
+        taux = TauxChange.objects.filter(devise=self.devise, annee=self.date_creation.year)
+        if len(taux) > 0:
+            return taux[0]
+        else:   
+            return None
 
     def en_euros(self):
-        return int(self.montant * self.get_taux_historique().taux)
+        tauxchange = self.get_taux_historique()
+        if tauxchange is not None:
+            return int(self.montant * tauxchange.taux)
+        else:
+            return 0
 
 class FamilleEmploi(models.Model):
     # Identification
@@ -403,7 +418,7 @@ class Classement(models.Model):
 class TauxChange(models.Model):
     # Identification
     id = models.IntegerField(primary_key=True)
-    devise = models.ForeignKey('Devise', to_field='code', db_column='devise')
+    devise = models.ForeignKey('Devise', to_field='id', db_column='devise')
     annee = models.IntegerField()
     taux = models.FloatField()
     # Relations