diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/account/tests/test_account_journal_dashboard.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/account/tests/test_account_journal_dashboard.py')
| -rw-r--r-- | addons/account/tests/test_account_journal_dashboard.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/addons/account/tests/test_account_journal_dashboard.py b/addons/account/tests/test_account_journal_dashboard.py new file mode 100644 index 00000000..6bb127b6 --- /dev/null +++ b/addons/account/tests/test_account_journal_dashboard.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +from freezegun import freeze_time + +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests import tagged + +@tagged('post_install', '-at_install') +class TestAccountJournalDashboard(AccountTestInvoicingCommon): + + @freeze_time("2019-01-22") + def test_customer_invoice_dashboard(self): + journal = self.company_data['default_journal_sale'] + + invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'journal_id': journal.id, + 'partner_id': self.partner_a.id, + 'invoice_date': '2019-01-21', + 'date': '2019-01-21', + 'invoice_line_ids': [(0, 0, { + 'product_id': self.product_a.id, + 'quantity': 40.0, + 'name': 'product test 1', + 'discount': 10.00, + 'price_unit': 2.27, + })] + }) + refund = self.env['account.move'].create({ + 'move_type': 'out_refund', + 'journal_id': journal.id, + 'partner_id': self.partner_a.id, + 'invoice_date': '2019-01-21', + 'date': '2019-01-21', + 'invoice_line_ids': [(0, 0, { + 'product_id': self.product_a.id, + 'quantity': 1.0, + 'name': 'product test 1', + 'price_unit': 13.3, + })] + }) + + # Check Draft + dashboard_data = journal.get_journal_dashboard_datas() + + self.assertEqual(dashboard_data['number_draft'], 2) + self.assertIn('68.42', dashboard_data['sum_draft']) + + self.assertEqual(dashboard_data['number_waiting'], 0) + self.assertIn('0.00', dashboard_data['sum_waiting']) + + # Check Both + invoice.action_post() + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEqual(dashboard_data['number_draft'], 1) + self.assertIn('-13.30', dashboard_data['sum_draft']) + + self.assertEqual(dashboard_data['number_waiting'], 1) + self.assertIn('81.72', dashboard_data['sum_waiting']) + + # Check waiting payment + refund.action_post() + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEqual(dashboard_data['number_draft'], 0) + self.assertIn('0.00', dashboard_data['sum_draft']) + + self.assertEqual(dashboard_data['number_waiting'], 2) + self.assertIn('68.42', dashboard_data['sum_waiting']) + + # Check partial + receivable_account = refund.line_ids.mapped('account_id').filtered(lambda a: a.internal_type == 'receivable') + payment = self.env['account.payment'].create({ + 'amount': 10.0, + 'payment_type': 'outbound', + 'partner_type': 'customer', + 'partner_id': self.partner_a.id, + }) + payment.action_post() + + (refund + payment.move_id).line_ids\ + .filtered(lambda line: line.account_internal_type == 'receivable')\ + .reconcile() + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEqual(dashboard_data['number_draft'], 0) + self.assertIn('0.00', dashboard_data['sum_draft']) + + self.assertEqual(dashboard_data['number_waiting'], 2) + self.assertIn('78.42', dashboard_data['sum_waiting']) + + dashboard_data = journal.get_journal_dashboard_datas() + self.assertEqual(dashboard_data['number_late'], 2) + self.assertIn('78.42', dashboard_data['sum_late']) |
