apercu
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 29 Mar 2012 14:58:33 +0000 (10:58 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 29 Mar 2012 14:58:33 +0000 (10:58 -0400)
project/assets/css/admin_print.css [new file with mode: 0644]
project/assets/css/rh_apercus.css [new file with mode: 0644]
project/dae/models.py
project/rh/models.py
project/rh/templates/admin/rh/dossier/apercu.html
project/rh/templates/rh/form-row.html [new file with mode: 0644]
project/rh/templates/rh/include/commentaires.html
project/rh/templates/rh/include/dossier.html
project/rh/templates/rh/include/remunerations.html
project/rh/views.py

diff --git a/project/assets/css/admin_print.css b/project/assets/css/admin_print.css
new file mode 100644 (file)
index 0000000..c48ed01
--- /dev/null
@@ -0,0 +1,2 @@
+#header, .breadcrumbs {display: none;}
+.page-break { display:block; page-break-before:always; }
diff --git a/project/assets/css/rh_apercus.css b/project/assets/css/rh_apercus.css
new file mode 100644 (file)
index 0000000..ff497fb
--- /dev/null
@@ -0,0 +1,6 @@
+.gauche {float:left; }
+.droite {float:right; text-align:right; }
+.montant {text-align: right;}
+table {margin: 2em;}
+table th, table td {border-left: 1px solid #D0E8F8; border-top: 1px solid #D0E8F8; padding: 5px;}
+.module {margin: 8px 0;}
index 989d173..ad18708 100644 (file)
@@ -447,98 +447,6 @@ class Dossier(DossierWorkflow, rh.Dossier_):
             return None
         return int(round(float(self.salaire_titulaire_anterieur) * float(taux), 2))
 
-    def get_salaire_euros(self):
-        tx = self.taux_devise()
-        return (float)(tx) * (float)(self.salaire)
-
-    def get_remunerations_brutes(self):
-        """
-        1   Salaire de base
-        3   Indemnité de base
-        4   Indemnité d'expatriation
-        5   Indemnité pour frais
-        6   Indemnité de logement
-        7   Indemnité de fonction
-        8   Indemnité de responsabilité
-        9   Indemnité de transport
-        10  Indemnité compensatrice
-        11  Indemnité de subsistance
-        12  Indemnité différentielle
-        13  Prime d'installation
-        14  Billet d'avion
-        15  Déménagement
-        16  Indemnité de départ
-        18  Prime de 13ième mois
-        19  Prime d'intérim
-        """
-        ids = [1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19]
-        return [r for r in self.dae_remunerations.all() if r.type_id in ids]
-
-    def get_charges_salariales(self):
-        """
-        20 Charges salariales ?
-        """
-        ids = [20, ]
-        return [r for r in self.dae_remunerations.all() if r.type_id in ids]
-
-    def get_total_charges_salariales(self):
-        total = 0.0
-        for r in self.get_charges_salariales():
-            total += r.montant_euros()
-        return total
-
-    def get_charges_patronales(self):
-        """
-        17  Charges patronales
-        """
-        ids = [17, ]
-        return [r for r in self.dae_remunerations.all() if r.type_id in ids]
-
-    def get_total_charges_patronales(self):
-        total = 0.0
-        for r in self.get_charges_patronales():
-            total += r.montant_euros()
-        return total
-
-    def get_salaire_brut(self):
-        """
-        somme des rémuérations brutes
-        """
-        total = 0.0
-        for r in self.get_remunerations_brutes():
-            total += r.montant_euros()
-        return total
-
-    def get_salaire_net(self):
-        """
-        salaire brut - charges salariales
-        """
-        total_charges = 0.0
-        for r in self.get_charges_salariales():
-            total_charges += r.montant_euros()
-        return self.get_salaire_brut() - total_charges
-
-    def get_couts_auf(self):
-        """
-        salaire net + charges patronales
-        """
-        total_charges = 0.0
-        for r in self.get_charges_patronales():
-            total_charges += r.montant_euros()
-        return self.get_salaire_net() + total_charges
-
-    def get_remunerations_tierces(self):
-        """
-        2   Salaire MAD
-        """
-        return [r for r in self.dae_remunerations.all() if r.type_id in (2, )]
-
-    def get_total_remunerations_tierces(self):
-        total = 0.0
-        for r in self.get_remunerations_tierces():
-            total += r.montant_euros()
-        return total
-
     def valide(self):
         return self.etat in (DOSSIER_ETAT_REGION_FINALISATION,
                              DOSSIER_ETAT_DRH_FINALISATION,
index ee41fc1..a5527b5 100644 (file)
@@ -6,6 +6,7 @@ from decimal import Decimal
 
 from django.core.files.storage import FileSystemStorage
 from django.db import models
+from django.db.models import Q
 from django.conf import settings
 
 from auf.django.emploi.models import GENRE_CHOICES, SITUATION_CHOICES # devrait plutot être dans references
@@ -659,10 +660,13 @@ class Dossier_(AUFMetadata, DevisableMixin):
 
 
     def remunerations(self):
-        return self.rh_remunerations.all().order_by('date_debut')
+        key = "%s_remunerations" % self._meta.app_label
+        remunerations = getattr(self, key)
+        return remunerations.all().order_by('-date_debut')
 
     def remunerations_en_cours(self):
-        return self.rh_remunerations.all().filter(date_fin__exact=None).order_by('date_debut')
+        q = Q(date_fin__exact=None) | Q(date_fin__gt=datetime.date.today())
+        return self.remunerations().all().filter(q).order_by('date_debut')
 
     def get_salaire(self):
         try:
@@ -670,6 +674,98 @@ class Dossier_(AUFMetadata, DevisableMixin):
         except:
             return None
 
+    def get_salaire_euros(self):
+        tx = self.taux_devise()
+        return (float)(tx) * (float)(self.salaire)
+
+    def get_remunerations_brutes(self):
+        """
+        1   Salaire de base
+        3   Indemnité de base
+        4   Indemnité d'expatriation
+        5   Indemnité pour frais
+        6   Indemnité de logement
+        7   Indemnité de fonction
+        8   Indemnité de responsabilité
+        9   Indemnité de transport
+        10  Indemnité compensatrice
+        11  Indemnité de subsistance
+        12  Indemnité différentielle
+        13  Prime d'installation
+        14  Billet d'avion
+        15  Déménagement
+        16  Indemnité de départ
+        18  Prime de 13ième mois
+        19  Prime d'intérim
+        """
+        ids = [1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19]
+        return [r for r in self.remunerations_en_cours().all() if r.type_id in ids]
+
+    def get_charges_salariales(self):
+        """
+        20 Charges salariales ?
+        """
+        ids = [20, ]
+        return [r for r in self.remunerations_en_cours().all() if r.type_id in ids]
+
+    def get_total_charges_salariales(self):
+        total = 0.0
+        for r in self.get_charges_salariales():
+            total += r.montant_euros()
+        return total
+
+    def get_charges_patronales(self):
+        """
+        17  Charges patronales
+        """
+        ids = [17, ]
+        return [r for r in self.remunerations_en_cours().all() if r.type_id in ids]
+
+    def get_total_charges_patronales(self):
+        total = 0.0
+        for r in self.get_charges_patronales():
+            total += r.montant_euros()
+        return total
+
+    def get_salaire_brut(self):
+        """
+        somme des rémuérations brutes
+        """
+        total = 0.0
+        for r in self.get_remunerations_brutes():
+            total += r.montant_euros()
+        return total
+
+    def get_salaire_net(self):
+        """
+        salaire brut - charges salariales
+        """
+        total_charges = 0.0
+        for r in self.get_charges_salariales():
+            total_charges += r.montant_euros()
+        return self.get_salaire_brut() - total_charges
+
+    def get_couts_auf(self):
+        """
+        salaire net + charges patronales
+        """
+        total_charges = 0.0
+        for r in self.get_charges_patronales():
+            total_charges += r.montant_euros()
+        return self.get_salaire_net() + total_charges
+
+    def get_remunerations_tierces(self):
+        """
+        2   Salaire MAD
+        """
+        return [r for r in self.remunerations_en_cours().all() if r.type_id in (2, )]
+
+    def get_total_remunerations_tierces(self):
+        total = 0.0
+        for r in self.get_remunerations_tierces():
+            total += r.montant_euros()
+        return total
+
 
 class Dossier(Dossier_):
     __doc__ = Dossier_.__doc__
index a4a0621..1415072 100644 (file)
@@ -2,6 +2,12 @@
 
 {% load i18n admin_modify adminmedia %}
 
+{% block extrahead %}
+    {{ block.super }}
+    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/admin_print.css" media="print"/>
+    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/rh_apercus.css" media="all"/>
+{% endblock %}
+
 {% block breadcrumbs %}{% if not is_popup %}
 <div class="breadcrumbs">
      <a href="{% url admin:index %}">{% trans "Home" %}</a> &rsaquo;
@@ -12,9 +18,6 @@
 {% endif %}{% endblock %}
 
 {% block content %}
-<h2>Aperçu du dossier de {{ dossier.employe }}</h2>
-{% include "rh/include/imprimer.html" %}
-
-{% include "rh/include/dossier.html" %}
-
+    {% include "rh/include/imprimer.html" %}
+    {% include "rh/include/dossier.html" %}
 {% endblock %}
diff --git a/project/rh/templates/rh/form-row.html b/project/rh/templates/rh/form-row.html
new file mode 100644 (file)
index 0000000..471ca44
--- /dev/null
@@ -0,0 +1,3 @@
+{% comment %}preparation refactoring {% endcomment %}
+
+{% include "recrutement/form-row.html" %}
index b76c779..ff4f986 100644 (file)
@@ -1,6 +1,5 @@
 {% if commentaires|length > 0  %}
 <div>
-  <h3>Commentaires</h3>
   {% comment %}
   <a class="noprint action-remove-block" href="#">Retirer de l'impression</a>
   {% endcomment %}
index 3475e27..4441880 100644 (file)
@@ -1,53 +1,61 @@
-<h2>Dossier {{ dossier }}</h2>
-
-<h3>Implantation</h3>
-{{ dossier.poste.implantation }}
-
-{% include "rh/include/remunerations.html" with remunerations=dossier.remunerations_en_cours %}
-
-<h3>Durée et régime</h3>
-<table>
-    <tr><th>Date début d'occupation</th><td>{{ dossier.date_debut }}</td></tr>
-    <tr><th>Date fin d'occupation</th><td>{% if dossier.date_fin == None %}<span style="color: red;">en cours</span>{% else %}{{ dossier.date_fin }}{% endif %}</td></tr>
-
-    <tr><th>Régime de travail (% du temps complet)</th><td>{{ dossier.regime_travail }}</td></tr>
-    <tr><th>Régime de travail (Nb. heures par semaine)</th><td>{{ dossier.regime_travail_nb_heure_semaine }}</td></tr>
-</table>
-
-<h3>Information</h3>
-<table>
-    <tr><th>Statut</th><td>{{ dossier.statut }}</td></tr>
-    <tr><th>Organisme BSTG</th><td>{{ dossier.organisme_bstg }}</td></tr>
-    <tr><th>Statut de résidence</th><td>{{ dossier.statut_residence }}</td></tr>
-    <tr><th>Classement</th><td>{{ dossier.classement }}</td></tr>
+<fieldset class="module">
+    <h2>Annuaire</h2>
+    {% include "rh/form-row.html" with label="Région" value=dossier.poste.implantation.region %}
+    {% include "rh/form-row.html" with label="Implantation" value=dossier.poste.implantation %}
+</fieldset>
+
+<fieldset class="module">
+    <h2>Informations générales</h2>
+    {% include "rh/form-row.html" with label="Date début d'occupation" value=dossier.date_debut %}
+    {% include "rh/form-row.html" with label="Date fin d'occupation" value=dossier.date_fin %}
+    {% include "rh/form-row.html" with label="Régime de travail (% du temps complet)" value=dossier.regime_travail %}
+    {% include "rh/form-row.html" with label="Régime de travail (Nb. heures par semaine)" value=dossier.regime_travail_nb_heure_semaine %}
+    {% include "rh/form-row.html" with label="Statut" value=dossier.statut %}
+    {% include "rh/form-row.html" with label="Organisme BSTG" value=dossier.organisme_bstg %}
+    {% include "rh/form-row.html" with label="Statut de résidence" value=dossier.statut_residence %}
     {% if dossier.remplacement %}
-        <th>Remplacement</th><td>{{ dossier.remplacement_de }}</td></tr>
+        {% include "rh/form-row.html" with label="Remplacement" value=dossier.remplacement_de %}
     {% endif %}
-</table>
+</fieldset>
 
-{% include "rh/include/remunerations.html" with remunerations=dossier.remunerations %}
+<fieldset class="module page-break">
+    <h2>Rémunération en cours</h2>
+    <table>
+        {% include "dae/embauche-remun-consulter.html" %}
+    </table>
+</fieldset>
 
 {% include "rh/include/pieces.html" %}
 
-<h3>Contrats</h3>
-<table>
-  <tr>
-    <th>Type</th>
-    <th>Date début</th>
-    <th>Date fin</th>
-    <th>Fichier</th>
-  </tr>
-  {% for c in contrats %}
-  <tr>
-    <td>{{ c.type_contrat }}</td>
-    <td>{{ c.date_debut }}</td>
-    <td>{{ c.date_fin }}</td>
-    <td>{% if c.fichier %}
-      <a href="{{ media }}{{ c.fichier }}">Télécharger</a>
-      {% endif %}
-    </td>
-  </tr>
-  {% endfor %}
-</table>
+<fieldset class="module">
+    <h2>Contrats</h2>
+    <table>
+      <tr>
+        <th>Type</th>
+        <th>Date début</th>
+        <th>Date fin</th>
+        <th>Fichier</th>
+      </tr>
+      {% for c in contrats %}
+      <tr>
+        <td>{{ c.type_contrat }}</td>
+        <td>{{ c.date_debut }}</td>
+        <td>{{ c.date_fin }}</td>
+        <td>{% if c.fichier %}
+          <a href="{{ media }}{{ c.fichier }}">Télécharger</a>
+          {% endif %}
+        </td>
+      </tr>
+      {% endfor %}
+    </table>
+</fieldset>
+
+<fieldset class="module">
+    <h2>Historique de rémunération</h2>
+{% include "rh/include/remunerations.html" with remunerations=dossier.remunerations %}
+</fieldset>
 
+<fieldset class="module">
+    <h2>Commentaires</h2>
 {% include "rh/include/commentaires.html" %}
+</fieldset>
index 4f0de77..dca6fda 100644 (file)
@@ -1,5 +1,4 @@
 {% if remunerations|length > 0 %}
-<h3>Rémunérations en cours</h3>
 <table>
     <tr>
         <th>Type</th>
@@ -9,10 +8,10 @@
         <th>Date début</th>
         <th>Date fin</th>
     </tr>
-    {% for r in dossier.remunerations_en_cours %}
+    {% for r in dossier.remunerations %}
     <tr>
         <th>{{ r.type }}</th>
-        <th>{{ r.type.nature_remuneration }}</th>
+        <td>{{ r.type.nature_remuneration }}</td>
         <td style="text-align:right">{{ r.montant_avec_regime|floatformat:2 }} {{ r.devise.code }}</td>
         <td>{{ r.commentaire|default:"" }}</td>
         <td>{{ r.date_debut }}</td>
index 914b269..3922df3 100644 (file)
@@ -412,6 +412,7 @@ def region_protected(model):
 def dossier_apercu(request, dossier_id):
     d = get_object_or_404(rh.Dossier, pk=dossier_id)
     c = {
+        'title': u"Dossier %s" % (d, ),
         'is_popup' : request.GET.get('_popup', False),
         'dossier' : d,
         'pieces' :  rh.DossierPiece.objects.filter(dossier__exact=d),