profil : ajout champs remun
[auf_rh_dae.git] / project / rh / models.py
index 59196a2..18d2b48 100644 (file)
@@ -366,7 +366,10 @@ class Employe(AUFMetadata):
                
     def dossiers_passes(self):
         today = date.today()
-        return self.dossiers.filter(date_fin__lt=today).order_by('-date_fin')
+        dossiers_passes = self.dossiers.filter(date_fin__lt=today).order_by('-date_fin')
+        for d in dossiers_passes:
+            d.archive = True
+        return dossiers_passes
         
     def dossiers_futurs(self):
         today = date.today()
@@ -375,7 +378,12 @@ class Employe(AUFMetadata):
     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]
-        return self.dossiers.exclude(id__in=ids_dossiers_p_f).order_by('-date_fin')
+        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
         
     def postes_encours(self):
         postes_encours = set()
@@ -384,7 +392,17 @@ class Employe(AUFMetadata):
         return postes_encours
         
     def poste_principal(self):
-        return self.dossiers_encours()[0].poste
+        """
+        Retourne le Poste du premier Dossier créé parmi les Dossiers en cours.
+        Idée derrière : 
+        si on ajout d'autre Dossiers, c'est pour des Postes secondaires.
+        """
+        poste = Poste.objects.none()
+        try:
+            poste = self.dossiers_encours().order_by('date_debut')[0].poste
+        except:
+            pass
+        return poste
 
 class EmployePiece(models.Model):
     """Documents relatifs à un employé.
@@ -539,6 +557,16 @@ class Dossier_(AUFMetadata):
         verbose_name = "Dossier"
         verbose_name_plural = "Dossiers"
         
+    def salaire_theorique(self):
+        annee = date.today().year
+        coeff = self.classement.coefficient
+        implantation = self.poste.implantation
+        point = ValeurPoint.objects.get(implantation=implantation, annee=annee)
+        
+        montant = coeff * point.valeur
+        devise = point.devise
+        return {'montant':montant, 'devise':devise}
+        
     def __unicode__(self):
         poste = self.poste.nom
         if self.employe.genre == 'F':
@@ -681,7 +709,7 @@ class Contrat(AUFMetadata):
     objects = ContratManager()
 
     dossier = models.ForeignKey('Dossier', db_column='dossier', 
-                            related_name='+')
+                            related_name='contrats')
     type_contrat = models.ForeignKey('TypeContrat', db_column='type_contrat', 
                             related_name='+',
                             verbose_name="Type de contrat")