diff --git a/addons/l10n_fr_pos_cert/models/res_company.py b/addons/l10n_fr_pos_cert/models/res_company.py
index e509dd52005..014e4ff7e10 100644
--- a/addons/l10n_fr_pos_cert/models/res_company.py
+++ b/addons/l10n_fr_pos_cert/models/res_company.py
@@ -57,7 +57,6 @@ class ResCompany(models.Model):
order_reference_string = order.pos_reference and entry_reference % order.pos_reference or ''
return [ctx_tz(order, 'date_order'), order.l10n_fr_hash, order.name, order_reference_string, ctx_tz(order, 'write_date')]
- hash_verified = True
msg_alert = ''
report_dict = {}
if self._is_accounting_unalterable():
@@ -66,32 +65,31 @@ class ResCompany(models.Model):
if not orders:
msg_alert = (_('There isn\'t any order flagged for data inalterability yet for the company %s. This mechanism only runs for point of sale orders generated after the installation of the module France - Certification CGI 286 I-3 bis. - POS', self.env.company.name))
- hash_verified = False
previous_hash = u''
- start_order_info = []
+ corrupted_orders = []
for order in orders:
if order.l10n_fr_hash != order._compute_hash(previous_hash=previous_hash):
+ corrupted_orders.append(order.name)
msg_alert = (_('Corrupted data on point of sale order with id %s.', order.id))
- hash_verified = False
- break
previous_hash = order.l10n_fr_hash
- if hash_verified:
- orders_sorted_date = orders.sorted(lambda o: o.date_order)
- start_order_info = build_order_info(orders_sorted_date[0])
- end_order_info = build_order_info(orders_sorted_date[-1])
+ orders_sorted_date = orders.sorted(lambda o: o.date_order)
+ start_order_info = build_order_info(orders_sorted_date[0])
+ end_order_info = build_order_info(orders_sorted_date[-1])
- report_dict.update({
- 'first_order_name': start_order_info[2],
- 'first_order_hash': start_order_info[1],
- 'first_order_date': start_order_info[0],
- 'last_order_name': end_order_info[2],
- 'last_order_hash': end_order_info[1],
- 'last_order_date': end_order_info[0],
- })
+ report_dict.update({
+ 'first_order_name': start_order_info[2],
+ 'first_order_hash': start_order_info[1],
+ 'first_order_date': start_order_info[0],
+ 'last_order_name': end_order_info[2],
+ 'last_order_hash': end_order_info[1],
+ 'last_order_date': end_order_info[0],
+ })
+ corrupted_orders = ', '.join([o for o in corrupted_orders])
return {
- 'result': hash_verified and report_dict or 'None',
+ 'result': report_dict or 'None',
'msg_alert': msg_alert or 'None',
'printing_date': format_date(self.env, Date.to_string( Date.today())),
+ 'corrupted_orders': corrupted_orders or 'None'
}
diff --git a/addons/l10n_fr_pos_cert/report/pos_hash_integrity.xml b/addons/l10n_fr_pos_cert/report/pos_hash_integrity.xml
index a64b3d9a0a8..d1a36cbbf35 100644
--- a/addons/l10n_fr_pos_cert/report/pos_hash_integrity.xml
+++ b/addons/l10n_fr_pos_cert/report/pos_hash_integrity.xml
@@ -34,7 +34,7 @@