~inddiana/sisb/yenni_sisb_nomina_qty_salary_rule

« back to all changes in this revision

Viewing changes to sisb_nomina/report/report_process_payslips_parser.py

  • Committer: ysantiago at gob
  • Date: 2013-04-30 19:24:28 UTC
  • mfrom: (449.4.1 sisb)
  • Revision ID: ysantiago@industriasdiana.gob.ve-20130430192428-2xpo5tb8smvdkggg

[FIX] En el reporte de nomina no se estaba
filtrando los usuarios por sede.
[IMP] Se ordenaron las lineas de hojas de pago
por codigo en el reporte de nomina.
[FIX] Agregado redondeo en el total de las lineas
de hoja de pago cuando se crea desde los conceptos
variables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
            'total_asignaciones_trabajador':self.total_asignaciones_trabajador,
30
30
            'total_deducciones_trabajador':self.total_deducciones_trabajador,
31
31
            'total_neto_trabajador': self.total_neto_trabajador,
 
32
            'lineas': self.lineas,
32
33
        })
33
34
        self.context = context
34
35
        self.total_asignaciones_trabajador = 0
41
42
        self.nomina_sedes = {}
42
43
        self.sede_departamentos = {}
43
44
        self.nomina_id = {}
 
45
        
44
46
 
45
47
    def company(self):
46
48
        return self.pool.get('res.users').browse(self.cr, self.uid, self.uid).company_id.name
204
206
        self.total_asignaciones_sede = 0
205
207
        self.total_deducciones_sede = 0
206
208
 
207
 
    def info_trabajadores(self, nomina, departamento):
 
209
    def info_trabajadores(self, nomina, sede, departamento):
208
210
        trabajadores = [info_trabajador for info_trabajador in self.info_trabajadores if info_trabajador[0] == nomina
209
 
                        and info_trabajador[2] == departamento]
 
211
                        and info_trabajador[1] == sede and info_trabajador[2] == departamento]
210
212
        return trabajadores
 
213
    
 
214
    def lineas(self, lines):
 
215
        l = [x for x in lines]
 
216
        codes = [x.code for x in lines]
 
217
        c = self.sort_string(codes)
 
218
        l.sort(key=lambda x: c.index(x.code))
 
219
        return l
 
220
 
 
221
    def sort_string(self, s):
 
222
        def sort_string_to_a_list(s):
 
223
            return sorted(s, lambda x,y: cmp(x.lower(), y.lower()) or cmp(x,y))
 
224
        sorted_list = sort_string_to_a_list(s)
 
225
        return sorted_list
 
226
 
211
227
 
212
228
report_sxw.report_sxw(
213
229
                      'report.hr.process.payslips',