Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[15.0][FIX] l10n_do_accounting: fix seq with same prefix in diferent year #1155

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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": "15.0.0.14.2",
"version": "15.0.0.14.3",
# 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 @@ -1020,3 +1020,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):
name_values = ['/', False, '', '1']

if (self.l10n_latam_use_documents
and self.company_id.country_id.code == "DO"
and name not in name_values
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 @@ -708,6 +708,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
Loading