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
58 lines
2.0 KiB
# -*- coding: utf-8 -*-
|
|
# Author: Andrea andrea4ever Gallina
|
|
# Author: Francesco OpenCode Apruzzese
|
|
# Author: Ciro CiroBoxHub Urselli
|
|
# Copyright 2016 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
|
|
from openerp import models, api
|
|
|
|
|
|
class OpenInvoiceReport(models.AbstractModel):
|
|
|
|
_name = 'report.account_financial_report_qweb.open_invoice_report_qweb'
|
|
|
|
def _get_domain(self, data):
|
|
account_type = ('payable', 'receivable')
|
|
if data['form']['result_selection'] == 'customer':
|
|
account_type = ('receivable', )
|
|
elif data['form']['result_selection'] == 'supplier':
|
|
account_type = ('payable', )
|
|
domain = [
|
|
('company_id', '=', data['form']['company_id'][0]),
|
|
('move_id.date', '<=', data['form']['at_date']),
|
|
('account_id.user_type_id.type', 'in', account_type)
|
|
]
|
|
if data['form']['target_move'] != 'all':
|
|
domain.append(('move_id.state', 'in', ('posted', )), )
|
|
if data['form']['partner_ids']:
|
|
domain.append(('partner_id', 'in',
|
|
[p.id for p in data['form']['partner_ids']]), )
|
|
return domain
|
|
|
|
def _query(self, data):
|
|
|
|
moves = self.env['account.move.line'].search(
|
|
self._get_domain(data), order='date asc')
|
|
if not moves:
|
|
return True # ----- Show a message here
|
|
return moves
|
|
|
|
@api.multi
|
|
def render_html(self, data=None):
|
|
report_obj = self.env['report']
|
|
moves = self._query(data)
|
|
docargs = {
|
|
'doc_model': 'account.move.line',
|
|
'doc_ids': data['ids'],
|
|
'docs': moves,
|
|
'header': data['header'],
|
|
'account_obj': self.env['account.account'],
|
|
'partner_obj': self.env['res.partner'],
|
|
'currency_obj': self.env['res.currency'],
|
|
}
|
|
|
|
return report_obj.render(
|
|
'account_financial_report_qweb.open_invoice_report_qweb',
|
|
docargs)
|