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.

37 lines
1.2 KiB

  1. # Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
  2. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
  3. from odoo import models, fields, api
  4. class ReportPartnerList(models.TransientModel):
  5. _name = 'report.partner.list'
  6. _description = 'Wizard for report.partner.list'
  7. partner_ids = fields.Many2many(
  8. comodel_name='res.partner',
  9. )
  10. supplier = fields.Boolean(
  11. default=True,
  12. )
  13. customer = fields.Boolean(
  14. default=True,
  15. )
  16. results = fields.Many2many(
  17. 'res.partner',
  18. string='Results',
  19. compute='_compute_results',
  20. help='Use compute fields, so there is nothing store in database',
  21. )
  22. @api.multi
  23. def _compute_results(self):
  24. """ On the wizard, result will be computed and added to results line
  25. before export to excel by report_excel action
  26. """
  27. self.ensure_one()
  28. domain = ['|', ('supplier', '=', self.supplier),
  29. ('customer', '=', self.customer)]
  30. if self.partner_ids:
  31. domain.append(('id', 'in', self.partner_ids.ids))
  32. self.results = self.env['res.partner'].search(domain, order='id')