994b9f470daa1d1da1a872d5aa39d4a16746ec71
[auf_rh_dae.git] / project / media / js / dae.js
1 /* string to float */
2 function clean_float(value){
3 if (value == undefined)
4 output = 0;
5 else
6 output = parseFloat(value);
7 output = Math.round(output*100)/100;
8 return output;
9 }
10
11 function charger_valeurs_point(implantation_id) {
12 var params = {'implantation_id' : implantation_id};
13 $.getJSON('/dae/liste_valeurs_point', params, function(data) {
14 var items = [];
15
16 var options = "";
17 $.each(data, function() {
18 options += '<option value="' + this.id + '">' + this.label + '</option>';
19 });
20
21 $("#id_valeur_point_min").html(options);
22 $("#id_valeur_point_max").html(options);
23 });
24 }
25
26 function recalculer(element) {
27 var ligne = element.parents("tr");
28 var inputs = ligne.find("input");
29 inputs.each(function() {
30 var input = $(this);
31 /*
32 console.log(input.attr('id'))
33 id_coefficient_min
34 valeur_min
35 devise_min_code
36 id_salaire_min
37 id_indemn_min
38 id_autre_min
39 taux_min_euro
40 */
41 if (input.attr('id').match('id_coefficient*'))
42 coeff = clean_float(input.val())
43 if (input.attr('id').match('id_salaire*'))
44 salaire = clean_float(input.val())
45 if (input.attr('id').match('id_indemn*'))
46 indemn = clean_float(input.val())
47 if (input.attr('id').match('id_autre*'))
48 autre = clean_float(input.val())
49
50 });
51
52 taux_euro = clean_float(ligne.find(".taux").html())
53 total = 0;
54 total = salaire + indemn + autre;
55 total_euro = total * taux_euro;
56
57 ligne.find(".total-devise").text(total.toFixed(2));
58 ligne.find(".total-euro").text(total_euro.toFixed(2));
59
60 }
61
62 $(document).ready(function() {
63
64 /* La fonctionnalité de présélection, est activé uniquement si aucune implantation n'a déjà été
65 sélectionnée.
66 Lorsque l'implantation est changée, on ajuste les valeurs de points en fonction de cette
67 sélection, UNIQUEMENT si aucune valeur n'est encore définie. */
68 var implantation_id = $("#id_implantation").val();
69 if (implantation_id == "") {
70
71 $("#id_implantation").change(function() {
72 var implantation_id = this.value;
73 charger_valeurs_point(implantation_id);
74 });
75 }
76
77
78 $('#id_valeur_point_min, #id_valeur_point_max').change(function(e) {
79 var vp_input = $(this);
80 var ligne = vp_input.parents("tr");
81
82 $.getJSON("/dae/devise", {'valeur_point': this.value}, function(data){
83 ligne.find(".valeur-point").text(data.valeur)
84 var selects = ligne.find("select");
85 selects.each(function() {
86 var s = $(this);
87 if (s.attr('id').match('id_devise*'))
88 s.val(data.devise)
89 ligne.find(".taux").text(data.taux_euro)
90 ligne.find(".devise_code").text(data.devise_code)
91 });
92 });
93 });
94
95 $('#id_devise_min, #id_devise_max').change(function(e) {
96 var input = $(this);
97 var ligne = input.parents("tr");
98 $.getJSON("/dae/devise/code", {'devise': this.value}, function(data){
99 ligne.find(".taux").text(data.taux_euro)
100 ligne.find(".devise_code").text(data.devise_code)
101 });
102
103 });
104
105 $('#id_classement_min, #id_classement_max').change(function(e) {
106 var classement = $(this);
107 var ligne = classement.parents("tr");
108 $.getJSON("/dae/coefficient", {'classement': classement.val()}, function(data){
109 var inputs = ligne.find("input");
110 inputs.each(function() {
111 var input = $(this);
112 if (input.attr('id').match('id_coefficient*'))
113 input.val(data.coefficient);
114 });
115 });
116
117 });
118
119
120 $('#classement input').change(function() {
121 recalculer($(this));
122 });
123
124 });