From 03ff41e33dd065f76fa11ba1f4bd806b794fd002 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Thu, 15 Mar 2012 16:24:25 -0400 Subject: [PATCH] conversion euros --- project/dae/models.py | 31 ++++++++++++++----------------- project/rh/models.py | 16 ++++++++++------ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/project/dae/models.py b/project/dae/models.py index 31fbc10..376a4fd 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -464,26 +464,23 @@ class Dossier(DossierWorkflow, rh.Dossier_): 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() diff --git a/project/rh/models.py b/project/rh/models.py index cb1776c..1d953e1 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -59,22 +59,26 @@ class DevisableMixin(object): 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] -- 1.7.10.4