+
+ # Ne remplacer que les comparaisons de ma région
+ comparaisons = comparaisons_formset.save(commit=False)
+ for comparaison in comparaisons:
+ comparaison.poste = poste
+ comparaison.save()
+ saved_cmps = [x.id for x in comparaisons]
+
+ for cmp_f in comparaisons_formset.forms:
+ comparaison = (cmp_f.instance, cmp_f)
+
+ cmp_dossier_id = comparaison[1].cleaned_data.get(
+ 'cmp_poste', None)
+ if (not cmp_dossier_id or
+ comparaison[0].id not in saved_cmps):
+ continue
+ cmp_dossier_qs = rh.Dossier.objects.filter(id=cmp_dossier_id)
+ if not cmp_dossier_qs.count() > 0:
+ continue
+ dossier = rh.Dossier.objects.get(id=cmp_dossier_qs.get().id)
+
+ # Get all remunerations for a period of 1 year,
+ # going back from either: today (if dossier has not
+ # yet ended), or from dossier's date_fin.
+ cmp_date = min(dossier.date_fin or date.today(), date.today())
+ for remuneration in _filter_remunerations(
+ dossier.remunerations().order_by('-date_debut'),
+ only_traitement=False,
+ ):
+ dae.PosteComparaisonRemuneration.objects.create(
+ poste_comparaison = comparaison[0],
+ type=remuneration.type,
+ type_revalorisation=remuneration.type_revalorisation,
+ montant=remuneration.montant,
+ devise=remuneration.devise,
+ commentaire=remuneration.commentaire,
+ date_debut=remuneration.date_debut,
+ date_fin=remuneration.date_fin,
+ )
+
+ # dans le cas d'une modification de poste de RH, on recopie les PJ
+ if poste_rh is not None:
+ for piece in poste_rh.rh_pieces.all():
+ dae.PostePiece(poste=poste, nom=piece.nom,
+ fichier=piece.fichier).save()
+ messages.add_message(
+ request, messages.SUCCESS,
+ "Le poste %s a été sauvegardé." % poste
+ )
+ if creer_dossier_dae:
+ return redirect('embauche', key='dae-%s' % poste.id)
+
+ if 'save' in request.POST: