justification embauche
[auf_rh_dae.git] / project / media / js / dae-embauche.js
index a90b28c..e1706a9 100644 (file)
@@ -2,5 +2,95 @@
 *          EMBAUCHE
 *******************************************************************************/
 
+function activateDossierDropDowns() {
+    $('#id_classement, #id_devise').change(loadSalaire);
+}
+
+function loadSalaire() {
+    $.getJSON('{% url salaire %}/' + $('#implantation').val() + '/' +
+              $('#id_devise').val() + '/' + $('#id_classement').val(),
+      function(data) {
+        $('#id_salaire').val(data.salaire_devise);
+      });
+}
+
+function round2(n) {
+    return Math.round(n * 100) / 100;
+}
+
+$('#global-cost input[id^="montant"]').live('keyup', function() {
+    var value = $(this).val(),
+        idParts = $(this).attr('id').split('-'),
+        name = idParts[0],
+        id = idParts[1];
+    if (name == 'montant') {
+        $('#montant_mois-' + id).val(round2(value / 12));
+    } else {
+        value = value * 12;
+        $('#montant-' + id).val(round2(value));
+    }
+    var taux = $('#taux_devise-' + id).val();
+    $('#montant_euro_mois-' + id).text(round2(value / taux / 12));
+    $('#montant_euro-' + id).text(round2(value / taux));
+});
+
+activateDossierDropDowns();
+
+$('#type-remun').change(function() {
+    if ($(this).val() != '') {
+        $('#global-cost').html('<tr><td>Chargement...</td></tr>')
+                         .load('{% url add_remun %}/' +
+                               $('#dossier').val() + '/' +
+                               $(this).val(), function() {
+            $('#type-remun').val('');
+        });
+    }
+});
+
+/* Ajout des datespickers sur les inputs loadés via AJAX.
+On s'assure qu'on est pas dans le cas initial où ils sont déjà ajoutés.
+(La façon dont c'est fait requiert que les inputs soient uniquement dans la partie AJAX).*/
+function datepicker() {
+    var date_pickers = $(".datetimeshortcuts");
+    if (date_pickers.length == 0)
+        DateTimeShortcuts.init();
+}
+
+function activateEmployeDropDown() {
+    $('#id_employe').change(loadEmploye);
+}
+
+function loadEmploye() {
+    var employeUrl = '/dae/employe/' + $(this).val();
+    $('#form-employe').html('<tr><td>Chargement...</td></tr>')
+        .load(employeUrl, activateEmployeDropDown);
+    var dossierUrl = '/dae/dossier/' + $('#poste').val() +
+        '/' + $(this).val();
+    $('#form-dossier').html('<tr><td>Chargement...</td></tr>')
+        .load(dossierUrl, function() {
+                datepicker();
+                activateDossierDropDowns();
+                $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {contrat_mois();});
+            });
+}
+
 $(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/embauche/' + $(this).val();
+    });
+
+    /* on lance le JS au chargement de la page, la toute première fois,
+    puis on cable le change au select pour le rechargement. */
+    //loadEmploye();
+    activateEmployeDropDown();
+
+    /* calcul de la différence en mois */
+    $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {
+        contrat_mois();
+    });
+    contrat_mois();
+
 });