[#3165] Remplacé les filtres et protection par région pour des filtres et protections...
[auf_rh_dae.git] / project / rh / ods.py
CommitLineData
c99116c3
JPC
1# encoding: utf-8
2
fc62be5d
EMS
3import odsgen
4
5
6def masse_salariale(lignes, annee, titres_traitements, titres_indemnites,
7 titres_primes, titres_charges, masse_salariale_totale):
8 doc = odsgen.Document()
9 doc.add_iso_date_style('iso-date')
10
11 table = doc.add_table(name=u'Masse salariale')
12 for width in (
13 ['1.75cm', '5cm', '4cm', '3cm', '3.5cm', '5cm', '4cm', '6cm',
14 '14cm', '2.5cm', '1.5cm', '4.5cm', '3cm', '1.5cm', '3.75cm',
15 '0.5cm', '2.5cm', '2cm', '3cm', '0.5cm', '1.5cm', '4cm',
16 '3.25cm', '5cm', '0.5cm', '4.25cm'] +
17 ['5cm'] * len(titres_traitements) + ['4cm', '0.5cm'] +
18 ['5cm'] * len(titres_indemnites) + ['4cm', '0.5cm'] +
19 ['5cm'] * len(titres_primes) + ['4cm', '0.5cm'] +
20 ['5cm'] * len(titres_charges) + ['4cm', '0.5cm'] +
21 ['3.75cm'] * 4 + ['0.5cm', '2.75cm', '4cm']
22 ):
23 table.add_column(columnwidth=width)
24
25 row = table.add_row()
26 row.add_cells([
27 u'Bureau', u'Pays', u'Implantation', u'Valeur du point',
28 u"Numéro d'employé", u'Nom', u'Prénom', u'Type de poste',
29 u'Intitulé du poste', u'Niveau actuel', u'Points',
30 u'Régime de travail annuel', u'Local / Expatrié', u'Statut',
31 u'Date de fin de contrat'
32 ], fontweight='bold')
33 row.add_cell(backgroundcolor='#d3d3d3')
34 row.add_cells([
35 u'Date de début', u'Date de fin', u'Nombre de jours'
36 ], fontweight='bold')
37 row.add_cell(backgroundcolor='#d3d3d3')
38 row.add_cells([
39 u'Devise', u'Salaire BSTG ANNUEL', u'Salaire BSTG EUR',
40 u'Organisme BSTG'
41 ], fontweight='bold')
42 row.add_cell(backgroundcolor='#d3d3d3')
43 row.add_cells(
44 [u'Salaire théorique annuel'] + titres_traitements +
45 [u'Total des traitements'],
46 backgroundcolor='#ecab44', fontweight='bold'
47 )
48 row.add_cell(backgroundcolor='#d3d3d3')
49 row.add_cells(
50 titres_indemnites + [u'Total des indemnités'],
51 backgroundcolor='#fff840', fontweight='bold'
52 )
53 row.add_cell(backgroundcolor='#d3d3d3')
54 row.add_cells(
55 titres_primes + [u'Total des primes'],
56 backgroundcolor='#d7fb0f', fontweight='bold'
57 )
58 row.add_cell(backgroundcolor='#d3d3d3')
59 row.add_cells(
60 titres_charges + [u'Total des charges'],
61 backgroundcolor='#fb680f', fontweight='bold'
62 )
63 row.add_cell(backgroundcolor='#d3d3d3')
64 row.add_cell(
65 u'Total des traitements', backgroundcolor='#ecab44',
66 fontweight='bold'
67 )
68 row.add_cell(
69 u'Total des indemnités', backgroundcolor='#fff840',
70 fontweight='bold'
71 )
72 row.add_cell(
73 u'Total des primes', backgroundcolor='#d7fb0f',
74 fontweight='bold'
75 )
76 row.add_cell(
77 u'Total des charges', backgroundcolor='#fb680f',
78 fontweight='bold'
79 )
80 row.add_cell(backgroundcolor='#d3d3d3')
81 row.add_cells(
82 [u'Masse salariale', u'Masse salariale EUR'],
83 backgroundcolor='#e6c6ed', fontweight='bold'
c99116c3
JPC
84 )
85
fc62be5d 86 for ligne in lignes:
016d2cfc 87
fc62be5d 88 row = table.add_row()
016d2cfc
OL
89
90 # GESTION de l'affichage des VACANTS
91 if 'dossier' not in ligne.keys():
92 row.add_cells([
b0cf30b8 93 ligne['poste'].implantation.zone_administrative.code,
016d2cfc
OL
94 ligne['poste'].implantation.adresse_physique_pays.nom,
95 ligne['poste'].implantation.nom_court
96 ])
97 row.add_cell(ligne['valeur_point'], decimalplaces=2)
98 row.add_cells([
99 'VACANT', #ligne['dossier'].employe.id or 'VACANT',
100 '', #ligne['dossier'].employe.nom,
101 '', #ligne['dossier'].employe.prenom,
102 ligne['poste'].type_poste.nom,
103 ligne['poste'].nom,
104 '', #unicode(ligne['dossier'].classement),
105 '', #ligne['dossier'].classement
106 #and ligne['dossier'].classement.coefficient,
107 ligne['regime_travail'],
108 ligne['local_expatrie'],
109 '', #ligne['dossier'].statut.code,
110 ])
111 row.add_cell(
112 '', #ligne['dossier'].date_fin, datastylename='iso-date'
113 )
114 row.add_cell(backgroundcolor='#d3d3d3')
115 row.add_cells([
116 '', #ligne['date_debut'], ligne['date_fin']
117 ], datastylename='iso-date')
118 row.add_cell(ligne['jours'])
119 row.add_cell(backgroundcolor='#d3d3d3')
120 row.add_cell(ligne['devise'])
121 row.add_cells([
122 '', #ligne['salaire_bstg'], ligne['salaire_bstg_eur']
123 ], decimalplaces=2)
124 row.add_cell(
125 '', #ligne['dossier'].organisme_bstg
126 #and ligne['dossier'].organisme_bstg.nom,
127 )
128 row.add_cell(backgroundcolor='#d3d3d3')
129 row.add_cells(
130 [ligne['salaire_theorique']] + ligne['traitements'] +
131 [ligne['total_traitements']],
132 decimalplaces=2
133 )
134 row.add_cell(backgroundcolor='#d3d3d3')
135 row.add_cells(
136 ligne['indemnites'] + [ligne['total_indemnites']],
137 decimalplaces=2
138 )
139 row.add_cell(backgroundcolor='#d3d3d3')
140 row.add_cells(
141 ligne['primes'] + [ligne['total_primes']],
142 decimalplaces=2
143 )
144 row.add_cell(backgroundcolor='#d3d3d3')
145 row.add_cells(
146 ligne['charges'] + [ligne['total_charges']],
147 decimalplaces=2
148 )
149 row.add_cell(backgroundcolor='#d3d3d3')
150 row.add_cells([
151 ligne['total_traitements'], ligne['total_indemnites'],
152 ligne['total_primes'], ligne['total_charges']
153 ], decimalplaces=2)
154 row.add_cell(backgroundcolor='#d3d3d3')
155 row.add_cells([
156 ligne['masse_salariale'], ligne['masse_salariale_eur']
157 ], decimalplaces=2)
158 continue
159
fc62be5d 160 row.add_cells([
b0cf30b8 161 ligne['poste'].implantation.zone_administrative.code,
fc62be5d
EMS
162 ligne['poste'].implantation.adresse_physique_pays.nom,
163 ligne['poste'].implantation.nom_court
164 ])
165 row.add_cell(ligne['valeur_point'], decimalplaces=2)
166 row.add_cells([
167 ligne['dossier'].employe.id or 'VACANT',
168 ligne['dossier'].employe.nom,
169 ligne['dossier'].employe.prenom,
170 ligne['poste'].type_poste.nom,
171 ligne['poste'].nom,
172 unicode(ligne['dossier'].classement),
173 ligne['dossier'].classement
174 and ligne['dossier'].classement.coefficient,
175 ligne['regime_travail'],
176 ligne['local_expatrie'],
177 ligne['dossier'].statut.code,
178 ])
179 row.add_cell(ligne['dossier'].date_fin, datastylename='iso-date')
180 row.add_cell(backgroundcolor='#d3d3d3')
181 row.add_cells([
182 ligne['date_debut'], ligne['date_fin']
183 ], datastylename='iso-date')
184 row.add_cell(ligne['jours'])
185 row.add_cell(backgroundcolor='#d3d3d3')
186 row.add_cell(ligne['devise'])
187 row.add_cells([
188 ligne['salaire_bstg'], ligne['salaire_bstg_eur']
189 ], decimalplaces=2)
190 row.add_cell(
191 ligne['dossier'].organisme_bstg
192 and ligne['dossier'].organisme_bstg.nom,
193 )
194 row.add_cell(backgroundcolor='#d3d3d3')
195 row.add_cells(
196 [ligne['salaire_theorique']] + ligne['traitements'] +
197 [ligne['total_traitements']],
198 decimalplaces=2
199 )
200 row.add_cell(backgroundcolor='#d3d3d3')
201 row.add_cells(
202 ligne['indemnites'] + [ligne['total_indemnites']],
203 decimalplaces=2
204 )
205 row.add_cell(backgroundcolor='#d3d3d3')
206 row.add_cells(
207 ligne['primes'] + [ligne['total_primes']],
208 decimalplaces=2
209 )
210 row.add_cell(backgroundcolor='#d3d3d3')
211 row.add_cells(
212 ligne['charges'] + [ligne['total_charges']],
213 decimalplaces=2
214 )
215 row.add_cell(backgroundcolor='#d3d3d3')
216 row.add_cells([
217 ligne['total_traitements'], ligne['total_indemnites'],
218 ligne['total_primes'], ligne['total_charges']
219 ], decimalplaces=2)
220 row.add_cell(backgroundcolor='#d3d3d3')
221 row.add_cells([
222 ligne['masse_salariale'], ligne['masse_salariale_eur']
223 ], decimalplaces=2)
224 return doc