1591: Créer une app formulaire-recrutement qui permettra à un candidat de postuler...
[auf_rh_dae.git] / project / media / js / dae-embauche.js
CommitLineData
dfc31755
OL
1/*******************************************************************************
2* EMBAUCHE
3*******************************************************************************/
66796c1f
OL
4function proposition_comparaison(devise_id) {
5 var chargement_devise = $.getJSON("/dae/devise/code", {'devise': devise_id});
6 chargement_devise.success(function(data) {
7 var salaire = $("#id_salaire").val();
8 var montant = parseFloat(data.taux_euro) * parseFloat(salaire);
9 $("#salaire-propose-euros").html(clean_float(montant));
10 });
11 chargement_devise.error(function(data) {
12 alert(data.responseText);
13 });
14}
dfc31755 15
179f6b49
OL
16function activateDossierDropDowns() {
17 $('#id_classement, #id_devise').change(loadSalaire);
18}
19
20function loadSalaire() {
059d7fc3
OL
21 var implantation = $('#implantation').val();
22 var devise = $('#implantation').val();
23 var classement = $('#id_classement').val();
24 if (implantation && devise && classement) {
25 $.getJSON('/dae/salaire/' + implantation + '/' + devise + '/' + classement,
26 function(data) {
27 $('#id_salaire').val(clean_float(data.salaire_devise));
28 $('#id_salaire').trigger('change');
29 });
30 }
179f6b49
OL
31}
32
33function round2(n) {
34 return Math.round(n * 100) / 100;
35}
36
5b1e3a13 37function remun_line(input) {
0a085c42
OL
38 var idParts = input.attr('id').split('-');
39 var prefix = idParts[0] + "-" + idParts[1];
40 var field = idParts[2];
41
42 var montant_mensuel = $('#' + prefix + '-montant_mensuel');
43 var montant_annuel = $('#' + prefix + '-montant');
44 var montant_mensuel_euros = $('#' + prefix + '-montant_mensuel_euros');
45 var montant_annuel_euros = $('#' + prefix + '-montant_annuel_euros');
46
47 /* auto calcul a besoin d'un type (autrement ca devient un champs requis)*/
48 if ($('#' + prefix + '-type').val() == '') {
49 montant_mensuel.val('');
50 montant_annuel.val('');
51 montant_mensuel_euros.val('');
52 montant_annuel_euros.val('');
53 return;
54 }
55
56 if (input.attr('id') == montant_mensuel.attr('id') && montant_mensuel.val() != 0) {
57 value = (montant_mensuel.val() * 12);
58 }
59 else {
60 value = (montant_annuel.val());
61 }
62
6d1aa2d3 63 montant_mensuel.val(clean_float(value / 12));
0a085c42
OL
64 montant_annuel.val(value);
65
66 var devise = $('#' + prefix + '-devise').val();
67 var taux = parseFloat(DEVISES[devise]);
68 if (isNaN(taux)) taux = 0;
6d1aa2d3
OL
69 montant_mensuel_euros.text(clean_float(value / 12 * taux))
70 montant_annuel_euros.text(clean_float(value * taux))
5b1e3a13 71
5b1e3a13
OL
72}
73
57bd966c 74function remun_totaux() {
0a085c42 75 $('#global-cost input[type="text"]').each(function() {
5b1e3a13
OL
76 remun_line($(this));
77 });
78
57bd966c
OL
79 var total_cout = 0;
80 $("tr.cout td.cumulable").each(function() {
81 total_cout += clean_float($(this).html());
82 });
83 $("#sous-total-cout").html(total_cout);
84
85 var total_aide = 0;
86 $("tr.aide td.cumulable").each(function() {
87 total_aide += clean_float($(this).html());
88 });
89 $("#sous-total-aide").html(total_aide);
90
10cdfb37 91 var total = total_cout + total_aide;
57bd966c
OL
92 $("#remun-total").html(total);
93
94}
95
179f6b49
OL
96
97activateDossierDropDowns();
98
179f6b49
OL
99/* Ajout des datespickers sur les inputs loadés via AJAX.
100On s'assure qu'on est pas dans le cas initial où ils sont déjà ajoutés.
101(La façon dont c'est fait requiert que les inputs soient uniquement dans la partie AJAX).*/
102function datepicker() {
103 var date_pickers = $(".datetimeshortcuts");
104 if (date_pickers.length == 0)
105 DateTimeShortcuts.init();
106}
107
108function activateEmployeDropDown() {
109 $('#id_employe').change(loadEmploye);
110}
111
112function loadEmploye() {
113 var employeUrl = '/dae/employe/' + $(this).val();
114 $('#form-employe').html('<tr><td>Chargement...</td></tr>')
115 .load(employeUrl, activateEmployeDropDown);
116 var dossierUrl = '/dae/dossier/' + $('#poste').val() +
117 '/' + $(this).val();
118 $('#form-dossier').html('<tr><td>Chargement...</td></tr>')
119 .load(dossierUrl, function() {
120 datepicker();
121 activateDossierDropDowns();
72db8238 122 $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {contrat_mois();});
179f6b49
OL
123 });
124}
125
dfc31755 126$(document).ready(function() {
179f6b49
OL
127
128 /* Lorsqu'on choisit un poste dans la liste on recharge la page avec le
129 poste chargé dans la view (grâce à son id dans l'URL).*/
130 $('#id_poste').change(function() {
131 window.location = '/dae/embauche/' + $(this).val();
132 });
133
134 /* on lance le JS au chargement de la page, la toute première fois,
135 puis on cable le change au select pour le rechargement. */
72db8238 136 //loadEmploye();
179f6b49
OL
137 activateEmployeDropDown();
138
72db8238
OL
139 /* calcul de la différence en mois */
140 $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {
141 contrat_mois();
142 });
143 contrat_mois();
144
5b1e3a13 145 /* totaux remu */
0a085c42 146 $('#global-cost input, #global-cost select').change(function() {
5b1e3a13 147 remun_line($(this));
a80286d4 148 remun_totaux();
5b1e3a13
OL
149 });
150
057763bc 151 /* Ajouter une ligne aux couts globals */
0a085c42 152 /*$('#type-remun').change(function() {
58ad4beb 153 var dossier_id = $('#dossier').attr('dossier');
057763bc
OL
154 if ($(this).val() != '') {
155 $('#global-cost').html('<tr><td>Chargement...</td></tr>')
156 .load('/dae/add-remun/' +
58ad4beb 157 dossier_id + '/' +
057763bc
OL
158 $(this).val(), function() {
159 $('#type-remun').val('');
160 });
161 }
162 });
0a085c42 163 */
57bd966c 164 remun_totaux();
057763bc 165
03b395db
OL
166 /* Traitement de la recherche AJAX pour les dossiers de comparaison */
167 $(".results_on_deck").bind('added', function() {
168
169 /* récupération du choix dans la liste */
170 var input_id = $(this).attr('id').replace('_on_deck', '');
171 var prefix_dossier_connexe = $(this).attr('id').replace('recherche_on_deck', '');
172 var input = $('#'+input_id);
173 var dossier_id = input.val();
174
175 /* interrogation par AJAX pour récupérer les données du dossier */
176 var chargement_dossier = $.getJSON("/dae/dossier_resume/" + dossier_id);
177 chargement_dossier.success(function(data) {
178 $('#' + prefix_dossier_connexe + 'implantation').val(data['implantation']);
179 $('#' + prefix_dossier_connexe + 'poste').val(data['poste']);
180 $('#' + prefix_dossier_connexe + 'personne').val(data['personne']);
181 $('#' + prefix_dossier_connexe + 'montant').val(data['montant']);
182 $('#' + prefix_dossier_connexe + 'devise').val(data['devise']);
183 $('#' + prefix_dossier_connexe + 'montant_euros').val(data['montant_euros']);
184 });
185 chargement_dossier.error(function(data) {
186 alert(data.responseText);
187 });
188
189 /* on ne veut pas afficher la personne en-dessous */
190 $(this).find('div').remove();
191 input.val('');
192
193 });
057763bc 194
dfc31755 195});