HTKapp Logo

Expense Reports Module

HtkDoli's Expense Reports module lets you enter, validate and get approval for your professional expenses, then record their payment. It covers the full Dolibarr cycle: Draft → Validated → Approved → Paid, with management of supporting documents.

⚠️ Known limitation — expense lines. Adding lines (expense details) to an expense report may not be possible depending on your Dolibarr version: recent releases (Dolibarr 22) disable the POST/PUT/DELETE /expensereports/{id}/lines endpoints server-side, in which case the app displays a clear message. You can always create and view the report header from the app; when line management is unavailable, enter the expense lines from Dolibarr's web interface.

Interface and Features (List)

The main view displays the list of all expense reports.

  • Search bar: Search by reference or user.
  • Sorting:
    • Date (Most recent → Oldest) — default
    • Date (Oldest → Most recent)
    • Amount (Highest)
    • Amount (Lowest)
  • Filters by status, with a counter:
    • All
    • Draft (0)
    • Validated (1)
    • Approved (2)
    • Paid (4)
    • Cancelled (5)
    • Refused (99)

Information displayed (Expense Report Cards)

Each row represents a report with:

  • Its reference.
  • The beneficiary (the relevant Dolibarr user).
  • The period covered (start and end date).
  • The total amount incl. tax.
  • Its status as a badge.

Pagination

  • List paginated by 50 with a "Load more" button.
  • Pull-to-refresh available.

Detail View (Viewing an expense report)

Header (Hero Section)

  • Reference.
  • Period (start date / end date).
  • Total amount.
  • Status badge.

Workflow (depending on status)

Draft status (0)

  • Validate the expense report: Moves to the Validated status.

Validated status (1)

  • Approve the expense report: Moves to the Approved status.
  • Refuse the expense report: Asks for a reason (required — Dolibarr rejects a refusal without one, and the requester sees it), then moves to the Refused status.

Approved status (2)

  • Record a payment: Opens the payment sheet — date, payment mode, bank account (required) and amount.

Lines (expenses)

A detailed list of the expenses included in the report, each showing:

  • Expense type (fuel, meals, transport, hotel, etc.).
  • Date.
  • Description.
  • Amount excl. tax, VAT, incl. tax.
  • Attached receipt: a clickable icon to view it, or an "Upload" button if it is still missing.

If the report is in Draft:

  • An "Add an expense" button appears at the bottom of the list.
  • Swiping left on a line lets you delete it.

Information

  • Beneficiary (user)
  • Period
  • Creation date
  • Total amount
  • Validation, approval and payment dates (depending on status)

Notes

  • Public Note.
  • Private Note (padlock).

Documents

Attachments for the report as a whole (beyond the per-line receipts). Viewing, PDF preview, download, adding.

Tools

  • Clone / Duplicate: Creates a new draft report with the same lines.

Floating header actions

  • Clone / Duplicate.
  • Delete (confirmation alert).

Recording a payment

The payment screen (ExpenseReportPaymentView) lets you record the settlement of an approved report:

Payment details

  • Payment date.
  • Payment type (transfer, cheque, cash, card, etc.).
  • Amount.
  • Number (cheque, transaction, etc.).

Additional information

  • Descriptive note (optional).
  • An in-progress indicator while submitting.

Once confirmed, the status automatically moves to Paid.

Creation and editing

The report editing screen lets you fill in:

  • The beneficiary user.
  • The period covered.
  • The public / private notes.

Expense lines are then added one by one from the detail view.

Editing a line

The line editing screen (ExpenseReportLineEditView) lets you enter:

  • Expense type.
  • Date.
  • Description.
  • Amount excl. tax and VAT rate (incl. tax computed automatically).
  • Receipt (photo taken from the app or imported from the library).

Business Logic and Dolibarr

Lifecycle

  • Draft (0): Initial entry, lines editable.
  • Validated (1): Submitted to the approver.
  • Approved (2): Validated by the manager, ready for payment.
  • Paid (4): Payment recorded.
  • Cancelled (5) / Refused (99): Report rejected.

Rights and Permissions

  • Read: Read permission for the Expense Reports module required.
  • Creation / Modification: expensereport.creer permission.
  • Validation: expensereport.creer permission (self-validation possible).
  • Approval: expensereport.approve permission.
  • Payment: expensereport.payer permission.

Synchronisation

  • Paginated list.
  • Lines and receipts are loaded when the sheet is opened.
  • Workflow actions and payments are propagated to Dolibarr immediately.

Screenshots

2 screenshots — click to enlarge