totaux locaux
[auf_rh_dae.git] / project / rh / models.py
index a5527b5..15a8ad7 100644 (file)
@@ -247,6 +247,8 @@ class Poste_(AUFMetadata):
     def get_regions(self):
         return [self.implantation.region]
 
+    def get_devise(self):
+        return ValeurPoint.objects.filter(implantation=self.implantation).order_by('annee')[0].devise
 
 class Poste(Poste_):
     __doc__ = Poste_.__doc__
@@ -708,12 +710,6 @@ class Dossier_(AUFMetadata, DevisableMixin):
         ids = [20, ]
         return [r for r in self.remunerations_en_cours().all() if r.type_id in ids]
 
-    def get_total_charges_salariales(self):
-        total = 0.0
-        for r in self.get_charges_salariales():
-            total += r.montant_euros()
-        return total
-
     def get_charges_patronales(self):
         """
         17  Charges patronales
@@ -721,6 +717,79 @@ class Dossier_(AUFMetadata, DevisableMixin):
         ids = [17, ]
         return [r for r in self.remunerations_en_cours().all() if r.type_id in ids]
 
+    def get_remunerations_tierces(self):
+        """
+        2   Salaire MAD
+        """
+        return [r for r in self.remunerations_en_cours().all() if r.type_id in (2, )]
+
+    # DEVISE LOCALE
+
+    def get_total_local_charges_salariales(self):
+        total = 0.0
+        for r in self.get_charges_salariales():
+            total += r.montant
+        return total
+
+    def get_total_local_charges_patronales(self):
+        total = 0.0
+        for r in self.get_charges_patronales():
+            total += float(r.montant)
+        return total
+
+    def get_local_salaire_brut(self):
+        """
+        somme des rémuérations brutes
+        """
+        devise = self.poste.get_devise()
+        total = 0.0
+        for r in self.get_remunerations_brutes():
+            if r.devise != devise:
+                return None
+            total += float(r.montant)
+        return total
+
+    def get_local_salaire_net(self):
+        """
+        salaire brut - charges salariales
+        """
+        devise = self.poste.get_devise()
+        total_charges = 0.0
+        for r in self.get_charges_salariales():
+            if r.devise != devise:
+                return None
+            total_charges += float(r.montant)
+        return self.get_local_salaire_brut() - total_charges
+
+    def get_local_couts_auf(self):
+        """
+        salaire net + charges patronales
+        """
+        devise = self.poste.get_devise()
+        total_charges = 0.0
+        for r in self.get_charges_patronales():
+            if r.devise != devise:
+                return None
+            total_charges += float(r.montant)
+        return self.get_local_salaire_net() + total_charges
+
+    def get_total_local_remunerations_tierces(self):
+        devise = self.poste.get_devise()
+        total = 0.0
+        for r in self.get_remunerations_tierces():
+            if r.devise != devise:
+                return None
+            total += float(r.montant)
+        return total
+
+    # DEVISE EURO
+
+    def get_total_charges_salariales(self):
+        total = 0.0
+        for r in self.get_charges_salariales():
+            total += r.montant_euros()
+        return total
+
     def get_total_charges_patronales(self):
         total = 0.0
         for r in self.get_charges_patronales():
@@ -754,12 +823,6 @@ class Dossier_(AUFMetadata, DevisableMixin):
             total_charges += r.montant_euros()
         return self.get_salaire_net() + total_charges
 
-    def get_remunerations_tierces(self):
-        """
-        2   Salaire MAD
-        """
-        return [r for r in self.remunerations_en_cours().all() if r.type_id in (2, )]
-
     def get_total_remunerations_tierces(self):
         total = 0.0
         for r in self.get_remunerations_tierces():