1 {% extends 'base.html' %}
3 {% block title %}RH - DAE{% endblock %}
4 {% block titre %}Ressources humaines{% endblock %}
6 Demande d'autorisation d'embauche
10 <script src=
"{{ MEDIA_URL }}js/jquery-1.5.1.min.js"
11 type=
"text/javascript"></script>
12 <script src=
"{{ MEDIA_URL }}js/jquery-ui-1.8.11.custom.min.js"
13 type=
"text/javascript"></script>
14 <link href=
"{{ MEDIA_URL }}/css/redmond/jquery-ui-1.8.11.custom.css"
18 h1.section {background-color: #D0E8F8; text-align: center; color: #
5F5F5F; margin:
50px
0px
26px
0px; border-bottom:
3px solid #BBD8EC; padding:
4px;}
19 .row {padding:
10px
0px; clear: both; display:block;}
20 .row * {float: left; margin:
0px; padding:
0px; margin-right:
4px;}
21 .row li {list-style-type: none;}
22 .underline {text-decoration: underline;}
23 .clear {display: block; clear: both;}
24 .note {text-decoration: underline; font-style: italic; margin-left:
12px;}
25 .info {font-size:
13px; font-style: italic;}
26 .noborder {border:none; margin:
0; padding;
0}
27 tr.noborder td {border:none; padding-left:
0;}
32 <h1>Demande d'autorisation de création de poste
</h1>
34 <form action=
"" method=
"post" enctype=
"multipart/form-data">
40 Poste existant : {{ poste.nom }} ({{ poste.implantation.nom }})
46 <th>{{ form.poste.label_tag }} :
<br />{{ form.poste.errors }}
</th>
47 <td>{{ form.poste }}
</td>
50 <th>{{ form.nom.label_tag }} :
<br />{{ form.nom.errors }}
</th>
51 <td>{{ form.nom }}
</td>
54 <th>{{ form.type_poste.label_tag }} :
<br />{{ form.type_poste.errors }}
</th>
55 <td>{{ form.type_poste }}
</td>
58 <th>{{ form.implantation.label_tag }} :
<br />{{ form.implantation.errors }}
</th>
59 <td>{{ form.implantation }}
</td>
62 <th>{{ form.service.label_tag }} :
<br />{{ form.service.errors }}
</th>
63 <td>{{ form.service }}
</td>
66 <th>{{ form.responsable.label_tag }} :
<br />{{ form.responsable.errors }}
</th>
67 <td>{{ form.responsable }}
</td>
78 <th>{{ form.statut_residence.label_tag }} :
<br />{{ form.statut_residence.errors }}
</th>
81 {{ form.statut_residence }}
82 {{ form.mise_a_disposition.label_tag }}
83 {{ form.mise_a_disposition.errors }}
84 {{ form.mise_a_disposition }}
89 <th>{{ form.appel.label_tag }} :
<br />{{ form.appel.errors }}
</th>
101 <h2>Durée prévue du poste
</h2>
102 <span class=
"info">Indépendamment du titulaire du poste
</span>
106 <th rowspan=
"2">Durée :
</th>
109 {{ form.date_debut }}
<br />
110 <span class=
"info">({{form.date_debut.help_text }})
</span><br />
111 {{ form.date_debut.errors }}
115 {{ form.date_fin }}
<br />
116 <span class=
"info">({{form.date_fin.help_text }})
</span><br />
117 {{ form.date_fin.errors }}
121 <td colspan=
"4" class=
"info">Pour une durée indéterminée, spécifier uniquement la date de début.
</td>
124 <th>{{ form.regime_travail.label_tag }} :
<br />{{ form.regime_travail.errors }}
</th>
126 {{ form.regime_travail }}
127 <span class=
"info">{{ form.regime_travail.help_text }}
</span>
132 {{ form.regime_travail_nb_heure_semaine.label_tag }} :
<br />
133 {{ form.regime_travail_nb_heure_semaine.errors }}
135 <td colspan=
"4">{{ form.regime_travail_nb_heure_semaine }}
</td>
142 <h2>Classement du poste
</h2>
149 <th>Valeur du point
</th>
151 <th colspan=
"2">Salaire de base
</th>
152 <th colspan=
"2">Indemnité, responsabilité (le cas échéant)
</th>
153 <th colspan=
"2">Autres
</th>
154 <th colspan=
"2">TOTAL
</th>
155 <th>Taux
> €
</th>
156 <th colspan=
"2">Conversion EUR
</th>
161 {{ form.classement_min }}
162 {{ form.classement_min.errors }}
165 {{ form.coefficient_min }}
166 {{ form.coefficient_min.errors }}
169 {{ form.valeur_point_min }}
170 {{ form.valeur_point_min.errors }}
173 {{ form.devise_min }}
174 {{ form.devise_min.errors }}
177 {{ form.salaire_min }}
178 {{ form.salaire_min.errors }}
180 <td><span class=
"devise_min_code">EUR
</span></td>
181 <td>{{ form.indemn_min }}
</td>
182 <td><span class=
"devise_min_code">EUR
</span></td>
183 <td>{{ form.autre_min }}
</td>
184 <td><span class=
"devise_min_code">EUR
</span></td>
185 <td id=
"total_min" class=
"cell-nombre">0.00</td>
186 <td><span class=
"devise_min_code">EUR
</span></td>
187 <td id=
"taux_min_euro_display">1</td>
188 <td id=
"total_min_euro" class=
"cell-nombre">0.00</td>
194 {{ form.classement_max }}
195 {{ form.classement_max.errors }}
198 {{ form.coefficient_max }}
199 {{ form.coefficient_max.errors }}
202 {{ form.valeur_point_max }}
203 {{ form.valeur_point_max.errors }}
206 {{ form.devise_max }}
207 {{ form.devise_max.errors }}
210 {{ form.salaire_max }}
211 {{ form.salaire_max.errors }}
213 <td><span class=
"devise_max_code">EUR
</span></td>
214 <td>{{ form.indemn_max }}
</td>
215 <td><span class=
"devise_max_code">EUR
</span></td>
216 <td>{{ form.autre_max }}
</td>
217 <td><span class=
"devise_max_code">EUR
</span></td>
218 <td id=
"total_max" class=
"cell-nombre">0.00</td>
219 <td><span class=
"devise_max_code">EUR
</span></td>
220 <td id=
"taux_max_euro_display">1</td>
221 <td id=
"total_max_euro" class=
"cell-nombre">0.00</td>
227 <p class=
"info">N.B Conversion en EUROS au taux de change budgétaire
</p>
230 {% comment %}{% if new %}{% endcomment %}
232 <h2>Éléments de comparaison
</h2>
233 <p class=
"info">Compléter uniquement lors de la création d'un poste
</p>
239 {{ form.devise_comparaison }}
240 {{ form.devise_comparaison.errors }}
249 <th colspan=
"2">Entreprise locale
</th>
250 <th colspan=
"2">Université
</th>
251 <th colspan=
"2">Fonction publique
</th>
252 <th colspan=
"2">ONG
</th>
253 <th colspan=
"2">Autre
</th>
257 <td>{{ form.comp_locale_min }}
</td>
258 <td><span class=
"devise_comp_code">€
</span></td>
259 <td>{{ form.comp_universite_min }}
</td>
260 <td><span class=
"devise_comp_code">€
</span></td>
261 <td>{{ form.comp_fonctionpub_min }}
</td>
262 <td><span class=
"devise_comp_code">€
</span></td>
263 <td>{{ form.comp_ong_min }}
</td>
264 <td><span class=
"devise_comp_code">€
</span></td>
265 <td>{{ form.comp_autre_min }}
</td>
266 <td><span class=
"devise_comp_code">€
</span></td>
270 <td>{{ form.comp_locale_max }}
</td>
271 <td><span class=
"devise_comp_code">€
</span></td>
272 <td>{{ form.comp_universite_max }}
</td>
273 <td><span class=
"devise_comp_code">€
</span></td>
274 <td>{{ form.comp_fonctionpub_max }}
</td>
275 <td><span class=
"devise_comp_code">€
</span></td>
276 <td>{{ form.comp_ong_max }}
</td>
277 <td><span class=
"devise_comp_code">€
</span></td>
278 <td>{{ form.comp_autre_max }}
</td>
279 <td><span class=
"devise_comp_code">€
</span></td>
284 {% comment %}{% endif %}{% endcomment %}
287 <h1 class=
"section clear">SECTION
2 - PERSONNEL ENGAGÉ
</h1>
288 <div class=
"row"></div>
290 <h1 class=
"section">SECTION
3 - COÛT GLOBAL
</h1>
291 <div class=
"row"></div>
293 <h1 class=
"section">SECTION
4 - JUSTIFICATION DE LA DEMANDE (OBLIGATOIRE)
</h1>
294 <div class=
"row"></div>
298 <h2>Pièces jointes
</h2>
299 <p class=
"info">Compléter uniquement lors de la création d'un poste
</p>
301 {%for f in piecesForm.management_form%}
306 {% for field in piecesForm.forms
.0 %}
307 {% if not field.is_hidden %}
<th>{{field.label}}
</th>{% endif %}
310 {%for f in piecesForm.forms %}
314 {% if not field.is_hidden %}
<td>{{field}}
</td>{%else%}{{field}}{% endif %}
320 <input type=
"submit" name=
"save" value=
"Sauvegarder" />
326 <table cellspacing=
"0" id=
"financing">
335 {% for fin in poste.financements.all %}
337 <td>{{ fin.get_type_display }}
</td>
338 <td>{{ fin.montant }}
</td>
344 <td>{{ fin.pourcentage }}
</td>
345 <td>{{ fin.commentaire }}
</td>
346 <td><a href=
"{% url financement poste_key fin.id %}">Modifier
</a></td>
352 Vous devez enregister ce nouveau poste avant de pouvoir spécifier
353 la ou les sources de financement.
355 Aucun financement au registre
362 <a href=
"{% url financement poste_key %}" class=
"new">
363 Ajouter une source de financement
367 <div id=
"financing-form"></div>
370 <script type=
"text/javascript">
371 $('#id_poste').change(function() {
372 window.location = '{% url poste %}/' + $(this).val();
374 $('#financing a, a.new').click(function() {
375 $('#financing-form').load($(this).attr('href') + '?ajax=
1')
385 $(document).ready(function() {
386 valeur_min = '
<input type=
"hidden" id=
"valeur_min" name=
"valeur_min" value=
"0" disabled=
"disabled">'
387 devise_min_code = '
<input type=
"hidden" id=
"devise_min_code" name=
"devise_min_code" value=
"EUR" disabled=
"disabled">'
388 taux_min_euro = '
<input type=
"hidden" id=
"taux_min_euro" name=
"taux_min_euro" value=
"1" disabled=
"disabled">'
389 $('#id_valeur_point_min').after(valeur_min)
390 $('#id_devise_min').after(devise_min_code)
391 $('#total_min_euro').after(taux_min_euro)
393 /* valeur_point, devise et taux de l'implantation par défaut */
395 implantation = $('id_implantation').val();
396 valeur_point_min = $('#id_valeur_point_min').val();
397 if (valeur_point_min == '' and implantation != '')
399 /* simuler id_valeur_point_min change */
402 /* simuler id_devise_min change */
403 devise_min = $('#id_devise_min').val();
404 url_devise_code =
"{% url dae_devise_code %}";
405 $.post(url_devise_code, {'devise':devise_min}, function(data){
406 $('#devise_min_code').val(data[
"devise_code"]);
407 $('#taux_min_euro').val(data[
"taux_euro"]);
408 $('#taux_min_euro_display').empty();
409 $('#taux_min_euro_display').text(data[
"taux_euro"]);
410 $('.devise_min_code').trigger('update_devise_min_code');
411 $('#total_min_euro').trigger('update_total_min_euro');
414 $('#total_min').trigger('update_total_min');
416 $('#total_min_euro').trigger('update_total_min_euro');
419 $('#id_coefficient_min').bind('coeff_min_modified', function(){
420 $('#id_salaire_min').trigger('update_salaire_min');
422 $('.devise_min_code').bind('update_devise_min_code', function(){
423 devise_code = $('#devise_min_code').val();
424 $('.devise_min_code').empty();
425 $('.devise_min_code').text(devise_code);
427 $('#id_salaire_min').bind('update_salaire_min', function(){
428 valeur = $('#valeur_min').val();
429 coeff = $('#id_coefficient_min').val();
430 salaire = coeff * valeur;
431 salaire = clean_float(salaire);
432 $(this).val(salaire);
433 $('#total_min').trigger('update_total_min');
435 $('#total_min').bind('update_total_min', function(){
437 salaire = $('#id_salaire_min').val();
438 indemn = $('#id_indemn_min').val();
439 autre = $('#id_autre_min').val();
440 salaire = clean_float(salaire);
441 indemn = clean_float(indemn);
442 autre = clean_float(autre);
443 total = salaire + indemn + autre;
445 $(this).text(total.toFixed(
2));
446 $('#total_min_euro').trigger('update_total_min_euro');
448 $('#total_min_euro').bind('update_total_min_euro', function(){
449 total = $('#total_min').text();
450 taux_euro = $('#taux_min_euro').val();
451 total = clean_float(total);
452 taux_euro = clean_float(taux_euro);
453 total_euro = total * taux_euro;
455 $(this).text(total_euro.toFixed(
2));
458 $('#id_coefficient_min').change(function(){
459 $(this).trigger('coeff_min_modified');
461 $('#id_classement_min').change(function() {
462 url =
"{% url dae_coefficient %}";
463 $.post(url, {'classement':$(this).val()}, function(data){
464 $('#id_coefficient_min').val(data[
"coefficient"]);
465 $('#id_coefficient_min').trigger('coeff_min_modified');
468 $('#id_valeur_point_min').change(function() {
469 url_valeur =
"{% url dae_valeur %}";
470 url_devise =
"{% url dae_devise %}";
471 min_now = $('#id_valeur_point_min').val();
472 max_now = $('#id_valeur_point_max').val();
473 $.post(url_valeur, {'valeur_point':min_now}, function(data){
474 $('#valeur_min').val(data[
"valeur"]);
475 $('#id_salaire_min').trigger('update_salaire_min');
476 $('#total_min_euro').trigger('update_total_min_euro');
478 $('#id_valeur_point_max').val(min_now);
479 $('#valeur_max').val(data[
"valeur"]);
480 $('#id_salaire_max').trigger('update_salaire_max');
481 $('#total_max_euro').trigger('update_total_max_euro');
484 $.post(url_devise, {'valeur_point':min_now}, function(data){
485 $('#id_devise_min').val(data[
"devise"]);
486 $('#devise_min_code').val(data[
"devise_code"]);
487 $('#taux_min_euro').val(data[
"taux_euro"]);
488 $('#taux_min_euro_display').empty();
489 $('#taux_min_euro_display').text(data[
"taux_euro"]);
490 $('.devise_min_code').trigger('update_devise_min_code');
491 $('#total_min_euro').trigger('update_total_min_euro');
493 $('#id_devise_max').val(data[
"devise"]);
494 $('#devise_max_code').val(data[
"devise_code"]);
495 $('#taux_max_euro').val(data[
"taux_euro"]);
496 $('#taux_max_euro_display').empty();
497 $('#taux_max_euro_display').text(data[
"taux_euro"]);
498 $('.devise_max_code').trigger('update_devise_max_code');
499 $('#total_max_euro').trigger('update_total_max_euro');
503 $('#id_devise_min').change(function(){
504 devise_min = $('#id_devise_min').val();
505 url_devise_code =
"{% url dae_devise_code %}";
506 $.post(url_devise_code, {'devise':devise_min}, function(data){
507 $('#devise_min_code').val(data[
"devise_code"]);
508 $('#taux_min_euro').val(data[
"taux_euro"]);
509 $('#taux_min_euro_display').empty();
510 $('#taux_min_euro_display').text(data[
"taux_euro"]);
511 $('.devise_min_code').trigger('update_devise_min_code');
512 $('#total_min_euro').trigger('update_total_min_euro');
515 $('#id_salaire_min').change(function(){
516 $('#total_min').trigger('update_total_min');
518 $('#id_indemn_min').change(function(){
519 $('#total_min').trigger('update_total_min');
521 $('#id_autre_min').change(function(){
522 $('#total_min').trigger('update_total_min');
526 $(document).ready(function() {
527 valeur_max = '
<input type=
"hidden" id=
"valeur_max" name=
"valeur_max" value=
"0" disabled=
"disabled">'
528 devise_max_code = '
<input type=
"hidden" id=
"devise_max_code" name=
"devise_max_code" value=
"EUR" disabled=
"disabled">'
529 taux_max_euro = '
<input type=
"hidden" id=
"taux_max_euro" name=
"taux_max_euro" value=
"1" disabled=
"disabled">'
530 $('#id_valeur_point_max').after(valeur_max)
531 $('#id_devise_max').after(devise_max_code)
532 $('#total_max_euro').after(taux_max_euro)
534 /* simuler id_devise_max change */
535 devise_max = $('#id_devise_max').val();
536 url_devise_code =
"{% url dae_devise_code %}";
537 $.post(url_devise_code, {'devise':devise_max}, function(data){
538 $('#devise_max_code').val(data[
"devise_code"]);
539 $('#taux_max_euro').val(data[
"taux_euro"]);
540 $('#taux_max_euro_display').empty();
541 $('#taux_max_euro_display').text(data[
"taux_euro"]);
542 $('.devise_max_code').trigger('update_devise_max_code');
543 $('#total_max_euro').trigger('update_total_max_euro');
546 $('#total_max').trigger('update_total_max');
548 $('#total_max_euro').trigger('update_total_max_euro');
551 $('#id_coefficient_max').bind('coeff_max_modified', function(){
552 $('#id_salaire_max').trigger('update_salaire_max');
554 $('.devise_max_code').bind('update_devise_max_code', function(){
555 devise_code = $('#devise_max_code').val();
556 $('.devise_max_code').empty();
557 $('.devise_max_code').text(devise_code);
559 $('#id_salaire_max').bind('update_salaire_max', function(){
560 valeur = $('#valeur_max').val();
561 coeff = $('#id_coefficient_max').val();
562 salaire = coeff * valeur;
563 salaire = clean_float(salaire);
564 $(this).val(salaire);
565 $('#total_max').trigger('update_total_max');
567 $('#total_max').bind('update_total_max', function(){
569 salaire = $('#id_salaire_max').val();
570 indemn = $('#id_indemn_max').val();
571 autre = $('#id_autre_max').val();
572 salaire = clean_float(salaire);
573 indemn = clean_float(indemn);
574 autre = clean_float(autre);
575 total = salaire + indemn + autre;
577 $(this).text(total.toFixed(
2));
578 $('#total_max_euro').trigger('update_total_max_euro');
580 $('#total_max_euro').bind('update_total_max_euro', function(){
581 total = $('#total_max').text();
582 taux_euro = $('#taux_max_euro').val();
583 total = clean_float(total);
584 taux_euro = clean_float(taux_euro);
585 total_euro = total * taux_euro;
587 $(this).text(total_euro.toFixed(
2));
590 $('#id_coefficient_max').change(function(){
591 $(this).trigger('coeff_max_modified');
593 $('#id_classement_max').change(function() {
594 url =
"{% url dae_coefficient %}";
595 $.post(url, {'classement':$(this).val()}, function(data){
596 $('#id_coefficient_max').val(data[
"coefficient"]);
597 $('#id_coefficient_max').trigger('coeff_max_modified');
600 $('#id_valeur_point_max').change(function() {
601 url_valeur =
"{% url dae_valeur %}";
602 url_devise =
"{% url dae_devise %}";
603 min_now = $('#id_valeur_point_min').val();
604 max_now = $('#id_valeur_point_max').val();
605 $.post(url_valeur, {'valeur_point':max_now}, function(data){
606 $('#valeur_max').val(data[
"valeur"]);
607 $('#id_salaire_max').trigger('update_salaire_max');
608 $('#total_max_euro').trigger('update_total_max_euro');
610 $('#id_valeur_point_min').val(max_now);
611 $('#valeur_min').val(data[
"valeur"]);
612 $('#id_salaire_min').trigger('update_salaire_min');
613 $('#total_min_euro').trigger('update_total_min_euro');
616 $.post(url_devise, {'valeur_point':max_now}, function(data){
617 $('#id_devise_max').val(data[
"devise"]);
618 $('#devise_max_code').val(data[
"devise_code"]);
619 $('#taux_max_euro').val(data[
"taux_euro"]);
620 $('#taux_max_euro_display').empty();
621 $('#taux_max_euro_display').text(data[
"taux_euro"]);
622 $('.devise_max_code').trigger('update_devise_max_code');
623 $('#total_max_euro').trigger('update_total_max_euro');
625 $('#id_devise_min').val(data[
"devise"]);
626 $('#devise_min_code').val(data[
"devise_code"]);
627 $('#taux_min_euro').val(data[
"taux_euro"]);
628 $('#taux_min_euro_display').empty();
629 $('#taux_min_euro_display').text(data[
"taux_euro"]);
630 $('.devise_min_code').trigger('update_devise_min_code');
631 $('#total_min_euro').trigger('update_total_min_euro');
635 $('#id_devise_max').change(function(){
636 devise_max = $('#id_devise_max').val();
637 url_devise_code =
"{% url dae_devise_code %}";
638 $.post(url_devise_code, {'devise':devise_max}, function(data){
639 $('#devise_max_code').val(data[
"devise_code"]);
640 $('#taux_max_euro').val(data[
"taux_euro"]);
641 $('#taux_max_euro_display').empty();
642 $('#taux_max_euro_display').text(data[
"taux_euro"]);
643 $('.devise_max_code').trigger('update_devise_max_code');
644 $('#total_max_euro').trigger('update_total_max_euro');
647 $('#id_salaire_max').change(function(){
648 $('#total_max').trigger('update_total_max');
650 $('#id_indemn_max').change(function(){
651 $('#total_max').trigger('update_total_max');
653 $('#id_autre_max').change(function(){
654 $('#total_max').trigger('update_total_max');
659 $(document).ready(function() {
660 devise_comp_code = '
<input type=
"hidden" id=
"devise_comp_code" name=
"devise_comp_code" value=
"EUR" disabled=
"disabled">'
661 $('#id_devise_comparaison').after(devise_comp_code)
663 /* simuler id_devise_comparaison change */
664 devise_comparaison = $('#id_devise_comparaison').val();
665 url_devise_code =
"{% url dae_devise_code %}";
666 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
667 $('#devise_comp_code').val(data[
"devise_code"]);
668 $('.devise_comp_code').trigger('update_devise_comp_code');
671 $('.devise_comp_code').bind('update_devise_comp_code', function(){
672 devise_code = $('#devise_comp_code').val();
673 $('.devise_comp_code').empty();
674 $('.devise_comp_code').text(devise_code);
676 $('#id_devise_comparaison').change(function(){
677 devise_comparaison = $('#id_devise_comparaison').val();
678 url_devise_code =
"{% url dae_devise_code %}";
679 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
680 $('#devise_comp_code').val(data[
"devise_code"]);
681 $('.devise_comp_code').trigger('update_devise_comp_code');
686 function clean_float(value){
687 if (value == undefined)
690 output = parseFloat(value);
691 output = Math.round(output*
100)/
100;