From: Jean-Philippe Caissy Date: Thu, 29 Mar 2012 21:22:28 +0000 (-0500) Subject: Masse salariale: ajout de couleur pour les tableaux X-Git-Tag: 1.6.5~158^2~15^2~12 X-Git-Url: http://git.auf.org/?p=auf_rh_dae.git;a=commitdiff_plain;h=9fd09bdc455f2bcd0f0cdae9c85fb1cd79358ec0 Masse salariale: ajout de couleur pour les tableaux --- diff --git a/project/rh/masse_salariale.py b/project/rh/masse_salariale.py index af50852..8f9553b 100644 --- a/project/rh/masse_salariale.py +++ b/project/rh/masse_salariale.py @@ -21,13 +21,14 @@ TYPE_REMUN_BASE = (1,) TYPE_REMUN_FONC_RESP = (7, 8) TYPE_REMUN_EXPAT = (4,) TYPE_REMUN_LOGEMENT = (6,) +TYPE_REMUN_SCOLARITE = (5,) TYPE_REMUN_TRANSP = (9,) TYPE_REMUN_13E = (18,) TYPE_PRIME_INTERIM = (19,) TYPE_REMUN_ALL_INDEMNITES = list(itertools.chain(*(TYPE_REMUN_BSTG, TYPE_REMUN_MAD, TYPE_REMUN_BASE, TYPE_REMUN_FONC_RESP, TYPE_REMUN_EXPAT, TYPE_REMUN_LOGEMENT, TYPE_REMUN_TRANSP, - TYPE_REMUN_13E, TYPE_PRIME_INTERIM))) + TYPE_REMUN_13E, TYPE_PRIME_INTERIM, TYPE_REMUN_SCOLARITE))) TYPE_PRIME_INSTALLATION = (13,) TYPE_PRIME_DEMENAG = (15,) TYPE_PRIME_AVION = (14,) @@ -151,58 +152,68 @@ class MasseSalariale(): {'columnwidth': '2.9cm'}), HEADER_SEPARATOR, ('salaire_theorique', u"Salaire théorique", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#ecab44'}), ('salaire_base_brut', u"Salaire de base brut", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#ecab44'}), ('salaire_complementaire', u"Salaire complémentaire", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#ecab44'}), HEADER_SEPARATOR, ('indemnite_fonctions', u"Indemnités de fonctions", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_expat', u"Indemnités d'expatriation", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), + ('indemnite_scolarite', u"Indemnités de frais de scolarité", + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_logement', u"Indemnités de logement", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_transp', u"Indemnités de transport", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_13e', u"Indemnités 13e mois", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('prime_interim', u"Prime d'intérim", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_autre', u"Autre indemnités", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), ('indemnite_sous_total', u"Sous-total d'indemnités", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fff840'}), HEADER_SEPARATOR, ('prime_installation', u"Prime d'installation", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#d7fb0f'}), ('prime_demenagement', u"Prime de déménagement", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#d7fb0f'}), ('prime_avion', u"Prime d'avion", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#d7fb0f'}), ('prime_autre', u"Autre prime", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#d7fb0f'}), ('prime_sous_total', u"Total des primes", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#d7fb0f'}), HEADER_SEPARATOR, ('charges_patronales', u"Charges patronales", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fb680f'}), ('charges_autre', u"Autres charges patronales", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fb680f'}), ('charges_sous_total', u"Sous-total des charges patronales", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#fb680f'}), HEADER_SEPARATOR, - ('sous_total_traitement_annee', u"Total traitement annuel"), - ('sous_total_indemnite_annee', u"Total indemnités annuel"), - ('sous_total_accessoire_annee', u"Total accessoires annuel"), - ('sous_total_charges_annee', u"Total charges annuel"), + ('sous_total_traitement_annee', u"Total traitement annuel", + {'background-color': '#f88680'}), + ('sous_total_indemnite_annee', u"Total indemnités annuel", + {'background-color': '#f88680'}), + ('sous_total_accessoire_annee', u"Total accessoires annuel", + {'background-color': '#f88680'}), + ('sous_total_charges_annee', u"Total charges annuel", + {'background-color': '#f88680'}), HEADER_SEPARATOR, ('masse_salariale', u"Masse salariale annuelle", - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#e6c6ed'}), ('masse_salariale_annee', u"Masse salariale %s" % self.annee, - {'columnwidth': '2.5cm'}), + {'columnwidth': '2.5cm', 'background-color': '#e6c6ed'}), ('masse_salariale_annee_euro', u"Masse salariale %s EUR" % \ - self.annee, {'columnwidth': '2.5cm'}), + self.annee, { + 'columnwidth': '2.5cm', + 'background-color': '#e6c6ed' + } + ), ) grand_total = 0.0 @@ -271,6 +282,7 @@ class MasseSalariale(): indemnites = { 'fonc_resp': 0.0, 'expat': 0.0, + 'scolarite': 0.0, 'logement': 0.0, 'transp': 0.0, '13e': 0.0, @@ -311,6 +323,9 @@ class MasseSalariale(): if r.type_id in TYPE_REMUN_EXPAT: indemnites['expat'] += montant + if r.type_id in TYPE_REMUN_SCOLARITE: + indemnites['scolarite'] += montant + if r.type_id in TYPE_REMUN_LOGEMENT: indemnites['logement'] += montant @@ -435,6 +450,8 @@ class MasseSalariale(): regime * rapport_nombre_jours, 'indemnite_expat': indemnites['expat'] * regime * \ rapport_nombre_jours, + 'indemnite_scolarite': indemnites['scolarite'] * \ + regime * rapport_nombre_jours, 'indemnite_logement': indemnites['logement'] * \ regime * rapport_nombre_jours, 'indemnite_transp': indemnites['transp'] * regime * \ diff --git a/project/rh/templates/rh/rapports/masse_salariale.html b/project/rh/templates/rh/rapports/masse_salariale.html index 4ff9be5..a250df2 100644 --- a/project/rh/templates/rh/rapports/masse_salariale.html +++ b/project/rh/templates/rh/rapports/masse_salariale.html @@ -66,7 +66,13 @@   {% else %} {% if row|hash:column|is_float %} - {{ row|hash:column|floatformat:2|localize }} + + {% comment %} + {% if options.backgroundcolor %} + style="background-color:{{ options.backgroundcolor }}" + {% endif %} + {% endcomment %} + {{ row|hash:column|floatformat:2|localize }} {% if forloop.last %} EUR {% else %} diff --git a/project/rh/templates/rh/rapports/table_header.html b/project/rh/templates/rh/rapports/table_header.html index dad0517..5cf8a98 100644 --- a/project/rh/templates/rh/rapports/table_header.html +++ b/project/rh/templates/rh/rapports/table_header.html @@ -1,4 +1,7 @@ -{% for header in headers %} +{% for header in headers %} {% if header.sortable %}{% endif %} {{ header.text }} {% if header.sortable %}{% endif %} diff --git a/project/rh/templatetags/rapports.py b/project/rh/templatetags/rapports.py index 72f3ccc..2f251e9 100644 --- a/project/rh/templatetags/rapports.py +++ b/project/rh/templatetags/rapports.py @@ -138,7 +138,7 @@ def filter_implantation_remun(context): @register.inclusion_tag('rh/rapports/table_header.html', takes_context=True) def table_header(context, headers): - return {'headers': headers} + return {'headers': headers} def get_query_string(request, new_params=None, remove=None): if new_params is None: new_params = {} @@ -215,7 +215,8 @@ class SortHeaders: "class_attr": "sorted %s" % class_order if self.field_sorted(h[0]) else "", "sortable": self.field_sorted(h[0]), "url": url, - "text": h[1] + "text": h[1], + "style_attr": h[2] if len(h) > 2 else "", } def field_sorted(self, field): diff --git a/project/rh/views.py b/project/rh/views.py index cdf4874..907ef0d 100644 --- a/project/rh/views.py +++ b/project/rh/views.py @@ -260,11 +260,15 @@ def rapports_masse_salariale(request): request.GET.get('ne_pas_grouper', False)) if masse.rapport: c['rapport'] = masse.rapport - headers = masse.headers c['header_keys'] = [h[0] for h in masse.headers] - h = SortHeaders(request, headers, order_field_type="ot", + #on enleve le background pour le header + for h in (h for h in masse.headers if 'background-color' in h[2]): + h[2]['background'] = 'none' + h = SortHeaders(request, masse.headers, order_field_type="ot", not_sortable=c['header_keys'], order_field="o") c['headers'] = list(h.headers()) + for key, nom, opts in masse.headers: + c['headers'] c['total'] = masse.grand_totaux[0] c['total_euro'] = masse.grand_totaux[1] c['colspan'] = len(c['header_keys']) - 2