#2783
[auf_rh_dae.git] / project / rh / models.py
index 97e4250..612a2ac 100644 (file)
@@ -14,7 +14,9 @@ from auf.django.metadata.managers import NoDeleteManager
 import auf.django.references.models as ref
 from validators import validate_date_passee
 from managers import PosteManager, DossierManager, DossierComparaisonManager, \
-PosteComparaisonManager, DeviseManager, ServiceManager, TypeRemunerationManager
+    PosteComparaisonManager, DeviseManager, ServiceManager, TypeRemunerationManager
+from change_list import RechercheTemporelle, KEY_STATUT, STATUT_ACTIF, \
+    STATUT_INACTIF, STATUT_FUTUR
 
 
 # Gruick hack pour déterminer d'ou provient l'instanciation d'une classe pour l'héritage.
@@ -426,25 +428,22 @@ class Employe(AUFMetadata):
         return reverse('rh_photo', kwargs={'id':self.id})
 
     def dossiers_passes(self):
-        today = date.today()
-        dossiers_passes = self.dossiers.filter(date_fin__lt=today).order_by('-date_fin')
-        for d in dossiers_passes:
-            d.archive = True
-        return dossiers_passes
+        params = {KEY_STATUT: STATUT_INACTIF, }
+        search = RechercheTemporelle(params, self.__class__)
+        search.purge_params(params)
+        return search.filter_temporel(self.rh_dossiers)
 
     def dossiers_futurs(self):
-        today = date.today()
-        return self.dossiers.filter(date_debut__gt=today).order_by('-date_fin')
+        params = {KEY_STATUT: STATUT_FUTUR, }
+        search = RechercheTemporelle(params, self.__class__)
+        search.purge_params(params)
+        return search.filter_temporel(self.rh_dossiers)
 
     def dossiers_encours(self):
-        dossiers_p_f = self.dossiers_passes() | self.dossiers_futurs()
-        ids_dossiers_p_f = [d.id for d in dossiers_p_f]
-        dossiers_encours = self.dossiers.exclude(id__in=ids_dossiers_p_f).order_by('-date_fin')
-
-        # TODO : supprimer ce code quand related_name fonctionnera ou d.remuneration_set
-        for d in dossiers_encours:
-            d.remunerations = Remuneration.objects.filter(dossier=d.id).order_by('-id')
-        return dossiers_encours
+        params = {KEY_STATUT: STATUT_ACTIF, }
+        search = RechercheTemporelle(params, self.__class__)
+        search.purge_params(params)
+        return search.filter_temporel(self.rh_dossiers)
 
     def postes_encours(self):
         postes_encours = set()
@@ -679,6 +678,8 @@ class Dossier(Dossier_):
                             help_text=u"Taper le nom de l'employé",
                             related_name='%(app_label)s_dossiers',
                             verbose_name=u"Employé")
+    principal = models.BooleanField(verbose_name=u"Principal?", default=True,
+            help_text=u"Ce Dossier est pour le principal Poste occupé par l'Employé")
 
 
 class DossierPiece_(models.Model):
@@ -726,7 +727,7 @@ class DossierComparaison_(models.Model, DevisableMixin):
         abstract = True
 
     def get_annee_pour_taux_devise(self):
-        return self.dossier.contrat_date_debut.year
+        return self.dossier.date_debut.year
 
 
 class DossierComparaison(DossierComparaison_):