|
|
@ -0,0 +1,33 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
from osv import orm |
|
|
|
from openerp.tools.translate import _ |
|
|
|
|
|
|
|
|
|
|
|
class project_project(orm.Model): |
|
|
|
_inherit = 'project.project' |
|
|
|
|
|
|
|
def hours_block_tree_view(self, cr, uid, ids, context): |
|
|
|
invoice_line_obj = self.pool.get('account.invoice.line') |
|
|
|
hours_block_obj = self.pool.get('account.hours.block') |
|
|
|
project = self.browse(cr, uid , ids)[0] |
|
|
|
invoice_line_ids = invoice_line_obj.search(cr, uid, [('account_analytic_id', '=', project.analytic_account_id.id)]) |
|
|
|
invoice_lines = invoice_line_obj.browse(cr, uid, invoice_line_ids) |
|
|
|
invoice_ids = [x.invoice_id.id for x in invoice_lines] |
|
|
|
res_ids = hours_block_obj.search(cr, uid, [('invoice_id','in',invoice_ids)]) |
|
|
|
domain=False |
|
|
|
if res_ids: |
|
|
|
domain = [('id', 'in', res_ids)] |
|
|
|
else: |
|
|
|
raise orm.except_orm(_('Warning'), _("No Hours Block for this project")) |
|
|
|
|
|
|
|
return { |
|
|
|
'name': _('Hours Blocks'), |
|
|
|
'domain': domain, |
|
|
|
'res_model': 'account.hours.block', |
|
|
|
'type': 'ir.actions.act_window', |
|
|
|
'view_id': False, |
|
|
|
'view_mode': 'tree,form', |
|
|
|
'view_type': 'form', |
|
|
|
'limit': 80, |
|
|
|
'res_id' : res_ids or False, |
|
|
|
} |