comparaison salariale
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 18 Apr 2011 17:42:03 +0000 (13:42 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 18 Apr 2011 17:42:03 +0000 (13:42 -0400)
project/dae/templates/dae/embauche-dossier.html
project/dae/templates/dae/embauche.html
project/dae/views.py
project/rh_v1/models.py

index 9723eab..58d57b1 100644 (file)
 </script>
 
 <fieldset>
-<h2>
-    Comparaison salariale 
-    <span class="info">
-    dans la région pour les employés occupant un poste similaire
-    </span>
-</h2>
-</fieldset>
-
-<fieldset>
 <h2>Contrat</h2>
 <table>
     <tbody>
index 477b369..8ac26ff 100644 (file)
                                     value="{{ dossier.id }}" />
     </fieldset>
 
+    <fieldset>
+    <h2>Comparaison salariale</h2>
+    <span class="info">dans la région pour les employés occupant un poste similaire</span>
+    <table>
+        <tbody>
+            <tr>
+                <th>Employé</th>
+                <th>Poste</th>
+                <th>Date fin contrat</th>
+                <th>Salaire</th>
+                <th>Implantation</th>
+                <th>Famille Emploi</th>
+            </tr>
+            {% for d in comparaison_dossiers %}
+            <tr>
+                <td>{{ d.employe }}</td>
+                <td>{{ d.poste1.type_poste.nom }} {{ d.complement1 }}</td>
+                <td>{{ d.contrat_date_fin|default:"en cours" }}</td>
+                <td>{{ d.get_salaire_display }}</td>
+                <td>{{ d.poste1.implantation }}</td>
+                <td>{{ d.poste1.type_poste.famille_emploi.nom }}</td>
+            </tr>
+            {% endfor %}
+        </tbody>
+    </table>
+    </fieldset>
+
+
       <div id="form-dossier">
         {% comment %}Wrapper du formulaire de dossier{% endcomment %}
         {% with forms.dossier as form %}
index 4ad6b3f..7367162 100644 (file)
@@ -224,14 +224,32 @@ def embauche(request, key=None, dossier=None):
             justificationsNouveauForm = JustificationNouvelEmployeForm(instance=dossier)
             justificationsAutreForm = JustificationAutreEmployeForm(instance=dossier)
 
+        # Chargement des données de comparaison
+        comparaison_dossiers = []
+        famille = poste.type_poste.famille_emploi
+        # postes DAE (vieux dossiers)
+        postes_region = dae.Poste.objects.filter(implantation__region=poste.implantation.region)
+        for p in postes_region:
+            dossiers = p.get_dossiers()
+            if len(dossiers) > 0 and dossiers[0].poste1.type_poste.famille_emploi == famille:
+                comparaison_dossiers.append(dossiers[0])
+        # poste RHv1 (vieux dossiers)
+        postes_region = rh.Poste.objects.filter(implantation__region=poste.implantation.region)
+        for p in postes_region:
+            dossiers = p.poste1.all().order_by('rh_v1_dossier.date_creation') # through key incohérente... (dossiers)
+            if len(dossiers) > 0 and dossiers[0].poste1.type_poste.famille_emploi == famille:
+                comparaison_dossiers.append(dossiers[0])
+        
         vars = dict(step='employe',
                 poste=poste,
                 dossier=dossier,
                 piecesForm=piecesForm,
                 justificationsNouveauForm=justificationsNouveauForm,
                 justificationsAutreForm=justificationsAutreForm,
+                comparaison_dossiers=comparaison_dossiers,
                 forms=dict(employe=employe_form, dossier=dossier_form, )
                 )
+    
 
     return render_to_response('dae/embauche.html', vars,
                               RequestContext(request))
index 024ee82..0816247 100644 (file)
@@ -111,6 +111,22 @@ class Dossier(models.Model):
     def __unicode__(self):
         return u'%s : %s %s' % (self.employe, self.poste1, self.complement1)
 
+    def get_salaire_display(self):
+        """
+        Moyen rapide de récupérer le salaire correspodant à un dossier. Par contre,
+        toutes les rémuérations n'ont pas de devise associées, c'est pourquoi on récupère
+        les anciennes rémunérations pour rechercher si elle existait auparavant.
+        """
+        remun = self.remuneration_set.all()
+        devise = None
+        for r in remun:
+            try:
+                if r.devise_id is not None:
+                    devise = Devise.objects.get(id=r.devise_id).code
+            except:
+                pass
+        return "%s %s" % (remun[0].montant, devise)
+
 LIEN_PARENTE_CHOICES = (
     ('Conjoint', 'Conjoint'),
     ('Conjointe', 'Conjointe'),
@@ -151,6 +167,13 @@ class Remuneration(models.Model):
     date_annulation = models.DateField(null=True, blank=True)
     user_annulation = models.IntegerField(null=True, blank=True) #User ou employé
     
+    def __unicode__(self):
+        try:
+            devise = self.devise.code
+        except:
+            devise = "???"
+        return "%s %s" % (self.montant, devise)
+
 class FamilleEmploi(models.Model):
     #Identification
     id = models.IntegerField(primary_key=True)