2
# -*- coding: utf-8 -*-
3
from osv import osv, fields
4
from tools.translate import _
7
class sisb_permits_report_wizard(osv.osv_memory):
8
_name = 'sisb.permits.report.wizard'
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')
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)
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)
24
'type': 'ir.actions.report.xml',
25
'report_name': 'sisb.permits',
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)
34
dept_domain = ('member_ids.hr_sede_id', 'in', site_domain)
36
dept_domain = ('id', 'in', _sp_obj.depts_domain(cr, uid, context=context))
37
view['fields']['department_id']['domain'] = [dept_domain]
41
sisb_permits_report_wizard()