ss-total remun
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 26 Apr 2011 20:30:02 +0000 (16:30 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 26 Apr 2011 20:30:02 +0000 (16:30 -0400)
project/dae/models.py
project/dae/templates/dae/embauche-remun.html
project/media/js/dae-embauche.js
project/media/js/dae.js

index a26afc9..3f9bf1b 100644 (file)
@@ -374,6 +374,18 @@ class Dossier(models.Model):
     def __unicode__(self):
         return u'%s - %s' % (self.poste.nom, self.employe)
 
     def __unicode__(self):
         return u'%s - %s' % (self.poste.nom, self.employe)
 
+    def get_couts_auf(self):
+        """
+        On retire les MAD BSTG
+        """
+        return [r for r in self.remuneration_set.all() if r.type_id not in (2, )]
+
+    def get_aides_auf(self):
+        """
+        On récupère les MAD BSTG
+        """
+        return [r for r in self.remuneration_set.all() if r.type_id in (2, )]
+
 # Tester l'enregistrement car les models.py sont importés au complet
 if not reversion.is_registered(Dossier):
     reversion.register(Dossier)
 # Tester l'enregistrement car les models.py sont importés au complet
 if not reversion.is_registered(Dossier):
     reversion.register(Dossier)
index cc499e5..4818721 100644 (file)
@@ -6,8 +6,54 @@
   <th colspan="2">Conversion en Euros</th>
   <th>Précision</th>
 </tr>
   <th colspan="2">Conversion en Euros</th>
   <th>Précision</th>
 </tr>
-{% for remun in dossier.remuneration_set.all %}
+
+<tr>
+    <th colspan="5">Coûts AUF</th>
+    <th id="sous-total-cout" class="montant"></th>
+    <th>EUR</th>
+</tr>
+
+{% for remun in dossier.get_couts_auf %}
+  <tr class="cout">
+    <td>{{ remun.type }}</td>
+    <td>
+        {{ remun.devise }}
+        <input type="hidden" id="taux_devise-{{ remun.id }}"
+               name="taux_devise-{{ remun.id }}"
+               value="{{ remun.taux_devise }}" />
+    </td>
+    <td>
+        <input type="text" id="montant_mois-{{ remun.id }}"
+               name="montant_mois-{{ remun.id }}"
+               value="{{ remun.montant_mois }}" />
+    </td>
+    <td><input type="text" id="montant-{{ remun.id }}"
+               name="cg-montant-{{ remun.id }}"
+               value="{{ remun.montant|default_if_none:'' }}" />
+    </td>
+    <td id="montant_euro_mois-{{ remun.id }}" class="montant">
+        {{ remun.montant_euro_mois }}</td>
+    <td id="montant_euro-{{ remun.id }}" class="montant cumulable">{{ remun.montant_euro }}</td>
+    <td><input type="text" name="cg-precision-{{ remun.id }}" 
+               value="{{ remun.precision|default_if_none:'' }}" /></td>
+  </tr>
+{% empty %}
   <tr>
   <tr>
+    <td colspan="6">
+      Aucun coût au registre
+    </td>
+  </tr>
+{% endfor %}
+
+
+<tr>
+    <th colspan="5">BSTG - Salaire de mise à disposition</th>
+    <th id="sous-total-aide" class="montant"></th>
+    <th>EUR</th>
+</tr>
+
+{% for remun in dossier.get_aides_auf %}
+  <tr class="aide">
     <td>{{ remun.type }}</td>
     <td>
         {{ remun.devise }}
     <td>{{ remun.type }}</td>
     <td>
         {{ remun.devise }}
@@ -26,7 +72,7 @@
     </td>
     <td id="montant_euro_mois-{{ remun.id }}" class="montant">
         {{ remun.montant_euro_mois }}</td>
     </td>
     <td id="montant_euro_mois-{{ remun.id }}" class="montant">
         {{ remun.montant_euro_mois }}</td>
-    <td id="montant_euro-{{ remun.id }}" class="montant">{{ remun.montant_euro }}</td>
+    <td id="montant_euro-{{ remun.id }}" class="montant cumulable">{{ remun.montant_euro }}</td>
     <td><input type="text" name="cg-precision-{{ remun.id }}" 
                value="{{ remun.precision|default_if_none:'' }}" /></td>
   </tr>
     <td><input type="text" name="cg-precision-{{ remun.id }}" 
                value="{{ remun.precision|default_if_none:'' }}" /></td>
   </tr>
@@ -37,3 +83,9 @@
     </td>
   </tr>
 {% endfor %}
     </td>
   </tr>
 {% endfor %}
+
+<tr>
+    <th colspan="5">TOTAL</th>
+    <th id="remun-total" class="montant"></th>
+    <th>EUR</th>
+</tr>
index b6b8be5..4ab1e9c 100644 (file)
@@ -30,6 +30,24 @@ function round2(n) {
     return Math.round(n * 100) / 100;
 }
 
     return Math.round(n * 100) / 100;
 }
 
+function remun_totaux() {
+    var total_cout = 0;
+    $("tr.cout td.cumulable").each(function() {
+        total_cout += clean_float($(this).html());
+    });
+    $("#sous-total-cout").html(total_cout);
+
+    var total_aide = 0;
+    $("tr.aide td.cumulable").each(function() {
+        total_aide += clean_float($(this).html());
+    });
+    $("#sous-total-aide").html(total_aide);
+
+    var total = total_cout - total_aide;
+    $("#remun-total").html(total);
+
+}
+
 $('#global-cost input[id^="montant"]').live('keyup', function() {
     var value = $(this).val(),
         idParts = $(this).attr('id').split('-'),
 $('#global-cost input[id^="montant"]').live('keyup', function() {
     var value = $(this).val(),
         idParts = $(this).attr('id').split('-'),
@@ -44,6 +62,7 @@ $('#global-cost input[id^="montant"]').live('keyup', function() {
     var taux = $('#taux_devise-' + id).val();
     $('#montant_euro_mois-' + id).text(clean_float(round2(value / taux / 12)));
     $('#montant_euro-' + id).text(clean_float(round2(value / taux)));
     var taux = $('#taux_devise-' + id).val();
     $('#montant_euro_mois-' + id).text(clean_float(round2(value / taux / 12)));
     $('#montant_euro-' + id).text(clean_float(round2(value / taux)));
+    remun_totaux();
 });
 
 activateDossierDropDowns();
 });
 
 activateDossierDropDowns();
@@ -105,6 +124,7 @@ $(document).ready(function() {
             });
         }
     });
             });
         }
     });
+    remun_totaux();
 
 
 });
 
 
 });
index e464166..828dfe2 100644 (file)
@@ -1,10 +1,12 @@
 /* string to float */
 function clean_float(value){
 /* string to float */
 function clean_float(value){
-    if (isNaN(value) || value == undefined)
+    if (isNaN(value) || value == undefined || value == "") {
         output = 0;
         output = 0;
-    else
+    }
+    else {
         output = parseFloat(value);
         output = Math.round(output*100)/100;
         output = parseFloat(value);
         output = Math.round(output*100)/100;
+    }
     return parseInt(output);
 }
 
     return parseInt(output);
 }