Merge branch 'masse-salariale' into dev
[auf_rh_dae.git] / project / rh / models.py
index e82c5c1..dbc68d0 100644 (file)
@@ -547,6 +547,16 @@ class Employe(AUFMetadata):
         q = search.get_q_temporel(self.rh_dossiers)
         return self.rh_dossiers.filter(q)
 
+    def dossier_principal(self):
+        """Retourne le dossier principal 
+        (ou le plus ancien si il y en a plusieurs)
+        """
+        try:
+            dossier = self.rh_dossiers.filter(principal=True).order_by('date_debut')[0]
+        except IndexError, Dossier.DoesNotExist:
+            dossier = None
+        return dossier
+
     def postes_encours(self):
         postes_encours = set()
         for d in self.dossiers_encours():
@@ -559,6 +569,7 @@ class Employe(AUFMetadata):
         Idée derrière :
         si on ajout d'autre Dossiers, c'est pour des Postes secondaires.
         """
+        # DEPRECATED : on a maintenant Dossier.principal
         poste = Poste.objects.none()
         try:
             poste = self.dossiers_encours().order_by('date_debut')[0].poste
@@ -950,6 +961,22 @@ class Dossier_(AUFMetadata, DevisableMixin):
             total += r.montant_euros()
         return total
 
+    def premier_contrat(self):
+        """contrat avec plus petite date de début"""
+        try:
+            contrat = self.rh_contrats.exclude(date_debut=None).order_by('date_debut')[0]
+        except IndexError, Contrat.DoesNotExist:
+            contrat = None
+        return contrat
+        
+    def dernier_contrat(self):
+        """contrat avec plus grande date de fin"""
+        try:
+            contrat = self.rh_contrats.exclude(date_debut=None).order_by('-date_debut')[0]
+        except IndexError, Contrat.DoesNotExist:
+            contrat = None
+        return contrat
+
     def actif(self):
         today = date.today()
         return (self.date_debut is None or self.date_debut <= today) \