Repository
odoo/odoo · module folder
Module version
1.1
Category
Accounting/Localizations/Point of Sale
Folder size
0.1 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-08-07 06:47:02
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Odoo Translation Bot, Julien Castiaux, Gorash, Mathieu Duckerts-Antoine, David Monnom (moda), Pedram (PEBR), Dylan Kiss (dyki), Majed Alhanash (malh), manv-afk, Loukas Wets (lowe), paan-odoo, Jitendra Prajapat, David Monnom, Krzysztof Magusiak (krma), Akash Pandey, Robin Engels (roen), vpan-odoo, dhruv, Hadi El Yakhni, Bhavik Darji, sjai-odoo, Martin Doyen, NEDJIMAbelgacem, Rebeca Ramírez (lare)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This add-on brings the technical requirements of the French regulation CGI art. 286, I. 3° bis that stipulates certain criteria concerning the inalterability, security, storage and archiving of data related to sales to private individuals (B2C).
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Install it if you use the Point of Sale app to sell to individuals.

The module adds following features:

    Inalterability: deactivation of all the ways to cancel or modify key data of POS orders, invoices and journal entries

    Security: chaining algorithm to verify the inalterability

    Storage: automatic sales closings with computation of both period and cumulative totals (daily, monthly, annually)

    Access to download the mandatory Certificate of Conformity delivered by Odoo SA (only for Odoo Enterprise users)

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
form_view_account_sale_closing Sales Closings account.sale.closing form New
list_view_account_sale_closing Sales Closings account.sale.closing list New
pos_order_form_inherit pos.order.form.inherit pos.order form Inherits point_of_sale.view_pos_pos_form
report_pos_hash_integrity report_pos_hash_integrity ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.l10n_fr_pos_cert res.config.settings form Inherits point_of_sale.res_config_settings_view_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)

New fields (11)
  • company_id Many2one → res.company
    readonly=True required=True string='Company' args: 'res.company'
  • cumulative_total Monetary
    help='Total in receivable accounts since the beginnig of times' readonly=True required=True string='Cumulative Grand Total'
  • currency_id Many2one → res.currency
    help="The company's currency" readonly=True related='company_id.currency_id' store=True string='Currency' args: 'res.currency'
  • date_closing_start Datetime
    help='Date from which the total interval is computed' readonly=True required=True string='Starting Date'
  • date_closing_stop Datetime
    help='Date to which the values are computed' readonly=True required=True string='Closing Date'
  • frequency Selection
    readonly=True required=True selection=[('daily', 'Daily'), ('monthly', 'Monthly'), ('annually', 'Annual')] string='Closing Type'
  • last_order_hash Char
    readonly=True string="Last Order entry's inalteralbility hash"
  • last_order_id Many2one → pos.order
    help='Last Pos order included in the grand total' readonly=True string='Last Pos Order' args: 'pos.order'
  • name Char
    help='Frequency and unique sequence number' required=True
  • sequence_number Integer
    readonly=True required=True args: 'Sequence #'
  • total_interval Monetary
    help='Total in receivable accounts during the interval, excluding overlapping periods' readonly=True required=True string='Period Total'
Public methods (1)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • open_ui(self)

New fields (5)
  • l10n_fr_hash Char
    copy=False readonly=True string='Inalteralbility Hash'
  • l10n_fr_secure_sequence_number Integer
    copy=False readonly=True string='Inalteralbility No Gap Sequence #'
  • l10n_fr_string_to_hash Char
    compute='_compute_string_to_hash' readonly=True store=False
  • pos_version Char
    copy=False help='Version of Odoo that created the order' readonly=True
  • previous_order_id Many2one → pos.order
    compute='_compute_previous_order' copy=False readonly=True store=True string='Previous Order' args: 'pos.order'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (1)
  • open_frontend_cb(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_fr_pos_cert_sequence_id Many2one → ir.sequence
    args: 'ir.sequence'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…