[FIX] l10n_fr_pos_cert: add usererror for non-unalterable accounting

The error will occur when a user try to print POS inalterability check report
for pos orders when accounting is not unalterable for that company.
steps to produce:

1. install l10n_fr_pos_cert the  module
2. switch to company other than FR company
3. pos > reporting > POS inalterability check .

when the company's country is not in unalterable country :
https://github.com/odoo/odoo/blob/3b88958f5a07edf86d2fc9c8080ee46d16b872ef/addons/l10n_fr/models/res_company.py#L14-L24

1. so,`_check_pos_hash_integrity()` gets Nonetype which will lead to above
traceback, when trying to update the data dictionary.
2. Also, `_check_hash_pos_integrity()` is not defined in our standard code so ,
this commit optimize the `_get_report_values` method.
see : https://github.com/odoo/odoo/blob/3b88958f5a07edf86d2fc9c8080ee46d16b872ef/addons/l10n_fr_pos_cert/report/pos_hash_integrity.py#LL11C1-L22

sentry-4243853702

closes odoo/odoo#127145

X-original-commit: 9d00424cada540f9a2f913280a23b9268f930168
Signed-off-by: Achraf Ben Azzouz (abz) <abz@odoo.com>
This commit is contained in:
Karnav Sojitra
2023-07-07 12:09:52 +02:00
committed by Mahamadasif Ansari
parent 386a63e9bb
commit 354faaec38
3 changed files with 13 additions and 4 deletions
@@ -68,6 +68,15 @@ msgstr ""
msgid "Account Closing"
msgstr ""
#. module: l10n_fr_pos_cert
#. odoo-python
#: code:addons/l10n_fr_pos_cert/models/res_company.py:0
#, python-format
msgid ""
"Accounting is not unalterable for the company %s. This mechanism is designed"
" for companies where accounting is unalterable."
msgstr ""
#. module: l10n_fr_pos_cert
#. odoo-python
#: code:addons/l10n_fr_pos_cert/models/pos.py:0
@@ -95,3 +95,5 @@ class ResCompany(models.Model):
'printing_date': format_date(self.env, Date.to_string( Date.today())),
'corrupted_orders': corrupted_orders or 'None'
}
else:
raise UserError(_('Accounting is not unalterable for the company %s. This mechanism is designed for companies where accounting is unalterable.') % self.env.company.name)
@@ -10,10 +10,8 @@ class ReportPosHashIntegrity(models.AbstractModel):
@api.model
def _get_report_values(self, docids, data=None):
if data:
data.update(self.env.company._check_pos_hash_integrity())
else:
data = self.env.company._check_hash_pos_integrity()
data = data or {}
data.update(self.env.company._check_pos_hash_integrity() or {})
return {
'doc_ids' : docids,
'doc_model' : self.env['res.company'],