b6b8be51dc9ac9a0d0464c70a9fc598571d791cb
[auf_rh_dae.git] / project / media / js / dae-embauche.js
1 /*******************************************************************************
2 * EMBAUCHE
3 *******************************************************************************/
4 function 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 }
15
16 function activateDossierDropDowns() {
17 $('#id_classement, #id_devise').change(loadSalaire);
18 }
19
20 function loadSalaire() {
21 $.getJSON('/dae/salaire/' + $('#implantation').val() + '/' +
22 $('#id_devise').val() + '/' + $('#id_classement').val(),
23 function(data) {
24 $('#id_salaire').val(clean_float(data.salaire_devise));
25 $('#id_salaire').trigger('change');
26 });
27 }
28
29 function round2(n) {
30 return Math.round(n * 100) / 100;
31 }
32
33 $('#global-cost input[id^="montant"]').live('keyup', function() {
34 var value = $(this).val(),
35 idParts = $(this).attr('id').split('-'),
36 name = idParts[0],
37 id = idParts[1];
38 if (name == 'montant') {
39 $('#montant_mois-' + id).val(round2(value / 12));
40 } else {
41 value = value * 12;
42 $('#montant-' + id).val(round2(value));
43 }
44 var taux = $('#taux_devise-' + id).val();
45 $('#montant_euro_mois-' + id).text(clean_float(round2(value / taux / 12)));
46 $('#montant_euro-' + id).text(clean_float(round2(value / taux)));
47 });
48
49 activateDossierDropDowns();
50
51 /* Ajout des datespickers sur les inputs loadés via AJAX.
52 On s'assure qu'on est pas dans le cas initial où ils sont déjà ajoutés.
53 (La façon dont c'est fait requiert que les inputs soient uniquement dans la partie AJAX).*/
54 function datepicker() {
55 var date_pickers = $(".datetimeshortcuts");
56 if (date_pickers.length == 0)
57 DateTimeShortcuts.init();
58 }
59
60 function activateEmployeDropDown() {
61 $('#id_employe').change(loadEmploye);
62 }
63
64 function loadEmploye() {
65 var employeUrl = '/dae/employe/' + $(this).val();
66 $('#form-employe').html('<tr><td>Chargement...</td></tr>')
67 .load(employeUrl, activateEmployeDropDown);
68 var dossierUrl = '/dae/dossier/' + $('#poste').val() +
69 '/' + $(this).val();
70 $('#form-dossier').html('<tr><td>Chargement...</td></tr>')
71 .load(dossierUrl, function() {
72 datepicker();
73 activateDossierDropDowns();
74 $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {contrat_mois();});
75 });
76 }
77
78 $(document).ready(function() {
79
80 /* Lorsqu'on choisit un poste dans la liste on recharge la page avec le
81 poste chargé dans la view (grâce à son id dans l'URL).*/
82 $('#id_poste').change(function() {
83 window.location = '/dae/embauche/' + $(this).val();
84 });
85
86 /* on lance le JS au chargement de la page, la toute première fois,
87 puis on cable le change au select pour le rechargement. */
88 //loadEmploye();
89 activateEmployeDropDown();
90
91 /* calcul de la différence en mois */
92 $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {
93 contrat_mois();
94 });
95 contrat_mois();
96
97 /* Ajouter une ligne aux couts globals */
98 $('#type-remun').change(function() {
99 if ($(this).val() != '') {
100 $('#global-cost').html('<tr><td>Chargement...</td></tr>')
101 .load('/dae/add-remun/' +
102 $('#dossier').val() + '/' +
103 $(this).val(), function() {
104 $('#type-remun').val('');
105 });
106 }
107 });
108
109
110 });