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.

50 lines
1.7 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2013 Joaquin Gutierrez (http://www.gutierrezweb.es)
  3. # Copyright 2015 Tecnativa - Pedro M. Baeza
  4. # Copyright 2017 RGB Consulting
  5. # Copyright 2017 Eficent - Miquel Raich
  6. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  7. from openerp import api, fields, models
  8. class JournalLedger(models.AbstractModel):
  9. _name = 'report.account_journal_report.journal_ledger'
  10. def _format_date_to_lang(self, str_date):
  11. if 'lang' not in self._context:
  12. return str_date
  13. lang_code = self._context['lang']
  14. lang_id = self.env['res.lang']._lang_get(lang_code)
  15. lang = self.env['res.lang'].browse(lang_id)
  16. date = fields.Date.from_string(str_date)
  17. return date.strftime(lang.date_format)
  18. @api.multi
  19. def render_html(self, data):
  20. account_move_obj = self.env['account.move']
  21. report_obj = self.env['report']
  22. date_start = data.get('date_start')
  23. date_end = data.get('date_end')
  24. journal_ids = data.get('journal_ids', [])
  25. move_ids = account_move_obj.search(
  26. [('date', '<=', date_end),
  27. ('date', '>=', date_start),
  28. ('journal_id', 'in', journal_ids),
  29. ('state', '!=', 'draft')],
  30. order=data.get('sort_selection', 'date') + ', id')
  31. report = report_obj._get_report_from_name(
  32. 'account_journal_report.journal_ledger')
  33. docargs = {
  34. 'doc_model': report.model,
  35. 'docs': move_ids,
  36. 'date_start': self._format_date_to_lang(
  37. date_start),
  38. 'date_end': self._format_date_to_lang(
  39. date_end),
  40. }
  41. return report_obj.render(
  42. 'account_journal_report.journal_ledger', docargs)