Go to file
2026-06-01 08:14:19 +07:00
models refactor: update field labels and definitions for POS order audit fields 2026-05-18 11:01:33 +07:00
static/src/app fix: synchronize employee identification logic for empty orders across POS components and services 2026-06-01 08:14:19 +07:00
views refactor: centralize payment authorization logic in PoS store and update UI components 2026-05-12 15:52:29 +07:00
__init__.py first commit 2026-05-12 13:15:13 +07:00
__manifest__.py feat: rename Basic Receipt button to Table Checker in action pad and receipt screen 2026-05-26 10:01:12 +07:00
.gitignore first commit 2026-05-12 13:15:13 +07:00
README.md feat: implement automatic incremental Table Checker printing upon order submission 2026-05-28 09:17:52 +07:00

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.
  • 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.