39 lines
1.8 KiB
Python
39 lines
1.8 KiB
Python
from odoo import models, _
|
|
|
|
|
|
class CustomerStatementCustomHandler(models.AbstractModel):
|
|
_name = 'account.customer.statement.report.handler'
|
|
_inherit = 'account.partner.ledger.report.handler'
|
|
_description = 'Customer Statement Custom Handler'
|
|
|
|
def _custom_options_initializer(self, report, options, previous_options):
|
|
super()._custom_options_initializer(report, options, previous_options)
|
|
|
|
options['buttons'].append({
|
|
'name': _('Send'),
|
|
'action': 'action_send_statements',
|
|
'sequence': 90,
|
|
'always_show': True,
|
|
})
|
|
options['custom_display_config']['css_custom_class'] += ' customer_statement'
|
|
options['custom_display_config']['components']['AccountReportLine'] = 'PartnerLedgerFollowupLine'
|
|
options['custom_display_config']['templates']['AccountReportHeader'] = 'account_reports.PartnerLedgerFollowupHeader'
|
|
|
|
if self.env.ref('account_reports.pdf_export_main_customer_report', raise_if_not_found=False):
|
|
options['custom_display_config'].setdefault('pdf_export', {})['pdf_export_main'] = 'account_reports.pdf_export_main_customer_report'
|
|
|
|
def action_send_statements(self, options):
|
|
template = self.env.ref('account_reports.email_template_customer_statement', False)
|
|
partners = self.env['res.partner'].browse(options.get('partner_ids', []))
|
|
return {
|
|
'name': _("Send %s Statement", partners.name) if len(partners) == 1 else _("Send Partner Ledgers"),
|
|
'type': 'ir.actions.act_window',
|
|
'views': [[False, 'form']],
|
|
'res_model': 'account.report.send',
|
|
'target': 'new',
|
|
'context': {
|
|
'default_mail_template_id': template.id if template else False,
|
|
'default_report_options': options,
|
|
},
|
|
}
|