| models | ||
| static/src/app | ||
| views | ||
| __init__.py | ||
| __manifest__.py | ||
| .gitignore | ||
| README.md | ||
POS Custom Employee Access
This Odoo 19 module enhances the security and auditability of the Point of Sale system by enforcing PIN-based authentication for critical workflows and tracking detailed order attribution.
Features
- Mandatory PIN on Table Selection: Prevents unauthorized access to tables. Every table selection triggers a PIN prompt to identify the employee taking the order.
- Mandatory PIN on Payment: Requires PIN authentication before processing payments to ensure the transaction is handled by an authorized employee.
- Role-Based Payment Gating: Cross-checks employee roles (using
pos_employee_role) to prevent roles like 'waiter' from processing payments. - Order Attribution:
Order Taker: Records the employee who first authenticated for the table.Cashier: Records the employee who authenticated for the payment.
- UI Streamlining:
- Removes manual "+ New Order" buttons to enforce a table-based workflow.
- Hides the "Course" button on the POS UI.
- Hides the "Transfer Course" button on the POS UI.
- Hides the save order for later (upload icon) button from the POS UI.
Dependencies
point_of_salepos_restaurantpos_hrpos_employee_role
Installation
- Place the
pos_custom_accessdirectory in your Odoocustomaddonsfolder. - Restart the Odoo server.
- Update the App List in the Odoo backend.
- Install the
POS Custom Employee Accessmodule.
Configuration
Ensure that employees have PINs set in their HR Employee profile and that they are assigned appropriate roles if using pos_employee_role.
Audit Fields
The following fields are added or modified on the pos.order model:
user_id: "Session User" - Odoo user who opened the session.employee_id: "Order Taker" - Employee who registered the order/uses the cash register (standardpos_hrfield).payer_id: "Cashier" - Employee who processed the payment.
These fields can be viewed in the POS Order backend list and form views.