You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.0 KiB

  1. # -*- coding: utf-8 -*-
  2. # Author: Andrea andrea4ever Gallina
  3. # Author: Francesco OpenCode Apruzzese
  4. # Author: Ciro CiroBoxHub Urselli
  5. # Copyright 2016 Camptocamp SA
  6. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  7. from openerp import models, api
  8. class OpenInvoiceReport(models.AbstractModel):
  9. _name = 'report.account_financial_report_qweb.open_invoice_report_qweb'
  10. def _get_domain(self, data):
  11. account_type = ('payable', 'receivable')
  12. if data['form']['result_selection'] == 'customer':
  13. account_type = ('receivable', )
  14. elif data['form']['result_selection'] == 'supplier':
  15. account_type = ('payable', )
  16. domain = [
  17. ('company_id', '=', data['form']['company_id'][0]),
  18. ('move_id.date', '<=', data['form']['at_date']),
  19. ('account_id.user_type_id.type', 'in', account_type)
  20. ]
  21. if data['form']['target_move'] != 'all':
  22. domain.append(('move_id.state', 'in', ('posted', )), )
  23. if data['form']['partner_ids']:
  24. domain.append(('partner_id', 'in',
  25. [p.id for p in data['form']['partner_ids']]), )
  26. return domain
  27. def _query(self, data):
  28. moves = self.env['account.move.line'].search(
  29. self._get_domain(data), order='date asc')
  30. if not moves:
  31. return True # ----- Show a message here
  32. return moves
  33. @api.multi
  34. def render_html(self, data=None):
  35. report_obj = self.env['report']
  36. moves = self._query(data)
  37. docargs = {
  38. 'doc_model': 'account.move.line',
  39. 'doc_ids': data['ids'],
  40. 'docs': moves,
  41. 'header': data['header'],
  42. 'account_obj': self.env['account.account'],
  43. 'partner_obj': self.env['res.partner'],
  44. 'currency_obj': self.env['res.currency'],
  45. }
  46. return report_obj.render(
  47. 'account_financial_report_qweb.open_invoice_report_qweb',
  48. docargs)