TIP: You can type at any time to perform a new search.
France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis)
l10n_fr_pos_cert · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Accounting/Localizations/Point of Sale
- Folder size
- 0.11 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-09-28 18:31:20
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Victor Feyens, Tiffany Chang (tic), David Monnom (moda), Victor Piryns (pivi), Dylan Kiss (dyki), Adrien Guilliams (adgu), Loukas Wets (lowe), Claire (clbr), David Monnom, Michaël Mattiello, Robin Engels (roen), vpan-odoo, Hadi El Yakhni, Bhavik Darji, sjai-odoo, Martin Doyen, Traina Ludo, Rebeca Ramírez (lare), Vedant Pandey (vpan-odoo), Jean Schoenlaub, pusu-odoo
- 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 (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
form_view_account_sale_closing |
Sales Closings | account.sale.closing | form | New |
l10n_fr_pos_cert.pos_order_receipt |
l10n_fr_pos_cert.pos_order_receipt | ir.ui.view | qweb | Inherits point_of_sale.pos_order_receipt |
l10n_fr_pos_cert.pos_orderline_receipt_information |
l10n_fr_pos_cert.pos_orderline_receipt_information | ir.ui.view | qweb | Inherits point_of_sale.pos_orderline_receipt_information |
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 (9)
New fields (0)
No new fields.
Public methods (1)-
write(self, vals)
New fields (11)
-
company_idMany2one → res.companyindex=Truereadonly=Truerequired=Truestring='Company' args: 'res.company' -
cumulative_totalMonetaryhelp='Total in receivable accounts since the beginnig of times'readonly=Truerequired=Truestring='Cumulative Grand Total' -
currency_idMany2one → res.currencyhelp="The company's currency"readonly=Truerelated='company_id.currency_id'store=Truestring='Currency' args: 'res.currency' -
date_closing_startDatetimehelp='Date from which the total interval is computed'readonly=Truerequired=Truestring='Starting Date' -
date_closing_stopDatetimehelp='Date to which the values are computed'readonly=Truerequired=Truestring='Closing Date' -
frequencySelectionreadonly=Truerequired=Trueselection=[('daily', 'Daily'), ('monthly', 'Monthly'), ('annually', 'Annual')]string='Closing Type' -
last_order_hashCharreadonly=Truestring="Last Order entry's inalteralbility hash" -
last_order_idMany2one → pos.orderhelp='Last Pos order included in the grand total'readonly=Truestring='Last Pos Order' args: 'pos.order' -
nameCharhelp='Frequency and unique sequence number'required=True -
sequence_numberIntegerreadonly=Truerequired=True args: 'Sequence #' -
total_intervalMonetaryhelp='Total in receivable accounts during the interval, excluding overlapping periods'readonly=Truerequired=Truestring='Period Total'
-
write(self, vals)
New fields (0)
No new fields.
Public methods (1)-
open_ui(self)
New fields (5)
-
l10n_fr_hashCharcopy=Falsereadonly=Truestring='Inalteralbility Hash' -
l10n_fr_secure_sequence_numberIntegercopy=Falsereadonly=Truestring='Inalteralbility No Gap Sequence #' -
l10n_fr_string_to_hashCharcompute='_compute_string_to_hash'readonly=Truestore=False -
pos_versionCharcopy=Falsehelp='Version of Odoo that created the order'readonly=True -
previous_order_idMany2one → pos.ordercompute='_compute_previous_order'copy=Falsereadonly=Truestore=Truestring='Previous Order' args: 'pos.order'
-
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 (0)No public methods.
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_idMany2one → ir.sequenceargs: 'ir.sequence'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…