fix redirection dans la liste si on choisi nouveau poste, on ne fait rien
[auf_rh_dae.git] / project / media / js / dae-poste.js
index 9ebda6f..e471611 100644 (file)
@@ -73,7 +73,14 @@ function recalculer_ligne(element) {
     var ligne = element.parents("tr");
     var inputs = ligne.find("input, select");
     var salaire_input;
+    var salaire;
     var valeur_point_input;
+    var classement_id;
+    var indemn_expat;
+    var indemn_fct;
+    var charges_patronales;
+    var autre;
+
     inputs.each(function() {
         var input = $(this);
 
@@ -87,8 +94,14 @@ function recalculer_ligne(element) {
             salaire_input = input;
             salaire = clean_float(input.val())
         }
-        if (input.attr('id').match('id_indemn*')) {
-            indemn = clean_float(input.val())
+        if (input.attr('id').match('id_indemn_expat*')) {
+            indemn_expat = clean_float(input.val())
+        }
+        if (input.attr('id').match('id_indemn_fct*')) {
+            indemn_fct = clean_float(input.val())
+        }
+        if (input.attr('id').match('id_charges_patronales*')) {
+            charges_patronales = clean_float(input.val())
         }
         if (input.attr('id').match('id_autre*')) {
             autre = clean_float(input.val())
@@ -111,10 +124,9 @@ function recalculer_ligne(element) {
             salaire = clean_float(valeur_point * coeff);
             salaire_input.val(salaire);
         }
-
         taux_euro = parseFloat(ligne.find(".taux").html())
         total = 0;
-        total = salaire + indemn + autre;
+        total = salaire + indemn_expat + indemn_fct + charges_patronales + autre;
         total_euro = total * taux_euro;
 
         ligne.find(".total-devise").text(clean_float(total));
@@ -130,12 +142,30 @@ function recalculer_tout() {
     });
 }
 
+function setup_taux_ligne(element) {
+  var input = element;
+  var ligne = input.parents("tr");
+  var chargement_devise = $.getJSON("/dae/devise/code", {'devise': input.val()});
+  chargement_devise.success(function(data) {
+      ligne.find(".taux").text(data.taux_euro)
+      ligne.find(".devise_code").text(data.devise_code)
+      recalculer_ligne(input);
+  });
+  chargement_devise.error(function(data) {
+      alert(data.responseText);
+      ligne.find(".taux").text(0)
+      ligne.find(".devise_code").text("???")
+  });
+}
+
 $(document).ready(function() {
 
     /* Lorsqu'on choisit un poste dans la liste on recharge la page avec le
     poste chargé dans la view (grâce à son id dans l'URL).*/
     $('#id_poste').change(function() {
-        window.location = '/dae/poste/' + $(this).val();
+        var id_poste = $(this).val();
+        if (id_poste)
+            window.location = '/dae/poste/' + id_poste;
     });
 
     /* La fonctionnalité de présélection, est activé uniquement si aucune implantation n'a déjà été
@@ -184,20 +214,7 @@ $(document).ready(function() {
     });
 
     $('#id_devise_min, #id_devise_max').change(function(e) {
-        var input = $(this);
-        var ligne = input.parents("tr");
-        var chargement_devise = $.getJSON("/dae/devise/code", {'devise': this.value});
-        chargement_devise.success(function(data) {
-            ligne.find(".taux").text(data.taux_euro)
-            ligne.find(".devise_code").text(data.devise_code)
-            recalculer_ligne(input);
-        });
-        chargement_devise.error(function(data) {
-            alert(data.responseText);
-            ligne.find(".taux").text(0)
-            ligne.find(".devise_code").text("???")
-        });
-
+        setup_taux_ligne($(this));
     });
 
     $('#id_classement_min, #id_classement_max, #classement input, #classement select').change(function(e) {
@@ -205,7 +222,11 @@ $(document).ready(function() {
     });
 
     /* au chargement, on calcule tout */
-    recalculer_tout();
+    $('#id_devise_min, #id_devise_max').each(function() {
+        setup_taux_ligne($(this));
+    });
+    // le setup de la devise par ligne est déjà suivi d'un recalcul de la ligne automatique
+    //recalculer_tout();
 
     /* calcul de la différence en mois */
     $("#id_date_debut, #id_date_fin").focusout(function() {
@@ -221,4 +242,32 @@ $(document).ready(function() {
     });
     elements_comparaison($('#id_devise_comparaison').val());
 
+    /* Traitement de la recherche AJAX pour les postes de comparaison */
+    $(".comparaison-interne .results_on_deck").bind('added', function() {
+        /* récupération du choix dans la liste */
+        var input_id = $(this).attr('id').replace('_on_deck', '');
+        var prefix_poste_connexe = $(this).attr('id').replace('recherche_on_deck', '');
+        var input = $('#'+input_id);
+        var poste_id = input.val();
+
+        /* interrogation par AJAX pour récupérer les données du poste */
+        var chargement_poste = $.getJSON("/dae/poste_resume/" + poste_id);
+        chargement_poste.success(function(data) {
+            $('#' + prefix_poste_connexe + 'implantation').val(data['implantation']);
+            $('#' + prefix_poste_connexe + 'nom').val(data['poste']);
+            $('#' + prefix_poste_connexe + 'montant').val(data['montant']);
+            $('#' + prefix_poste_connexe + 'devise').val(data['devise']);
+            $('#' + prefix_poste_connexe + 'montant_euros').val(data['montant_euros']);
+        });
+        chargement_poste.error(function(data) {
+            alert(data.responseText);
+        });
+        
+        /* on ne veut pas afficher la personne en-dessous */
+        $(this).find('div').remove();
+        input.val('');
+
+    });
+
+
 });