from project.dae.workflow import ETATS_EDITABLE
from project.dae.forms import (
+ remun_formset_factory_factory,
ReadOnlyRemunFormSet,
PosteCompReadOnlyRemunFormSet,
DossierCompReadOnlyRemunFormSet,
@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)
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)
+ }
+
+
+{% 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 %}
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):
@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(),