Tower: upload om_account_daily_reports 1.0.1 (via marketplace)

This commit is contained in:
2026-05-01 14:21:09 +00:00
parent 65e232de2b
commit 8fe8aa6bbf

View File

@@ -0,0 +1,66 @@
from odoo import fields, models, api, _
from datetime import date
class AccountCashBookReport(models.TransientModel):
_name = "account.cashbook.report"
_description = "Cash Book Report"
def _get_default_account_ids(self):
journals = self.env['account.journal'].search([('type', '=', 'cash')])
accounts = self.env['account.account']
for journal in journals:
if journal.default_account_id.id:
accounts += journal.default_account_id
for acc_out in journal.outbound_payment_method_line_ids:
if acc_out.payment_account_id:
accounts += acc_out.payment_account_id
for acc_in in journal.inbound_payment_method_line_ids:
if acc_in.payment_account_id:
accounts += acc_in.payment_account_id
return accounts
date_from = fields.Date(string='Start Date', default=date.today(), required=True)
date_to = fields.Date(string='End Date', default=date.today(), required=True)
target_move = fields.Selection([('posted', 'Posted Entries'),
('all', 'All Entries')], string='Target Moves', required=True,
default='posted')
journal_ids = fields.Many2many('account.journal', string='Journals', required=True,
default=lambda self: self.env['account.journal'].search([]))
account_ids = fields.Many2many('account.account', 'account_account_cashbook_report', 'report_line_id',
'account_id', 'Accounts', default=_get_default_account_ids)
display_account = fields.Selection(
[('all', 'All'), ('movement', 'With movements'),
('not_zero', 'With balance is not equal to 0')],
string='Display Accounts', required=True, default='movement')
sortby = fields.Selection(
[('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')],
string='Sort by',
required=True, default='sort_date')
initial_balance = fields.Boolean(string='Include Initial Balances',
help='If you selected date, this field allow you to add a row to'
' display the amount of debit/credit/balance that precedes '
'the filter you\'ve set.')
def _build_comparison_context(self, data):
result = {}
result['journal_ids'] = 'journal_ids' in data['form'] and data['form'][
'journal_ids'] or False
result['state'] = 'target_move' in data['form'] and data['form'][
'target_move'] or ''
result['date_from'] = data['form']['date_from'] or False
result['date_to'] = data['form']['date_to'] or False
result['strict_range'] = True if result['date_from'] else False
return result
def check_report(self):
data = {}
data['form'] = self.read(['target_move', 'date_from', 'date_to', 'journal_ids', 'account_ids',
'sortby', 'initial_balance', 'display_account'])[0]
comparison_context = self._build_comparison_context(data)
data['form']['comparison_context'] = comparison_context
return self.env.ref(
'om_account_daily_reports.action_report_cash_book').report_action(self,
data=data)