Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
1
account_invoice_supplier_ref_unique/tests/__init__.py
Normal file
1
account_invoice_supplier_ref_unique/tests/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from . import test_account_invoice_supplier_ref_unique
|
||||
@@ -0,0 +1,114 @@
|
||||
# Copyright 2016 Acsone
|
||||
# Copyright 2020 Onestein (<https://www.onestein.eu>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.tests import tagged
|
||||
|
||||
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
|
||||
|
||||
|
||||
@tagged("post_install", "-at_install")
|
||||
class TestAccountInvoiceSupplierRefUnique(AccountTestInvoicingCommon):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
|
||||
# ENVIRONMENTS
|
||||
cls.account_account = cls.env["account.account"]
|
||||
cls.account_move = cls.env["account.move"].with_context(
|
||||
**{"tracking_disable": True}
|
||||
)
|
||||
|
||||
# INSTANCES
|
||||
cls.partner = cls.env["res.partner"].create({"name": "Test Partner"})
|
||||
# Account for invoice
|
||||
cls.account = cls.account_account.search(
|
||||
[
|
||||
(
|
||||
"account_type",
|
||||
"=",
|
||||
"asset_receivable",
|
||||
)
|
||||
],
|
||||
limit=1,
|
||||
)
|
||||
# Invoice with unique reference 'ABC123'
|
||||
cls.invoice = cls.account_move.create(
|
||||
{
|
||||
"partner_id": cls.partner.id,
|
||||
"invoice_date": fields.Date.today(),
|
||||
"move_type": "in_invoice",
|
||||
"supplier_invoice_number": "ABC123",
|
||||
"invoice_line_ids": [(0, 0, {"partner_id": cls.partner.id})],
|
||||
}
|
||||
)
|
||||
|
||||
# Activate unique number check
|
||||
cls.env.company.check_invoice_supplier_number = True
|
||||
|
||||
def test_check_unique_supplier_invoice_number_insensitive(self):
|
||||
# A new invoice instance with an existing supplier_invoice_number
|
||||
with self.assertRaises(ValidationError):
|
||||
self.account_move.create(
|
||||
{
|
||||
"partner_id": self.partner.id,
|
||||
"move_type": "in_invoice",
|
||||
"supplier_invoice_number": "ABC123",
|
||||
}
|
||||
)
|
||||
# A new invoice instance with a new supplier_invoice_number
|
||||
self.account_move.create(
|
||||
{
|
||||
"partner_id": self.partner.id,
|
||||
"move_type": "in_invoice",
|
||||
"supplier_invoice_number": "ABC123bis",
|
||||
}
|
||||
)
|
||||
|
||||
def test_no_check_unique_supplier_invoice_number(self):
|
||||
# A new invoice instance with an existing supplier_invoice_number
|
||||
self.env.company.check_invoice_supplier_number = False
|
||||
self.account_move.create(
|
||||
{
|
||||
"partner_id": self.partner.id,
|
||||
"move_type": "in_invoice",
|
||||
"supplier_invoice_number": "ABC123",
|
||||
}
|
||||
)
|
||||
|
||||
def test_onchange_supplier_invoice_number(self):
|
||||
self.invoice._onchange_supplier_invoice_number()
|
||||
self.assertEqual(
|
||||
self.invoice.ref,
|
||||
self.invoice.supplier_invoice_number,
|
||||
"_onchange_supplier_invoice_number",
|
||||
)
|
||||
|
||||
def test_copy_invoice(self):
|
||||
invoice2 = self.invoice.copy()
|
||||
self.assertNotEqual(self.invoice.ref, "")
|
||||
self.assertEqual(invoice2.ref, "")
|
||||
|
||||
def test_reverse_invoice(self):
|
||||
self.invoice._post()
|
||||
move_reversal = (
|
||||
self.env["account.move.reversal"]
|
||||
.with_context(active_model="account.move", active_ids=self.invoice.ids)
|
||||
.create(
|
||||
{
|
||||
"date": fields.Date.today(),
|
||||
"reason": "no reason",
|
||||
"journal_id": self.invoice.journal_id.id,
|
||||
}
|
||||
)
|
||||
)
|
||||
reversal = move_reversal.reverse_moves()
|
||||
refund = self.env["account.move"].browse(reversal["res_id"])
|
||||
self.assertNotEqual(self.invoice.ref, "")
|
||||
self.assertEqual(refund.ref, "")
|
||||
|
||||
def test_reverse_moves_robustness(self):
|
||||
res = self.invoice._reverse_moves()
|
||||
self.assertTrue(res.is_purchase_document(include_receipts=True))
|
||||
Reference in New Issue
Block a user