Masse salariale: correction valeurs masse salariale globale
authorJean-Philippe Caissy <jpcaissy@piji.ca>
Fri, 30 Mar 2012 21:50:06 +0000 (16:50 -0500)
committerJean-Philippe Caissy <jpcaissy@piji.ca>
Fri, 30 Mar 2012 21:50:06 +0000 (16:50 -0500)
project/rh/masse_salariale.py

index f166add..fdedc90 100644 (file)
@@ -195,13 +195,17 @@ class MasseSalariale():
                 ('charges_sous_total', u"Sous-total des charges patronales",
                     {'columnwidth': '2.5cm', 'background-color': '#fb680f'}),
                 HEADER_SEPARATOR,
-                ('sous_total_traitement_annee', u"Total traitement annuel",
+                ('sous_total_traitement_annee', u"Total traitement %s" % \
+                        self.annee,
                     {'background-color': '#f88680'}),
-                ('sous_total_indemnite_annee', u"Total indemnités annuel",
+                ('sous_total_indemnite_annee', u"Total indemnités %s" % \
+                        self.annee,
                     {'background-color': '#f88680'}),
-                ('sous_total_accessoire_annee', u"Total accessoires annuel",
+                ('sous_total_accessoire_annee', u"Total accessoires %s" % \
+                        self.annee,
                     {'background-color': '#f88680'}),
-                ('sous_total_charges_annee', u"Total charges annuel",
+                ('sous_total_charges_annee', u"Total charges %s" % \
+                        self.annee,
                     {'background-color': '#f88680'}),
                 HEADER_SEPARATOR,
                 ('masse_salariale', u"Masse salariale annuelle",
@@ -313,81 +317,82 @@ class MasseSalariale():
                     dossier.date_debut, dossier.date_fin,
                     date_debut, date_fin)
 
+            masse_salariale = 0.0
+            masse_salariale_annee = 0.0
             for r in remuns:
-                montant = float(r.montant) * (
-                            (self.calculer_nombre_jours(
-                                dossier.date_debut, dossier.date_fin,
-                                date_debut, date_fin)).days /
-                                    float(rapport_date_delta.days)
-                    )
+                montant = float(r.montant)
+                facteur = self.calculer_nombre_jours(
+                        dossier.date_debut, dossier.date_fin, date_debut,
+                        date_fin).days / float(rapport_date_delta.days)
 
                 if r.type_id in TYPE_REMUN_MAD:
-                    salaire_complement += montant
+                    salaire_complement += montant * facteur
+                else:
+                    masse_salariale += montant
+                    masse_salariale_annee += montant * facteur
 
                 if r.type_id in TYPE_REMUN_BASE:
-                    salaire_base += montant
+                    salaire_base += montant * facteur
 
                 if r.type_id in TYPE_REMUN_FONC_RESP:
-                    indemnites['fonc_resp'] += montant
+                    indemnites['fonc_resp'] += montant * facteur
 
                 if r.type_id in TYPE_REMUN_EXPAT:
-                    indemnites['expat'] += montant
+                    indemnites['expat'] += montant * facteur
 
                 if r.type_id in TYPE_REMUN_SCOLARITE:
-                    indemnites['scolarite'] += montant
+                    indemnites['scolarite'] += montant * facteur
 
                 if r.type_id in TYPE_REMUN_LOGEMENT:
-                    indemnites['logement'] += montant
+                    indemnites['logement'] += montant * facteur
 
                 if r.type_id in TYPE_REMUN_TRANSP:
-                    indemnites['transp'] += montant
+                    indemnites['transp'] += montant * facteur
 
                 if r.type_id in TYPE_REMUN_13E:
-                    indemnites['13e'] += montant
+                    indemnites['13e'] += montant * facteur
 
                 if r.type_id in TYPE_PRIME_INTERIM:
-                    indemnites['interim'] += montant
+                    indemnites['interim'] += montant * facteur
 
                 if r.type_id not in TYPE_REMUN_ALL_INDEMNITES \
                         and r.type.nature_remuneration == TYPE_NATURE_INDEMN:
-                    indemnites['autre_recurr'] += montant
+                    indemnites['autre_recurr'] += montant * facteur
 
                 if r.type_id in TYPE_PRIME_INSTALLATION:
-                    primes['installation'] += montant
+                    primes['installation'] += montant * facteur
 
                 if r.type_id in TYPE_PRIME_DEMENAG:
-                    primes['demenagement'] += montant
+                    primes['demenagement'] += montant * facteur
 
                 if r.type_id in TYPE_PRIME_AVION:
-                    primes['avion'] += montant
+                    primes['avion'] += montant * facteur
 
                 if r.type_id not in TYPE_PRIME_ALL and \
                         r.type.nature_remuneration == TYPE_NATURE_PAIEMENT:
-                    primes['autre'] += montant
+                    primes['autre'] += montant * facteur
 
                 if r.type_id in TYPE_CHARGE_PATRONALE:
-                    charges['patronale'] += montant
+                    charges['patronale'] += montant * facteur
 
                 if r.type_id not in TYPE_CHARGE_ALL and \
                         r.type.nature_remuneration == TYPE_NATURE_CHARGES:
-                    charges['autre'] += montant
+                    charges['autre'] += montant * facteur
 
                 if r.type.nature_remuneration == TYPE_NATURE_INDEMN:
-                    total_remun_annee['indemnite'] += montant
+                    total_remun_annee['indemnite'] += montant * facteur
 
                 if r.type.nature_remuneration == TYPE_NATURE_PAIEMENT:
-                    total_remun_annee['accessoire'] += montant
+                    total_remun_annee['accessoire'] += montant * facteur
 
                 if r.type.nature_remuneration == TYPE_NATURE_CHARGES:
-                    total_remun_annee['charges'] += montant
+                    total_remun_annee['charges'] += montant * facteur
 
                 if r.type.nature_remuneration == TYPE_NATURE_TRAITEMENT:
-                    total_remun_annee['traitement'] += montant
+                    total_remun_annee['traitement'] += montant * facteur
 
             total_indemnites = sum(indemnites.values())
 
-            masse_salariale = (salaire_base + total_indemnites + \
-                            sum(primes.values()) + sum(charges.values()))
             masse_salariale_euro = rh.Remuneration(montant=masse_salariale,
                         devise=remuns[0].devise)
             self.convertir(masse_salariale_euro)
@@ -463,20 +468,19 @@ class MasseSalariale():
                     'prime_avion': primes['avion'] * regime,
                     'prime_autre': primes['autre'] * regime,
                     'prime_sous_total': sum(primes.values()) * regime,
-                    'charges_patronales': charges['patronale'],
-                    'charges_autre': charges['autre'],
-                    'charges_sous_total': sum(charges.values()),
+                    'charges_patronales': charges['patronale'] * regime,
+                    'charges_autre': charges['autre'] * regime,
+                    'charges_sous_total': sum(charges.values()) * regime,
                     'sous_total_traitement_annee': \
-                            total_remun_annee['traitement'],
+                            total_remun_annee['traitement'] * regime,
                     'sous_total_indemnite_annee': \
-                            total_remun_annee['indemnite'],
+                            total_remun_annee['indemnite'] * regime,
                     'sous_total_accessoire_annee': \
-                            total_remun_annee['accessoire'],
+                            total_remun_annee['accessoire'] * regime,
                     'sous_total_charges_annee': \
-                            total_remun_annee['charges'],
-                    'masse_salariale': masse_salariale,
-                    'masse_salariale_annee': masse_salariale * \
-                            regime,
+                            total_remun_annee['charges'] * regime,
+                    'masse_salariale': masse_salariale * regime,
+                    'masse_salariale_annee': masse_salariale_annee * regime,
                     'masse_salariale_annee_euro': \
                             masse_salariale_euro.montant * regime,
                     'sep': ods.Separator(),
@@ -494,8 +498,8 @@ class MasseSalariale():
 
         self.grand_totaux = (grand_total, grand_total_euro)
 
-    def calculer_nombre_jours(self,debut, fin, debut_limite, fin_limite):
-        """Calcul le nombre de jours entre fin et debut, sans dépasser 
+    def calculer_nombre_jours(self, debut, fin, debut_limite, fin_limite):
+        """Calcul le nombre de jours entre fin et debut, sans dépasser
         les limites. Si debut ou fin set null, on prend debut_limite/fin_limi
         """