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.
 
 
 
 
 

60 lines
2.5 KiB

# -*- coding: utf-8 -*-
import time
from odoo import api, models
import logging
_logger = logging.getLogger(__name__)
class ReportPayment(models.AbstractModel):
_name = 'report.account_pdc.report_payment_template'
def lines(self, payment_type, journal_ids, pdc_only, data):
domain = []
if isinstance(journal_ids, int):
journal_ids = [journal_ids]
domain.append(('journal_id', 'in', journal_ids))
if payment_type == 'inbound':
domain.append(('payment_type', '=', 'inbound'))
elif payment_type == 'outbound':
domain.append(('payment_type', '=', 'outbound'))
if data['form']['date_from']:
domain.append(('payment_date', '>=', data['form']['date_from']))
if data['form']['date_to']:
domain.append(('payment_date', '<=', data['form']['date_to']))
if data['form']['company_id']:
domain.append(('company_id', '=', data['form']['company_id'][0]))
if pdc_only:
domain.append(('payment_method_id.code', '=', 'pdc'))
if data['form']['effective_date_from']:
domain.append(('effective_date_from', '>=', data['form']['effective_date_from']))
if data['form']['effective_date_to']:
domain.append(('effective_date_to', '<=', data['form']['effective_date_to']))
return self.env['account.payment'].search(domain)
@api.model
def render_html(self, docids, data=None):
_logger.info("................................1..............................")
# target_move = data['form'].get('target_move', 'all')
# sort_selection = data['form'].get('sort_selection', 'date')
payment_type = data['form']['payment_type']
pdc_only = data['form']['pdc_only']
# effective_date_from = data['form']['effective_date_from']
# effective_date_to = data['form']['effective_date_to']
res = {}
for journal in data['form']['journal_ids']:
res[journal] = self.with_context(data['form'].get('used_context', {})).lines(payment_type, journal, pdc_only, data)
docargs = {
'doc_ids': data['form']['journal_ids'],
'doc_model': self.env['account.journal'],
'data': data,
'docs': self.env['account.journal'].browse(data['form']['journal_ids']),
'time': time,
'lines': res,
}
return self.env['report'].render('account_pdc.report_payment_template', docargs)