[IMP] - Chronology check depends on invoice type if journal is set to Dedicated Credit Note Sequence
This commit is contained in:
parent
f0ee046b14
commit
c38dfc37e9
@ -21,12 +21,14 @@ msgstr ""
|
||||
|
||||
#. module: account_invoice_constraint_chronology
|
||||
#: code:addons/account_invoice_constraint_chronology/model/account_invoice.py:54
|
||||
#: code:addons/account_invoice_constraint_chronology/model/account_invoice.py:66
|
||||
#, python-format
|
||||
msgid "Chronology Error. Please confirm older draft invoices before {date_invoice} and try again."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_invoice_constraint_chronology
|
||||
#: code:addons/account_invoice_constraint_chronology/model/account_invoice.py:70
|
||||
#: code:addons/account_invoice_constraint_chronology/model/account_invoice.py:82
|
||||
#, python-format
|
||||
msgid "Chronology Error. There exist at least one invoice with a later date to {date_invoice}."
|
||||
msgstr ""
|
||||
|
@ -13,7 +13,7 @@ class AccountInvoice(models.Model):
|
||||
|
||||
@api.model
|
||||
def _prepare_previous_invoices_domain(self, invoice):
|
||||
return [
|
||||
domain = [
|
||||
('state', 'not in', ['open',
|
||||
'paid',
|
||||
'cancel',
|
||||
@ -24,14 +24,26 @@ class AccountInvoice(models.Model):
|
||||
('date_invoice', '<', invoice.date_invoice),
|
||||
('journal_id', '=', invoice.journal_id.id),
|
||||
]
|
||||
if (
|
||||
invoice.journal_id.refund_sequence
|
||||
and invoice.journal_id.sequence_id != invoice.journal_id.refund_sequence_id
|
||||
):
|
||||
domain.append(('type', '=', invoice.type))
|
||||
return domain
|
||||
|
||||
@api.model
|
||||
def _prepare_later_invoices_domain(self, invoice):
|
||||
return [
|
||||
domain = [
|
||||
('state', 'in', ['open', 'in_payment', 'paid']),
|
||||
('date_invoice', '>', invoice.date_invoice),
|
||||
('journal_id', '=', invoice.journal_id.id),
|
||||
]
|
||||
if (
|
||||
invoice.journal_id.refund_sequence
|
||||
and invoice.journal_id.sequence_id != invoice.journal_id.refund_sequence_id
|
||||
):
|
||||
domain.append(('type', '=', invoice.type))
|
||||
return domain
|
||||
|
||||
@api.multi
|
||||
def action_move_create(self):
|
||||
|
@ -2,3 +2,4 @@
|
||||
* Gilles Gilles <meyomesse.gilles@gmail.com>
|
||||
* Francesco Apruzzese <f.apruzzese@apuliasoftware.it>
|
||||
* Thomas Binsfeld <thomas.binsfeld@acsone.eu>
|
||||
* Souheil Bejaoui <souheil.bejaoui@acsone.eu>
|
||||
|
@ -133,3 +133,31 @@ class TestAccountConstraintChronology(common.SavepointCase):
|
||||
self.account_journal_sale.type = 'bank'
|
||||
self.account_journal_sale._onchange_type()
|
||||
self.assertFalse(self.account_journal_sale.check_chronology)
|
||||
|
||||
def test_invoice_refund(self):
|
||||
journal = self.get_journal_check(True)
|
||||
today = datetime.now()
|
||||
tomorrow = today + timedelta(days=1)
|
||||
date_tomorrow = tomorrow.strftime(DEFAULT_SERVER_DATE_FORMAT)
|
||||
invoice_1 = self.create_simple_invoice(journal.id, date_tomorrow)
|
||||
self.assertTrue(
|
||||
(invoice_1.state == "draft"), "Initial invoice state is not Draft"
|
||||
)
|
||||
invoice_1.action_invoice_open()
|
||||
date = today.strftime(DEFAULT_SERVER_DATE_FORMAT)
|
||||
refund_invoice_wiz = (
|
||||
self.env["account.invoice.refund"]
|
||||
.with_context(active_ids=[invoice_1.id])
|
||||
.create(
|
||||
{
|
||||
"description": "test_invoice_refund",
|
||||
"filter_refund": "cancel",
|
||||
"date": date,
|
||||
"date_invoice": date,
|
||||
}
|
||||
)
|
||||
)
|
||||
with self.assertRaises(UserError):
|
||||
refund_invoice_wiz.invoice_refund()
|
||||
invoice_1.journal_id.refund_sequence = True
|
||||
refund_invoice_wiz.invoice_refund()
|
||||
|
Loading…
Reference in New Issue
Block a user