feat(fusion_accounting_bank_rec): bulk reconcile wizard for selected lines
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
This commit is contained in:
@@ -17,3 +17,4 @@ from . import test_mv_unreconciled
|
||||
from . import test_cron_methods
|
||||
from . import test_controller
|
||||
from . import test_auto_reconcile_wizard
|
||||
from . import test_bulk_reconcile_wizard
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user