from project.dae import models as dae
from project.rh_v1 import models as rh
-from decorators import dae_groupe_requis, poste_dans_ma_region_ou_service, dossier_dans_ma_region_ou_service
+from decorators import dae_groupe_requis, \
+ poste_dans_ma_region_ou_service, \
+ dossier_dans_ma_region_ou_service, \
+ employe_dans_ma_region_ou_service
from forms import *
@dae_groupe_requis
return HttpResponse(EmployeForm(initial=data, instance=employe, request=request).as_table())
+################################################################################
+# AJAX SECURISE
+################################################################################
+@dae_groupe_requis
+@employe_dans_ma_region_ou_service
def dossier(request, poste_key, employe_key):
""" Récupération AJAX du dossier pour la page d'embauche. """
data = dict()
return render_to_response('dae/embauche-dossier.html', vars,
RequestContext(request))
-def salaire(request, implantation, devise, classement):
- if not devise or not classement:
- raise Http404
-
- taux_impl = rh.TauxChange.objects.filter(implantation=implantation) \
- .order_by('-annee')
- taux = rh.TauxChange.objects.filter(devise=devise).order_by('-annee')
- vp = rh.ValeurPoint.objects.filter(implantation=implantation) \
- .order_by('-annee')
- if vp.count() * taux.count() * taux_impl.count() == 0:
- raise Http404
-
- classement = get_object_or_404(rh.Classement, pk=classement)
- taux, taux_impl, vp = taux[0].taux, taux_impl[0].taux, vp[0].valeur
-
- salaire_euro = round(vp * classement.coefficient * taux_impl, 2)
- data = dict(salaire_euro=salaire_euro, taux=taux,
- salaire_devise=round(salaire_euro / taux, 2))
-
- return HttpResponse(dumps(data))
-
+# @Cette fonction est appelée à partir de fonctions déjà sécurisée
def pre_filled_dossier(dossier_rh, employe_source, poste_rh):
dossier = dae.Dossier()
return dossier
-def coefficient(request):
+@dae_groupe_requis
+@dossier_dans_ma_region_ou_service
+def dossier_resume(request, dossier_id=None):
""" Appel AJAX :
- input : classement
- output : coefficient
+ input : valeur_point
+ output : devise, devise_code, taux_euro
"""
- method = request.method
- params = getattr(request, method, [])
- data = dict()
- if 'classement' in params and params.get('classement') is not u"":
- classement = params.get('classement')
- classement = rh.Classement.objects.get(pk=classement)
- data['coefficient'] = classement.coefficient
- else:
- data['coefficient'] = 0
- return HttpResponse(dumps(data))
-
+ try:
+ dossier = rh.Dossier.objects.get(id=dossier_id)
+ except:
+ return HttpResponseGone("Ce dossier n'est pas accessible")
-def liste_valeurs_point(request):
- """ Appel AJAX :
- input : implantation_id
- output : JSON liste de valeur point
- """
- method = request.method
- params = getattr(request, method, [])
- data = []
- annee_courante = datetime.datetime.now().year
- if 'implantation_id' in params and params.get('implantation_id') is not u"":
- implantation_id = params.get('implantation_id')
- objects = rh.ValeurPoint.objects.filter(implantation=implantation_id, annee__in=(annee_courante-1, annee_courante)).order_by("-annee")
+ data = {}
+ data['personne'] = unicode(dossier.employe)
+ data['implantation'] = dossier.implantation1.id
+ data['poste'] = u"%s %s" % (dossier.poste1.type_poste.nom, dossier.complement1)
+ data['montant'] = dossier.get_salaire()
+ salaire = dossier.get_dernier_salaire_remun()
+ if salaire is not None:
+ data['devise'] = dossier.get_dernier_salaire_remun().devise.id
+ data['montant_euros'] = dossier.get_dernier_salaire_remun().en_euros()
else:
- objects = rh.ValeurPoint.objects.filter(annee__in=(annee_courante-1, annee_courante)).order_by("-annee")
- for o in objects:
- data.append({'id' : o.id, 'label' : o.__unicode__(), })
+ data['devise'] = None
+ data['montant_euros'] = 0
return HttpResponse(dumps(data))
def liste_postes(request):
data = [('', 'Nouveau poste')] + sorted([('dae-%s' % p.id, label_poste_display(p)) for p in dae_ | copies] + [('rh-%s' % p.id, label_poste_display(p)) for p in rhv1], key=lambda t: t[1])
return HttpResponse(dumps(data))
+
+################################################################################
+# AJAX SECURITE non nécessaire
+################################################################################
+def coefficient(request):
+ """ Appel AJAX :
+ input : classement
+ output : coefficient
+ """
+ method = request.method
+ params = getattr(request, method, [])
+ data = dict()
+ if 'classement' in params and params.get('classement') is not u"":
+ classement = params.get('classement')
+ classement = rh.Classement.objects.get(pk=classement)
+ data['coefficient'] = classement.coefficient
+ else:
+ data['coefficient'] = 0
+ return HttpResponse(dumps(data))
+
+
def devise(request):
""" Appel AJAX :
input : valeur_point
return render_to_response('dae/embauche-remun.html', dict(dossier=dossier),
RequestContext(request))
-def dossier_resume(request, dossier_id=None):
+def salaire(request, implantation, devise, classement):
+ if not devise or not classement:
+ raise Http404
+
+ taux_impl = rh.TauxChange.objects.filter(implantation=implantation) \
+ .order_by('-annee')
+ taux = rh.TauxChange.objects.filter(devise=devise).order_by('-annee')
+ vp = rh.ValeurPoint.objects.filter(implantation=implantation) \
+ .order_by('-annee')
+ if vp.count() * taux.count() * taux_impl.count() == 0:
+ raise Http404
+
+ classement = get_object_or_404(rh.Classement, pk=classement)
+ taux, taux_impl, vp = taux[0].taux, taux_impl[0].taux, vp[0].valeur
+
+ salaire_euro = round(vp * classement.coefficient * taux_impl, 2)
+ data = dict(salaire_euro=salaire_euro, taux=taux,
+ salaire_devise=round(salaire_euro / taux, 2))
+
+ return HttpResponse(dumps(data))
+
+def liste_valeurs_point(request):
""" Appel AJAX :
- input : valeur_point
- output : devise, devise_code, taux_euro
+ input : implantation_id
+ output : JSON liste de valeur point
"""
- try:
- dossier = rh.Dossier.objects.get(id=dossier_id)
- except:
- return HttpResponseGone("Ce dossier n'est pas accessible")
-
- data = {}
- data['personne'] = unicode(dossier.employe)
- data['implantation'] = dossier.implantation1.id
- data['poste'] = u"%s %s" % (dossier.poste1.type_poste.nom, dossier.complement1)
- data['montant'] = dossier.get_salaire()
- salaire = dossier.get_dernier_salaire_remun()
- if salaire is not None:
- data['devise'] = dossier.get_dernier_salaire_remun().devise.id
- data['montant_euros'] = dossier.get_dernier_salaire_remun().en_euros()
+ method = request.method
+ params = getattr(request, method, [])
+ data = []
+ annee_courante = datetime.datetime.now().year
+ if 'implantation_id' in params and params.get('implantation_id') is not u"":
+ implantation_id = params.get('implantation_id')
+ objects = rh.ValeurPoint.objects.filter(implantation=implantation_id, annee__in=(annee_courante-1, annee_courante)).order_by("-annee")
else:
- data['devise'] = None
- data['montant_euros'] = 0
+ objects = rh.ValeurPoint.objects.filter(annee__in=(annee_courante-1, annee_courante)).order_by("-annee")
+ for o in objects:
+ data.append({'id' : o.id, 'label' : o.__unicode__(), })
return HttpResponse(dumps(data))
+