#1894 conversion euros
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 8 Aug 2011 19:28:18 +0000 (15:28 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 8 Aug 2011 19:28:18 +0000 (15:28 -0400)
project/dae/models.py
project/dae/templates/dae/embauche_consulter.html
project/dae/templates/dae/poste.html
project/dae/templates/dae/poste_resume.html
project/rh/models.py

index cfd5b08..5ceb68a 100644 (file)
@@ -382,7 +382,16 @@ class PosteComparaison(models.Model):
     nom = models.CharField(verbose_name="Poste", max_length=255, null=True, blank=True)
     montant = models.IntegerField(null=True)
     devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
-    montant_euros = models.IntegerField(null=True)
+
+    def taux_devise(self):
+        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))
+        else:
+            return liste_taux[0].taux
+
+    def montant_euros(self):
+        return round(float(self.montant) * float(self.taux_devise()), 2)
 
 
 ### EMPLOYÉ/PERSONNE
@@ -649,7 +658,17 @@ class DossierComparaison(models.Model):
     personne = models.CharField(max_length=255, null=True, blank=True)
     montant = models.IntegerField(null=True)
     devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
-    montant_euros = models.IntegerField(null=True)
+
+    def taux_devise(self):
+        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))
+        else:
+            return liste_taux[0].taux
+
+    def montant_euros(self):
+        return round(float(self.montant) * float(self.taux_devise()), 2)
+
 
 
 ### RÉMUNÉRATION
index 6fc81c8..b7bada9 100644 (file)
@@ -64,8 +64,8 @@
           <td>{{ dc.implantation }}</td>
           <td>{{ dc.personne }}</td>
           <td>{{ dc.poste }}</td>
-          <td>{{ dc.montant }} {{ dc.devise }}</td>
-          <td>{{ dc.montant_euros }} EUR</td>
+          <td>{{ dc.montant|floatformat:0 }} {{ dc.devise }}</td>
+          <td>{{ dc.montant_euros|floatformat:0 }} EUR</td>
       </tr>
       {% endfor %}
   </tbody>
index 789d173..c0997e3 100644 (file)
@@ -301,7 +301,7 @@ Demande d'autorisation d'embauche
         <tr class="comparaison-interne"><td colspan=2>Rechercher un poste : {{ f.recherche }}</td></tr>
         <tr><th>{{ f.implantation.label }}</th><td>{{ f.implantation.errors }} {{ f.implantation }}</td></tr>
         <tr><th>{{ f.nom.label }}</th><td>{{ f.nom.errors }} {{ f.nom }}</td></tr>
-        <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }} ({{ f.montant_euros.errors }} {{ f.montant_euros }} EUR)</td></tr>
+        <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }}</td></tr>
         </table>
     {% endfor %}
     </fieldset>
index c38cad3..b31bba8 100644 (file)
     <tr>
         <td>{{ poste_connexe.nom }}</td>
         <td>{{ poste_connexe.implantation }}</td>
-        <td>{{ poste_connexe.montant }} {{ poste_connexe.devise.code }}</td>
-        <td>{{ poste_connexe.montant_euros }} €</td>
+        <td>{{ poste_connexe.montant|floatformat:0 }} {{ poste_connexe.devise.code }}</td>
+        <td>{{ poste_connexe.montant_euros|floatformat:0 }} €</td>
     </tr>
     {% endfor %}
     </tbody>
index e991319..d9db821 100644 (file)
@@ -264,7 +264,16 @@ class PosteComparaison(models.Model):
     nom = models.CharField(verbose_name="Poste", max_length=255, null=True, blank=True)
     montant = models.IntegerField(null=True)
     devise = models.ForeignKey("Devise", default=5, related_name='+', null=True, blank=True)
-    montant_euros = models.IntegerField(null=True)
+
+    def taux_devise(self):
+        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))
+        else:
+            return liste_taux[0].taux
+
+    def montant_euros(self):
+        return round(float(self.montant) * float(self.taux_devise()), 2)
 
 
 class PosteCommentaire(Commentaire):
@@ -528,6 +537,27 @@ class DossierCommentaire(Commentaire):
     dossier = models.ForeignKey('Dossier', db_column='dossier', 
                             related_name='+')
 
+class DossierComparaison(models.Model):
+    """
+    Photo d'une comparaison salariale au moment de l'embauche.
+    """
+    dossier = models.ForeignKey('Dossier', related_name='comparaisons')
+    implantation = models.ForeignKey(ref.Implantation, null=True, blank=True)
+    poste = models.CharField(max_length=255, null=True, blank=True)
+    personne = models.CharField(max_length=255, null=True, blank=True)
+    montant = models.IntegerField(null=True)
+    devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
+
+    def taux_devise(self):
+        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))
+        else:
+            return liste_taux[0].taux
+
+    def montant_euros(self):
+        return round(float(self.montant) * float(self.taux_devise()), 2)
+
 
 ### RÉMUNÉRATION