You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.0 KiB

  1. # Copyright 2020 Tecnativa - João Marques
  2. # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0
  3. from odoo.tests import common
  4. class TestAccountBankStatementClearPartner(common.SavepointCase):
  5. @classmethod
  6. def setUpClass(cls):
  7. super(TestAccountBankStatementClearPartner, cls).setUpClass()
  8. cls.partner_1 = cls.env['res.partner'].create(
  9. {
  10. "name": "Partner 1",
  11. }
  12. )
  13. cls.partner_2 = cls.env['res.partner'].create(
  14. {
  15. "name": "Partner 2",
  16. }
  17. )
  18. cls.account_type_1 = cls.env['account.account.type'].create({
  19. "name": "Test Account Type 1",
  20. "type": "other"
  21. })
  22. cls.account_1 = cls.env['account.account'].create({
  23. "name": "Test Account 1",
  24. "code": "AAAAAAAAAAAAAAAA",
  25. "user_type_id": cls.account_type_1.id,
  26. })
  27. cls.sequence_1 = cls.env['ir.sequence'].create({
  28. "name": "Test Sequence 1",
  29. })
  30. cls.journal_1 = cls.env['account.journal'].create({
  31. "name": "Test Journal 1",
  32. "type": "bank",
  33. "sequence_id": cls.sequence_1.id,
  34. })
  35. cls.statement_1 = cls.env["account.bank.statement"].create({
  36. "name": "Test Bank Statement 1",
  37. "journal_id": cls.journal_1.id,
  38. })
  39. cls.account_move_1 = cls.env["account.move"].create({
  40. "name": "Test Account Move 1",
  41. "journal_id": cls.journal_1.id,
  42. })
  43. cls.account_move_line_1 = cls.env["account.move.line"].create({
  44. "move_id": cls.account_move_1.id,
  45. "account_id": cls.account_1.id,
  46. })
  47. line_obj = cls.env["account.bank.statement.line"]
  48. cls.st_line_w_partner_not_reconciled = line_obj.create({
  49. "name": "Test Account Bank Statement 1",
  50. "statement_id": cls.statement_1.id,
  51. "partner_id": cls.partner_1.id,
  52. "journal_entry_ids": False,
  53. "account_id": False,
  54. })
  55. cls.st_line_wo_partner_not_reconciled = line_obj.create({
  56. "name": "Test Account Bank Statement 2",
  57. "statement_id": cls.statement_1.id,
  58. "partner_id": False,
  59. "journal_entry_ids": False,
  60. "account_id": False,
  61. })
  62. cls.st_line_w_partner_reconciled = line_obj.create({
  63. "name": "Test Account Bank Statement 3",
  64. "statement_id": cls.statement_1.id,
  65. "partner_id": cls.partner_2.id,
  66. })
  67. cls.account_move_line_1.write({
  68. "statement_line_id": cls.st_line_w_partner_reconciled.id,
  69. })
  70. def test_bank_statements_clear_partner(self):
  71. self.statement_1.clear_partners()
  72. # Confirm statement_line_1 has no parter
  73. self.assertFalse(
  74. self.st_line_w_partner_not_reconciled.partner_id
  75. )
  76. # Confirm statement_line_3 still has partner because it was already reconciled
  77. self.assertTrue(
  78. self.st_line_w_partner_reconciled.partner_id
  79. )