Expenses

Claims and approvals

MarketplaceFinanceVersion 0.1.0manifest

What it is for ​

Employees file expense claims that move through draft, submitted, approved and paid. Paying needs its own permission and a human approval; receipts are referenced by note, not stored.

What the package does and does not do ​

Employee expense claims with a draft, submitted, approved and paid flow. Paying is a separate permission and needs a human approval; receipts are referenced by note, not stored.

Models ​

expenses_expense ​

An amount an employee spent for the business and wants reimbursed

Read group: expenses.user. Write group: expenses.user.

FieldKindData classPersonal dataGroupAgents seeDescription
descriptiontextnonenoexpenses.userin clearWhat the money was spent on
employeetextinternalyesexpenses.usermaskedName of the person claiming the expense
spent_ondatenonenoexpenses.userin clearDate of the purchase (YYYY-MM-DD)
categoryselect (travel, meals, lodging, supplies, software, other)nonenoexpenses.userin clearExpense category: travel, meals, lodging, supplies, software, other
amountmoneyfinancialyesexpenses.userwithheldAmount owed to the employee (minor currency units, e.g. cents)
currencytextnonenoexpenses.userin clearISO 4217 currency code, for example EUR
receipt_notelongtextnonenoexpenses.userin clearWhere the receipt is kept and what it shows
paid_ondatefinancialyesexpenses.financewithheldDate the employee was reimbursed (YYYY-MM-DD)
payment_referencetextfinancialyesexpenses.financewithheldBank transfer reference of the reimbursement
stateselect (draft, submitted, approved, paid, refused)nonenoexpenses.userin clearClaim status: draft, submitted, approved, paid, refused

Workflows ​

expenses_expense ​

ActionMovesWho may run itApproval
expenses_expense.submitstate: draft → submittedexpenses.userno
expenses_expense.approvestate: submitted → approvedexpenses.managerno
expenses_expense.paystate: approved → paidexpenses.financeyes
expenses_expense.refusestate: submitted → refusedexpenses.managerno

Permission groups ​

Groups used by this app:

  • expenses.finance
  • expenses.manager
  • expenses.user

Approval steps ​

Steps an agent can only propose:

  • expenses_expense.pay

What agents can and cannot do ​

An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.

It can only propose these steps, and a person must approve them: expenses_expense.pay, expenses_expense.delete.

Personal data is masked as placeholder tokens: expenses_expense.employee.

These fields are withheld from agents entirely: expenses_expense.amount, expenses_expense.paid_on, expenses_expense.payment_reference.

Dependencies ​

None.

Install ​

Install it from the Customize app (Marketplace), or from the command line:

bash
obop modules install-from expenses

Needs a database and administrator rights.

Build your own ​

The module guide shows how apps like this one are written