~inddiana/sisb/sisb_print_invoice_users

« back to all changes in this revision

Viewing changes to sisb_permits/report/permits_report_wizard.py

  • Committer: Aryrosa Fuentes
  • Date: 2017-10-20 14:03:01 UTC
  • mfrom: (975.2.9 sisb_061017)
  • Revision ID: afuentes@industriasdiana.gob.ve-20171020140301-8ra8dk3pfi1z841q

[MOD] Ajustes en las limitaciones para la asignación de sobretiempos.
[MOD] Corregida la manera en que se creaba el select del tipo de proceso.
[IMP] Agregado módulo para la carga de permisos.
[IMP] Agregado módulo para la carga automática de conceptos variables que
tengan que ver con los turnos.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
from osv import osv, fields
 
4
from tools.translate import _
 
5
 
 
6
 
 
7
class sisb_permits_report_wizard(osv.osv_memory):
 
8
    _name = 'sisb.permits.report.wizard'
 
9
    _columns = {
 
10
        'department_id': fields.many2one('hr.department', 'Department', required=True),
 
11
        'date_start': fields.date('Date Start', required=True),
 
12
        'date_end': fields.date('Date End', required=True),
 
13
        'permits_ids': fields.many2many('sisb.permits', 'permits_report_rel', 'report_id', 'permit_id', 'Permits')
 
14
    }
 
15
 
 
16
    def print_report(self, cr, uid, ids, context=None):
 
17
        wiz_data = self.browse(cr, uid, ids[0], context=context)
 
18
        _sp_obj = self.pool.get('sisb.permits')
 
19
        perm_ids = _sp_obj.search(cr, uid, [('department_id', '=', wiz_data.department_id.id), ('date_start', '<=', wiz_data.date_end), ('date_end', '>=', wiz_data.date_start), ('state', 'in', ['approved', 'load', 'done'])], context=context)
 
20
        if not perm_ids:
 
21
            raise osv.except_osv(_('Error'), _('No permits were found during %s to %s for department %s') % (wiz_data.date_start, wiz_data.date_end, wiz_data.department_id.name))
 
22
        self.write(cr, uid, ids, {'permits_ids': [(6, 0, perm_ids)]}, context=context)
 
23
        return {
 
24
            'type': 'ir.actions.report.xml',
 
25
            'report_name': 'sisb.permits',
 
26
        }
 
27
 
 
28
    def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
 
29
        _sp_obj = self.pool.get('sisb.permits')
 
30
        view = super(sisb_permits_report_wizard, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
 
31
        if view_type in ['form']:
 
32
            site_domain = _sp_obj.sites_domain(cr, uid, context=context)
 
33
            if site_domain:
 
34
                dept_domain = ('member_ids.hr_sede_id', 'in', site_domain)
 
35
            else:
 
36
                dept_domain = ('id', 'in', _sp_obj.depts_domain(cr, uid, context=context))
 
37
            view['fields']['department_id']['domain'] = [dept_domain]
 
38
        return view
 
39
 
 
40
 
 
41
sisb_permits_report_wizard()