TransientModel that filters unreconciled bank lines by journal + date range + strategy and runs engine.reconcile_batch. Shows reconciled_count / skipped_count / error_summary in result view. Made-with: Cursor
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""Tests for fusion.auto.reconcile.wizard."""
|
|
|
|
from odoo.tests.common import TransactionCase, tagged
|
|
from . import _factories as f
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestAutoReconcileWizard(TransactionCase):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.partner = self.env['res.partner'].create({'name': 'Auto Wizard Partner'})
|
|
self.journal = f.make_bank_journal(self.env, name='Auto Bank', code='AUBK')
|
|
|
|
def test_wizard_runs_and_reconciles_matchable_lines(self):
|
|
statement = f.make_bank_statement(self.env, journal=self.journal)
|
|
for amount in [100.00, 200.00]:
|
|
f.make_invoice(self.env, partner=self.partner, amount=amount)
|
|
f.make_bank_line(
|
|
self.env, statement=statement, amount=amount, partner=self.partner)
|
|
|
|
wizard = self.env['fusion.auto.reconcile.wizard'].create({
|
|
'journal_id': self.journal.id,
|
|
'strategy': 'auto',
|
|
'only_with_partner': True,
|
|
})
|
|
wizard.action_run()
|
|
self.assertEqual(wizard.state, 'done')
|
|
self.assertGreaterEqual(wizard.reconciled_count, 2)
|
|
|
|
def test_wizard_filters_by_date_range(self):
|
|
wizard = self.env['fusion.auto.reconcile.wizard'].create({
|
|
'journal_id': self.journal.id,
|
|
'date_from': '2099-01-01',
|
|
'date_to': '2099-12-31',
|
|
'strategy': 'auto',
|
|
})
|
|
wizard.action_run()
|
|
self.assertEqual(wizard.reconciled_count, 0)
|
|
|
|
def test_wizard_skips_when_only_with_partner_excludes_orphans(self):
|
|
statement = f.make_bank_statement(self.env, journal=self.journal)
|
|
f.make_bank_line(self.env, statement=statement, amount=999, partner=None)
|
|
wizard = self.env['fusion.auto.reconcile.wizard'].create({
|
|
'journal_id': self.journal.id,
|
|
'strategy': 'auto',
|
|
'only_with_partner': True,
|
|
})
|
|
wizard.action_run()
|
|
self.assertEqual(wizard.reconciled_count, 0)
|