merge dev
[auf_rh_dae.git] / project / dae / models.py
index e2a912e..aeba9f7 100644 (file)
@@ -133,8 +133,9 @@ class Poste(PosteWorkflow, models.Model):
     # Méta
     date_creation = models.DateTimeField(auto_now_add=True)
     date_modification = models.DateTimeField(auto_now=True)
-    date_debut = models.DateField(verbose_name=u"Date de début",
-                                    help_text=HELP_TEXT_DATE)
+    date_debut = models.DateField(verbose_name="Date de début",
+                                    help_text=HELP_TEXT_DATE,
+                                    null=True, blank=True)
     date_fin = models.DateField(null=True, blank=True,
                                     verbose_name=u"Date de fin",
                                     help_text=HELP_TEXT_DATE)
@@ -379,10 +380,21 @@ class PostePiece(models.Model):
 class PosteComparaison(models.Model):
     poste = models.ForeignKey('Poste', related_name='comparaisons_internes')
     implantation = models.ForeignKey(ref.Implantation, null=True, blank=True, related_name="+")
-    nom = models.CharField(verbose_name=u"Poste", max_length=255, null=True, blank=True)
+    statut = models.ForeignKey(rh.Statut, related_name='+', verbose_name='Statut', null=True, blank=True, )
+    classement = models.ForeignKey(rh.Classement, related_name='+', verbose_name='Classement', null=True, blank=True, )
+    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
@@ -439,6 +451,7 @@ class Dossier(DossierWorkflow, models.Model):
         blank=True,)
 
     # Données antérieures de l'employé
+    # la devise??
     statut_anterieur = models.ForeignKey(
             rh.Statut, related_name='+', null=True, blank=True,
             verbose_name=u'Statut antérieur')
@@ -644,12 +657,24 @@ class DossierComparaison(models.Model):
     Photo d'une comparaison salariale au moment de l'embauche.
     """
     dossier = models.ForeignKey('Dossier', related_name='comparaisons')
+    statut = models.ForeignKey(rh.Statut, related_name='+', verbose_name='Statut', null=True, blank=True, )
+    classement = models.ForeignKey(rh.Classement, related_name='+', verbose_name='Classement', null=True, blank=True, )
     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)
-    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