TransientModel + view + binding action so users can select bank lines from any list view and bulk-apply either engine.reconcile_batch or a chosen reconcile model. Made-with: Cursor
43 lines
1.8 KiB
Python
43 lines
1.8 KiB
Python
"""Tests for fusion.bulk.reconcile.wizard."""
|
|
|
|
from odoo.tests.common import TransactionCase, tagged
|
|
from . import _factories as f
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestBulkReconcileWizard(TransactionCase):
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.partner = self.env['res.partner'].create({'name': 'Bulk Wizard Partner'})
|
|
self.journal = f.make_bank_journal(self.env, name='Bulk Bank', code='BLKBK')
|
|
self.statement = f.make_bank_statement(self.env, journal=self.journal)
|
|
|
|
def test_wizard_default_picks_active_ids(self):
|
|
line1 = f.make_bank_line(
|
|
self.env, statement=self.statement, amount=100, partner=self.partner)
|
|
line2 = f.make_bank_line(
|
|
self.env, statement=self.statement, amount=200, partner=self.partner)
|
|
wizard = self.env['fusion.bulk.reconcile.wizard'].with_context(
|
|
active_model='account.bank.statement.line',
|
|
active_ids=[line1.id, line2.id],
|
|
).create({})
|
|
self.assertEqual(set(wizard.statement_line_ids.ids), {line1.id, line2.id})
|
|
self.assertEqual(wizard.selected_count, 2)
|
|
|
|
def test_wizard_auto_mode_runs_engine_batch(self):
|
|
line_ids = []
|
|
for amount in [110.00, 220.00]:
|
|
f.make_invoice(self.env, partner=self.partner, amount=amount)
|
|
line = f.make_bank_line(
|
|
self.env, statement=self.statement, amount=amount, partner=self.partner)
|
|
line_ids.append(line.id)
|
|
wizard = self.env['fusion.bulk.reconcile.wizard'].create({
|
|
'statement_line_ids': [(6, 0, line_ids)],
|
|
'mode': 'auto',
|
|
'strategy': 'auto',
|
|
})
|
|
wizard.action_run()
|
|
self.assertEqual(wizard.state, 'done')
|
|
self.assertGreaterEqual(wizard.reconciled_count, 2)
|