# 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. - **Order Attribution (Cashier)**: Records the employee who authenticated for the payment. - **UI Streamlining - Floor Screen**: Removes manual "+ New Order" buttons to enforce a table-based workflow. - **UI Streamlining - Course**: Hides the "Course" button on the POS UI. - **UI Streamlining - Transfer Course**: Hides the "Transfer Course" button on the POS UI. - **UI Streamlining - Save Order**: Hides the save order for later (upload icon) button from the POS UI. - **UI Streamlining - Set Table**: Hides the "Set Table" button from Register/Direct Sale orders. - **UI Streamlining - Button Renaming**: Renames the "Basic Receipt" button to "Table Checker" (on both the action pad and print success screen) for clearer pre-payment table verification. - **Automatic Table Checker on Send**: Automatically prints a "Table Checker" (Basic Receipt) whenever the employee clicks the kitchen "Send" button to submit changes. - **Incremental Printing on Send**: When additional items are added to an already sent order, the automatic print on "Send" is filtered to print *only the newly added (additional) items*, preventing duplicate printing of already served items. ## 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.