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.

64 lines
2.6 KiB

  1. # -*- encoding: utf-8 -*-
  2. ##############################################################################
  3. #
  4. # Author: Guewen Baconnier
  5. # Copyright Camptocamp SA 2011
  6. #
  7. # This program is free software: you can redistribute it and/or modify
  8. # it under the terms of the GNU Affero General Public License as
  9. # published by the Free Software Foundation, either version 3 of the
  10. # License, or (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU Affero General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU Affero General Public License
  18. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. #
  20. ##############################################################################
  21. from osv import fields, osv
  22. class AccountPartnerBalanceWizard(osv.osv_memory):
  23. """Will launch partner balance report and pass required args"""
  24. _inherit = "account.common.balance.report"
  25. _name = "partner.balance.webkit"
  26. _description = "Partner Balance Report"
  27. _columns = {
  28. 'result_selection': fields.selection([('customer','Receivable Accounts'),
  29. ('supplier','Payable Accounts'),
  30. ('customer_supplier','Receivable and Payable Accounts')],
  31. "Partner's", required=True),
  32. 'partner_ids': fields.many2many('res.partner', string='Filter on partner',
  33. help="Only selected partners will be printed. Leave empty to print all partners."),
  34. }
  35. _defaults = {
  36. 'result_selection': 'customer_supplier',
  37. }
  38. def pre_print_report(self, cr, uid, ids, data, context=None):
  39. data = super(AccountPartnerBalanceWizard, self).pre_print_report(cr, uid, ids, data, context)
  40. if context is None:
  41. context = {}
  42. vals = self.read(cr, uid, ids,
  43. ['result_selection', 'partner_ids'],
  44. context=context)[0]
  45. data['form'].update(vals)
  46. return data
  47. def _print_report(self, cursor, uid, ids, data, context=None):
  48. context = context or {}
  49. # we update form with display account value
  50. data = self.pre_print_report(cursor, uid, ids, data, context=context)
  51. return {'type': 'ir.actions.report.xml',
  52. 'report_name': 'account.account_report_partner_balance_webkit',
  53. 'datas': data}
  54. AccountPartnerBalanceWizard()