mirror of
https://github.com/bringout/oca-ocb-accounting.git
synced 2026-04-23 07:22:02 +02:00
19.0 vanilla
This commit is contained in:
parent
ba20ce7443
commit
768b70e05e
2357 changed files with 1057103 additions and 712486 deletions
117
odoo-bringout-oca-ocb-account/account/tests/test_kpi_provider.py
Normal file
117
odoo-bringout-oca-ocb-account/account/tests/test_kpi_provider.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
from odoo import Command
|
||||
from odoo.tests import tagged, TransactionCase
|
||||
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestKpiProvider(TransactionCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
|
||||
cls.partner_id = cls.env['res.partner'].create({'name': 'Someone'})
|
||||
|
||||
# Clean things for the test
|
||||
cls.env['account.move'].search([
|
||||
'|', ('state', '=', 'draft'),
|
||||
('statement_line_id.is_reconciled', '=', False),
|
||||
])._unlink_or_reverse()
|
||||
|
||||
def test_empty_kpi_summary(self):
|
||||
# Ensure that nothing gets reported when there is nothing to report
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [])
|
||||
|
||||
def test_kpi_summary(self):
|
||||
company_id = self.ref('base.main_company')
|
||||
account_id = self.env['account.account'].search([('company_ids', '=', company_id)], limit=1)
|
||||
base_move = {
|
||||
'company_id': company_id,
|
||||
'invoice_line_ids': [Command.create({'account_id': account_id.id, 'quantity': 15, 'price_unit': 10})],
|
||||
'partner_id': self.partner_id.id,
|
||||
}
|
||||
self.env['account.move'].create(
|
||||
[{**base_move, 'move_type': 'entry'}] * 2 +
|
||||
[{**base_move, 'move_type': 'out_invoice'}] * 3 +
|
||||
[{**base_move, 'move_type': 'out_refund'}] * 4 +
|
||||
[{**base_move, 'move_type': 'in_invoice'}] * 5 +
|
||||
[{**base_move, 'move_type': 'in_refund'}] * 6 +
|
||||
[{**base_move, 'move_type': 'out_receipt'}] * 7 +
|
||||
[{**base_move, 'move_type': 'in_receipt'}] * 8
|
||||
)
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [
|
||||
{'id': 'account_journal_type.general', 'name': 'Miscellaneous', 'type': 'integer', 'value': 2},
|
||||
{'id': 'account_journal_type.sale', 'name': 'Sales', 'type': 'integer', 'value': 3 + 4 + 7},
|
||||
{'id': 'account_journal_type.purchase', 'name': 'Purchase', 'type': 'integer', 'value': 5 + 6 + 8},
|
||||
])
|
||||
|
||||
def test_kpi_summary_shouldnt_report_posted_moves(self):
|
||||
company_id = self.ref('base.main_company')
|
||||
account_id = self.env['account.account'].search([('company_ids', '=', company_id)], limit=1).id
|
||||
move = self.env['account.move'].create({
|
||||
'company_id': company_id,
|
||||
'invoice_line_ids': [Command.create({'account_id': account_id, 'quantity': 15, 'price_unit': 10})],
|
||||
'partner_id': self.partner_id.id,
|
||||
'move_type': 'out_invoice',
|
||||
})
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [
|
||||
{'id': 'account_journal_type.sale', 'name': 'Sales', 'type': 'integer', 'value': 1},
|
||||
])
|
||||
|
||||
move.action_post()
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [])
|
||||
|
||||
def test_kpi_summary_reports_posted_but_to_check_moves(self):
|
||||
company_id = self.ref('base.main_company')
|
||||
account_id = self.env['account.account'].search([('company_ids', '=', company_id)], limit=1).id
|
||||
move = self.env['account.move'].create({
|
||||
'company_id': company_id,
|
||||
'invoice_line_ids': [Command.create({'account_id': account_id, 'quantity': 15, 'price_unit': 10})],
|
||||
'partner_id': self.partner_id.id,
|
||||
'move_type': 'out_invoice',
|
||||
})
|
||||
move.action_post()
|
||||
move.checked = False
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [
|
||||
{'id': 'account_journal_type.sale', 'name': 'Sales', 'type': 'integer', 'value': 1},
|
||||
])
|
||||
|
||||
move.button_set_checked()
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [])
|
||||
|
||||
def test_kpi_summary_reports_unreconciled_bank_statements(self):
|
||||
company_id = self.ref('base.main_company')
|
||||
account_id = self.env['account.account'].search([('company_ids', '=', company_id), ('account_type', '=', 'income')], limit=1).id
|
||||
move = self.env['account.move'].create({
|
||||
'company_id': company_id,
|
||||
'line_ids': [Command.create({'account_id': account_id, 'quantity': 15, 'price_unit': 10})],
|
||||
'partner_id': self.env.user.partner_id.id,
|
||||
'move_type': 'out_invoice',
|
||||
})
|
||||
move.action_post()
|
||||
|
||||
journal_id = self.env['account.journal'].create({
|
||||
'name': 'Bank',
|
||||
'type': 'bank',
|
||||
})
|
||||
bank_statement = self.env['account.bank.statement'].create({
|
||||
'name': 'test_statement',
|
||||
'line_ids': [Command.create({
|
||||
'date': '2025-09-15',
|
||||
'payment_ref': 'line_1',
|
||||
'journal_id': journal_id.id,
|
||||
'amount': move.amount_total,
|
||||
})],
|
||||
})
|
||||
|
||||
self.assertEqual(bank_statement.line_ids.move_id.state, 'posted')
|
||||
self.assertFalse(bank_statement.line_ids.is_reconciled)
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [
|
||||
{'id': 'account_journal_type.bank', 'name': 'Bank', 'type': 'integer', 'value': 1},
|
||||
])
|
||||
|
||||
move_line = move.line_ids.filtered(lambda line: line.account_type == 'asset_receivable')
|
||||
_st_liquidity_lines, st_suspense_lines, _st_other_lines = bank_statement.line_ids._seek_for_lines()
|
||||
st_suspense_lines.account_id = move_line.account_id
|
||||
(move_line + st_suspense_lines).reconcile()
|
||||
self.assertTrue(bank_statement.line_ids.is_reconciled)
|
||||
self.assertCountEqual(self.env['kpi.provider'].get_account_kpi_summary(), [])
|
||||
Loading…
Add table
Add a link
Reference in a new issue