# 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 Load Order**: Enforces PIN entry when a draft order is loaded/resumed from the Orders tab (`TicketScreen`). - **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. - Hides the "Set Table" button from Register/Direct Sale orders. - Renames the "Basic Receipt" button to "Table Checker" (on both the action pad and print success screen) for clearer pre-payment table verification. ## Dependencies - `point_of_sale` - `pos_restaurant` - `pos_hr` - `pos_employee_role` ## Installation 1. Place the `pos_custom_access` directory in your Odoo `customaddons` folder. 2. Restart the Odoo server. 3. Update the App List in the Odoo backend. 4. Install the `POS Custom Employee Access` module. ## 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 (standard `pos_hr` field). - `payer_id`: "Cashier" - Employee who processed the payment. These fields can be viewed in the POS Order backend list and form views.