Skip to content

Commit

Permalink
[14.0][FIX] l10n_do_accounting: fix seq with same prefix in diferent …
Browse files Browse the repository at this point in the history
…year (#1158)

* [FIX] l10n_do_accounting: fix seq with same prefix in diferent year

* [REF] l10n_do_accounting: use posted_before

---------

Co-authored-by: José López <joselopezg8@gmail.com>
  • Loading branch information
Jorge-C0 and jlopezg committed Jul 4, 2024
1 parent d9850f8 commit 4f1cd64
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion l10n_do_accounting/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"category": "Localization",
"license": "LGPL-3",
"website": "https://github.com/odoo-dominicana",
"version": "16.0.1.5.8",
"version": "16.0.1.5.9",
# any module necessary for this one to work correctly
"depends": ["l10n_latam_invoice_document", "l10n_do"],
# always loaded
Expand Down
17 changes: 17 additions & 0 deletions l10n_do_accounting/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -871,3 +871,20 @@ def unlink(self):
_("You cannot delete fiscal invoice which have been posted before")
)
return super(AccountMove, self).unlink()

# Extension of the _deduce_sequence_number_reset function to compute the `name` field according to the invoice
# date and prevent the `l10n_latam_document_number` field from being reset
@api.model
def _deduce_sequence_number_reset(self, name):
if (
self.l10n_latam_use_documents
and self.company_id.country_id.code == "DO"
and self.posted_before
and not self._context.get("is_l10n_do_seq", False)
):
return "year"
elif self._context.get("is_l10n_do_seq", False):
return "never"
else:
"never"
return super(AccountMove, self)._deduce_sequence_number_reset(name)
11 changes: 11 additions & 0 deletions l10n_do_accounting/tests/test_account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,17 @@ def test_009_invoice_sequence(self):
self.assertEqual(invoice_2.name, "INV/%s/0002" % invoice_2.date.year)
self.assertEqual(invoice_2.l10n_do_fiscal_number, "B0100000002")

# Unit test to verify if the invoice number or document number is repeated
invoice_3 = self._create_l10n_do_invoice(
data={
"invoice_date": "2023-05-08",
}
)
invoice_3._post()
self.assertEqual(invoice_3.name, "INV/%s/0001" % invoice_3.date.year)
self.assertNotEqual(invoice_3.l10n_do_fiscal_number, "B0100000001")
self.assertEqual(invoice_3.l10n_do_fiscal_number, "B0100000003")

def test_010_ncf_format(self):
with self.assertRaises(ValidationError):
self._create_l10n_do_invoice(data={"document_number": "E0100000001"})
Expand Down

0 comments on commit 4f1cd64

Please sign in to comment.