mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
pre-commit
This commit is contained in:
@@ -3,64 +3,74 @@
|
||||
|
||||
import datetime
|
||||
|
||||
from odoo.tests import common
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
type_receivable = self.env.ref('account.data_account_type_receivable')
|
||||
type_expenses = self.env.ref('account.data_account_type_expenses')
|
||||
type_receivable = self.env.ref("account.data_account_type_receivable")
|
||||
type_expenses = self.env.ref("account.data_account_type_expenses")
|
||||
|
||||
journal = self.env['account.journal'].create({
|
||||
'name': 'Test', 'type': 'general', 'code': 'test'})
|
||||
journal = self.env["account.journal"].create(
|
||||
{"name": "Test", "type": "general", "code": "test"}
|
||||
)
|
||||
|
||||
self.receivable_account = self.env['account.account'].create({
|
||||
'name': 'test_account_receivable',
|
||||
'code': '123',
|
||||
'user_type_id': type_receivable.id,
|
||||
'reconcile': True
|
||||
})
|
||||
self.receivable_account = self.env["account.account"].create(
|
||||
{
|
||||
"name": "test_account_receivable",
|
||||
"code": "123",
|
||||
"user_type_id": type_receivable.id,
|
||||
"reconcile": True,
|
||||
}
|
||||
)
|
||||
|
||||
self.expense_account = self.env['account.account'].create({
|
||||
'name': 'test account_expenses',
|
||||
'code': '765',
|
||||
'user_type_id': type_expenses.id,
|
||||
'reconcile': True
|
||||
})
|
||||
self.expense_account = self.env["account.account"].create(
|
||||
{
|
||||
"name": "test account_expenses",
|
||||
"code": "765",
|
||||
"user_type_id": type_expenses.id,
|
||||
"reconcile": True,
|
||||
}
|
||||
)
|
||||
|
||||
self.spread_account = self.env['account.account'].create({
|
||||
'name': 'test spread account_expenses',
|
||||
'code': '321',
|
||||
'user_type_id': type_expenses.id,
|
||||
'reconcile': True
|
||||
})
|
||||
self.spread_account = self.env["account.account"].create(
|
||||
{
|
||||
"name": "test spread account_expenses",
|
||||
"code": "321",
|
||||
"user_type_id": type_expenses.id,
|
||||
"reconcile": True,
|
||||
}
|
||||
)
|
||||
|
||||
self.spread = self.env['account.spread'].create({
|
||||
'name': 'test',
|
||||
'debit_account_id': self.spread_account.id,
|
||||
'credit_account_id': self.expense_account.id,
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': '2017-02-01',
|
||||
'estimated_amount': 1000.0,
|
||||
'journal_id': journal.id,
|
||||
'invoice_type': 'in_invoice',
|
||||
})
|
||||
self.spread = self.env["account.spread"].create(
|
||||
{
|
||||
"name": "test",
|
||||
"debit_account_id": self.spread_account.id,
|
||||
"credit_account_id": self.expense_account.id,
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": "2017-02-01",
|
||||
"estimated_amount": 1000.0,
|
||||
"journal_id": journal.id,
|
||||
"invoice_type": "in_invoice",
|
||||
}
|
||||
)
|
||||
|
||||
self.spread2 = self.env['account.spread'].create({
|
||||
'name': 'test2',
|
||||
'debit_account_id': self.spread_account.id,
|
||||
'credit_account_id': self.expense_account.id,
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': '2017-02-01',
|
||||
'estimated_amount': 1000.0,
|
||||
'journal_id': journal.id,
|
||||
'invoice_type': 'out_invoice',
|
||||
})
|
||||
self.spread2 = self.env["account.spread"].create(
|
||||
{
|
||||
"name": "test2",
|
||||
"debit_account_id": self.spread_account.id,
|
||||
"credit_account_id": self.expense_account.id,
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": "2017-02-01",
|
||||
"estimated_amount": 1000.0,
|
||||
"journal_id": journal.id,
|
||||
"invoice_type": "out_invoice",
|
||||
}
|
||||
)
|
||||
|
||||
def test_01_supplier_invoice(self):
|
||||
self.spread.compute_spread_board()
|
||||
@@ -111,11 +121,13 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_02_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 1, 7)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 1, 7),
|
||||
}
|
||||
)
|
||||
self.spread_account.reconcile = True
|
||||
self.assertTrue(self.spread_account.reconcile)
|
||||
|
||||
@@ -163,12 +175,14 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_03_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 1, 31),
|
||||
'move_line_auto_post': False
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 1, 31),
|
||||
"move_line_auto_post": False,
|
||||
}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
spread_lines = self.spread.line_ids
|
||||
@@ -249,13 +263,15 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertEqual(datetime.date(2018, 1, 31), spread_lines[12].date)
|
||||
|
||||
def test_04_supplier_invoice(self):
|
||||
self.spread.write({
|
||||
'credit_account_id': self.expense_account.id,
|
||||
'debit_account_id': self.spread_account.id,
|
||||
'period_number': 3,
|
||||
'period_type': 'year',
|
||||
'spread_date': datetime.date(2018, 10, 24)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"credit_account_id": self.expense_account.id,
|
||||
"debit_account_id": self.spread_account.id,
|
||||
"period_number": 3,
|
||||
"period_type": "year",
|
||||
"spread_date": datetime.date(2018, 10, 24),
|
||||
}
|
||||
)
|
||||
|
||||
# change the state of invoice to open by clicking Validate button
|
||||
self.spread.compute_spread_board()
|
||||
@@ -280,11 +296,13 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_05_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 2, 1)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 2, 1),
|
||||
}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
|
||||
@@ -295,7 +313,7 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertTrue(isinstance(attrs, dict))
|
||||
|
||||
# post and then unlink all created moves
|
||||
self.spread.journal_id.write({'update_posted': True})
|
||||
self.spread.journal_id.write({"update_posted": True})
|
||||
for line in self.spread.line_ids:
|
||||
line.move_id.post()
|
||||
self.spread.line_ids.unlink_move()
|
||||
@@ -307,11 +325,9 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_06_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 3,
|
||||
'period_type': 'quarter',
|
||||
'move_line_auto_post': False
|
||||
})
|
||||
self.spread.write(
|
||||
{"period_number": 3, "period_type": "quarter", "move_line_auto_post": False}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
|
||||
@@ -328,35 +344,37 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
for line in self.spread.line_ids:
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertFalse(line.move_id.state == 'posted')
|
||||
self.assertFalse(line.move_id.state == "posted")
|
||||
|
||||
self.assertEqual(self.spread.unspread_amount, 0.)
|
||||
self.assertEqual(self.spread.unposted_amount, 1000.)
|
||||
self.assertEqual(self.spread.unspread_amount, 0.0)
|
||||
self.assertEqual(self.spread.unposted_amount, 1000.0)
|
||||
|
||||
# try to create move lines again: an error is raised
|
||||
for line in self.spread.line_ids:
|
||||
with self.assertRaises(UserError):
|
||||
line.create_move()
|
||||
|
||||
self.spread.write({
|
||||
'move_line_auto_post': True,
|
||||
})
|
||||
self.spread.write(
|
||||
{"move_line_auto_post": True,}
|
||||
)
|
||||
self.spread.action_recalculate_spread()
|
||||
|
||||
for line in self.spread.line_ids:
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertTrue(line.move_id.state == 'posted')
|
||||
self.assertTrue(line.move_id.state == "posted")
|
||||
|
||||
self.assertEqual(self.spread.unspread_amount, 0.)
|
||||
self.assertEqual(self.spread.unposted_amount, 0.)
|
||||
self.assertEqual(self.spread.unspread_amount, 0.0)
|
||||
self.assertEqual(self.spread.unposted_amount, 0.0)
|
||||
|
||||
def test_07_supplier_invoice(self):
|
||||
self.spread.write({
|
||||
'period_number': 3,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 1, 1),
|
||||
'estimated_amount': 345.96,
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 3,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 1, 1),
|
||||
"estimated_amount": 345.96,
|
||||
}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
spread_lines = self.spread.line_ids
|
||||
@@ -376,11 +394,13 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_08_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 2, 1)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 2, 1),
|
||||
}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
self.assertTrue(self.spread.line_ids)
|
||||
@@ -392,11 +412,13 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_09_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 2, 1)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 2, 1),
|
||||
}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
for line in self.spread.line_ids:
|
||||
@@ -415,11 +437,11 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertEqual(self.spread.unposted_amount, 1000.0)
|
||||
|
||||
def test_10_create_entries(self):
|
||||
self.env['account.spread.line']._create_entries()
|
||||
self.env["account.spread.line"]._create_entries()
|
||||
self.assertFalse(self.spread.line_ids)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
self.env['account.spread.line']._create_entries()
|
||||
self.env["account.spread.line"]._create_entries()
|
||||
self.assertTrue(self.spread.line_ids)
|
||||
for line in self.spread.line_ids:
|
||||
self.assertTrue(line.move_id)
|
||||
@@ -431,7 +453,7 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertFalse(line.move_id)
|
||||
line.create_move()
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertFalse(line.move_id.state == 'posted')
|
||||
self.assertFalse(line.move_id.state == "posted")
|
||||
|
||||
self.spread2.action_undo_spread()
|
||||
for line in self.spread2.line_ids:
|
||||
@@ -441,18 +463,16 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
for line in self.spread2.line_ids:
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertFalse(line.move_id.state == 'posted')
|
||||
self.assertFalse(line.move_id.state == "posted")
|
||||
# try to create move lines again: an error is raised
|
||||
with self.assertRaises(UserError):
|
||||
line.create_move()
|
||||
|
||||
def test_12_supplier_invoice_auto_post(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 8,
|
||||
'period_type': 'month',
|
||||
'move_line_auto_post': True,
|
||||
})
|
||||
self.spread.write(
|
||||
{"period_number": 8, "period_type": "month", "move_line_auto_post": True,}
|
||||
)
|
||||
|
||||
self.spread.compute_spread_board()
|
||||
|
||||
@@ -470,16 +490,15 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertTrue(self.spread.move_line_auto_post)
|
||||
for line in self.spread.line_ids:
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertTrue(line.move_id.state == 'posted')
|
||||
self.assertTrue(line.move_id.state == "posted")
|
||||
|
||||
self.assertEqual(self.spread.unspread_amount, 0.)
|
||||
self.assertEqual(self.spread.unposted_amount, 0.)
|
||||
self.assertEqual(self.spread.unspread_amount, 0.0)
|
||||
self.assertEqual(self.spread.unposted_amount, 0.0)
|
||||
|
||||
def test_13_create_move_in_invoice_auto_post(self):
|
||||
self.spread2.write({
|
||||
'period_number': 4,
|
||||
'move_line_auto_post': True,
|
||||
})
|
||||
self.spread2.write(
|
||||
{"period_number": 4, "move_line_auto_post": True,}
|
||||
)
|
||||
self.spread_account.reconcile = True
|
||||
self.assertTrue(self.spread_account.reconcile)
|
||||
|
||||
@@ -488,19 +507,21 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
self.assertFalse(line.move_id)
|
||||
line.create_move()
|
||||
self.assertTrue(line.move_id)
|
||||
self.assertTrue(line.move_id.state == 'posted')
|
||||
self.assertTrue(line.move_id.state == "posted")
|
||||
|
||||
self.assertEqual(self.spread.unspread_amount, 1000.0)
|
||||
self.assertEqual(self.spread.unposted_amount, 1000.0)
|
||||
|
||||
def test_14_negative_amount(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'estimated_amount': -1000.0,
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 1, 7)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"estimated_amount": -1000.0,
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 1, 7),
|
||||
}
|
||||
)
|
||||
self.spread.compute_spread_board()
|
||||
|
||||
spread_lines = self.spread.line_ids
|
||||
@@ -541,11 +562,13 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
|
||||
def test_18_supplier_invoice(self):
|
||||
# spread date set
|
||||
self.spread.write({
|
||||
'period_number': 12,
|
||||
'period_type': 'month',
|
||||
'spread_date': datetime.date(2017, 1, 7)
|
||||
})
|
||||
self.spread.write(
|
||||
{
|
||||
"period_number": 12,
|
||||
"period_type": "month",
|
||||
"spread_date": datetime.date(2017, 1, 7),
|
||||
}
|
||||
)
|
||||
self.spread_account.reconcile = True
|
||||
self.assertTrue(self.spread_account.reconcile)
|
||||
|
||||
@@ -561,10 +584,10 @@ class TestComputeSpreadBoard(common.TransactionCase):
|
||||
spread_lines[2]._create_moves().post()
|
||||
spread_lines[3]._create_moves().post()
|
||||
|
||||
self.assertEqual(spread_lines[0].move_id.state, 'posted')
|
||||
self.assertEqual(spread_lines[1].move_id.state, 'posted')
|
||||
self.assertEqual(spread_lines[2].move_id.state, 'posted')
|
||||
self.assertEqual(spread_lines[3].move_id.state, 'posted')
|
||||
self.assertEqual(spread_lines[0].move_id.state, "posted")
|
||||
self.assertEqual(spread_lines[1].move_id.state, "posted")
|
||||
self.assertEqual(spread_lines[2].move_id.state, "posted")
|
||||
self.assertEqual(spread_lines[3].move_id.state, "posted")
|
||||
|
||||
self.assertAlmostEqual(self.spread.unspread_amount, 682.81)
|
||||
self.assertAlmostEqual(self.spread.unposted_amount, 682.81)
|
||||
|
||||
Reference in New Issue
Block a user