Done
authorBenoit C. Sirois <benoit.clennett-sirois@auf.org>
Wed, 20 Feb 2013 21:56:12 +0000 (16:56 -0500)
committerBenoit C. Sirois <benoit.clennett-sirois@auf.org>
Wed, 20 Feb 2013 21:56:12 +0000 (16:56 -0500)
project/dae/templatetags/dae.py
project/rh/templates/rh/include/dossier.html
project/rh/views.py

index ebb0c2e..dd87a5d 100644 (file)
@@ -9,6 +9,7 @@ from project import groups
 
 from project.dae.workflow import ETATS_EDITABLE
 from project.dae.forms import (
+    remun_formset_factory_factory,
     ReadOnlyRemunFormSet,
     PosteCompReadOnlyRemunFormSet,
     DossierCompReadOnlyRemunFormSet,
@@ -102,6 +103,14 @@ def remun_form(context, dossier):
 
 
 @register.inclusion_tag('dae/embauche-remun.html', takes_context=True)
+def rh_remun_form(context, dossier):
+
+    return {
+        'remunForm': RHReadOnlyRemunFormSet(instance=dossier)
+        }
+
+
+@register.inclusion_tag('dae/embauche-remun.html', takes_context=True)
 def poste_cmp_remun_form(context, poste_cmp):
     return {
         'remunForm': PosteCompReadOnlyRemunFormSet(instance=poste_cmp)
@@ -113,3 +122,27 @@ def dossier_cmp_remun_form(context, dossier_cmp):
     return {
         'remunForm': DossierCompReadOnlyRemunFormSet(instance=dossier_cmp)
         }
+
+
+@register.inclusion_tag('dae/embauche-remun.html', takes_context=True)
+def rh_remun_form_for_year(context, dossier, year):
+
+    fs = remun_formset_factory_factory(
+        read_only=True,
+        parent_model=rh.Dossier,
+        model=rh.Remuneration,
+        )
+
+    def _get_qs(inst):
+        return inst.model.objects.filter(
+            dossier=inst.instance,
+            date_debut__year=year,
+            )
+        
+    fs.get_queryset = _get_qs
+
+    return {
+        'remunForm': fs(instance=dossier)
+        }
+
+
index 206e1d6..594ecc1 100644 (file)
@@ -1,3 +1,19 @@
+{% load dae %}
+
+{% block extrahead %}
+  <script src="{{ STATIC_URL }}js/jquery-1.5.1.min.js"
+          type="text/javascript"></script>
+  <script type="text/javascript">
+    var DEVISES = {};
+    {% for d in devises %}
+    DEVISES['{{d.devise_code}}'] = {{d.taux_euro|stringformat:"f"}};
+    {% endfor %}
+  </script>
+  <script src="{{ STATIC_URL }}js/dae.js" type="text/javascript"></script>
+  <script src="{{ STATIC_URL }}js/remun.js" type="text/javascript"></script>
+{% endblock %}
+
+
 <fieldset class="module aligned">
     <h2>Localisation</h2>
     {% include "rh/form-row.html" with label="Zone administrative" value=dossier.poste.implantation.zone_administrative %}
 {% if dossier.actif %}
 <fieldset class="module aligned page-break">
     <h2>Rémunération en cours</h2>
-    <table>
-        {% include "dae/embauche-remun-consulter.html" %}
-    </table>
+    {% for annee in annees %}
+    <h2>Pour l'année {{ annee }}</h2>
+    {% rh_remun_form_for_year dossier annee %}
+    {% endfor %}
 </fieldset>
 {% endif %}
 
index ebc29dd..43ee896 100644 (file)
@@ -33,6 +33,21 @@ from project.rh.historique import get_active_revisions, TodoForm
 TWOPLACES = Decimal('0.01')
 
 
+def devises():
+    liste = []
+    for d in rh.Devise.objects.all():
+        annee = date.today().year
+        taux = rh.TauxChange.objects.filter(annee=annee, devise=d)
+        data = {}
+        if len(taux) == 0:
+            data['taux_euro'] = 0
+        else:
+            data['taux_euro'] = taux[0].taux
+        data['devise_code'] = d.id
+        liste.append(data)
+    return liste
+
+
 @login_required
 @drh_or_admin_required
 def profil(request):
@@ -624,10 +639,21 @@ def rapports_postes_service(request):
 @region_protected(rh.Dossier)
 def dossier_apercu(request, dossier_id):
     d = get_object_or_404(rh.Dossier, pk=dossier_id)
+    annees =  [
+        x.year for x in d.remunerations().values_list(
+            'date_debut', flat=True) if x is not None]
+    min_y, max_y  = (
+        (min(annees), max(annees)) if len(annees)
+        else (date.today().year, date.today().year)
+        )
+    annees = reversed(range(min_y, max_y + 1))
+
     c = {
         'title': u"Dossier %s" % (d, ),
         'is_popup': request.GET.get('_popup', False),
+        'devises': devises(),
         'dossier': d,
+        'annees': annees,
         'pieces':  rh.DossierPiece.objects.filter(dossier__exact=d),
         'contrats': rh.Contrat.objects.filter(dossier__exact=d),
         'commentaires': rh.DossierCommentaire.objects.filter(dossier=d).all(),