52 lines
3.5 KiB
Markdown
52 lines
3.5 KiB
Markdown
# 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.
|
|
- **Block Discount Split/Transfer**: Prevents discount lines (including reward lines, global discounts, and negative price/manual adjustment lines) from being manually split or transferred on the POS split bill screen.
|
|
- **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.
|
|
- **Unlock Register PIN/Selection Bypass**: Bypasses the PIN prompt and employee selection when unlocking the register. It unlocks directly with the current/last cashier. Note that opening the register (new session) still requires PIN entry.
|
|
- **Stay on Current Order on Send**: Retains the POS UI on the current table/order screen after clicking "Send" rather than returning to the Floor Screen (table view).
|
|
|
|
|
|
## 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.
|