Expenses Management

Record, track, and approve business expenses with budget integration and reconciliation.

Expenses Management

8.1 Overview

The Expenses Management module provides comprehensive expense tracking, approval workflows, budget integration, and advance reconciliation capabilities.

Tab Structure:

  • Dashboard - Expense analytics and summaries
  • Categories - Expense category configuration
  • Record Expense - Create new expense entries
  • Expenses - View, approve, and manage all expenses
  • Advances - Employee cash advance management

8.2 Expense Categories Tab

Configure expense categories for classification and budget linking.

8.2.1 Summary Cards

CardDescription
Total CategoriesCount of all expense categories
Active CategoriesNumber of active categories

8.2.2 Available Actions

ActionDescriptionHow to Access
Add CategoryCreate a new expense categoryClick "Add Category" button
Edit CategoryModify category detailsClick pencil icon on row
Delete CategoryRemove a categoryClick trash icon on row
Toggle Active StatusEnable/disable categoryUse switch in add/edit form
Filter by TypeView categories by expense typeUse type dropdown
Navigate PagesBrowse category listUse pagination controls

8.2.3 Creating a Category

  1. Click "Add Category" button
  2. Fill in category details:
    • Name (required)
    • Parent Category (optional for sub-categories)
    • Expense Type: Operational, Capital, Administrative, Other
    • Description (optional)
    • Active toggle
  3. Click "Create Category"

8.3 Record Expense Tab

Create new expense entries with line items and attachments.

8.3.1 Expense Form Fields

FieldRequiredDescription
Expense TypeYesRegular Expense or Reimbursement
Vendor/PayeeYesSelect from stakeholders
Vendor Invoice NumberNoInvoice reference
Expense CategoryYesSelect from categories
Allocation TypeYesDepartment or Cost Center
Department/Cost CenterYesBased on allocation type
Budget ItemYesSelect from available items
NotesNoAdditional notes

8.3.2 Line Items

Each expense can have multiple line items:

FieldRequiredDescription
DescriptionYesItem description
QuantityYesNumber of units
Unit PriceYesPrice per unit
Unit of MeasurementNoe.g., pcs, kg
Cost CenterNoOverride default
Line TotalAutoCalculated

Line Item Actions:

  • Add Line: Click "Add Line" button
  • Remove Line: Click trash icon on line

8.3.3 Attachments

Upload supporting documents:

  • Maximum file size: 10MB per attachment
  • Supported formats: JPG, JPEG, PNG, WebP, PDF, Excel, Word

Attachment Actions:

  • Add Files: Click "Add Files" button
  • Remove: Click X on file before submission

8.3.4 Form Actions

ActionDescription
Create ExpenseSubmit the expense record
Clear FormReset all form fields

8.4 Expenses Tab

View, manage, and process all expense records.

8.4.1 Summary Cards

The tab displays summary cards showing:

  • Total Expenses: Number of expense records
  • Total Amount: Sum of all expense amounts
  • Approved: Total approved expense amount
  • Pending: Total pending approval amount

8.4.2 Available Actions

ActionStatus RequiredDescriptionHow to Access
ViewAnyView expense detailsClick Eye icon
EditDraftModify expense descriptionClick Pencil icon
DeleteDraftRemove expenseClick Trash icon
Submit for ApprovalDraftSend to approversClick Upload icon
ApprovePendingApprovalAccept the expenseClick Check icon
RejectPendingApprovalDecline with reasonClick X icon
Record PaymentPosted, Approved, PartiallyPaidRecord paymentClick Credit Card icon
Post to GLApprovedPost to General LedgerClick Send icon
Reverse PostingPostedReverse GL postingClick Undo icon
Download AttachmentAny (with attachments)Download attached fileClick Download icon in view dialog
Export Report-Download expense reportClick Export button
Refresh-Reload expense listClick Refresh button
Search-Search expensesUse search input
Filter by Status-Filter by statusUse status dropdown
Filter by Category-Filter by categoryUse category dropdown
Filter by Type-Filter by typeUse type dropdown
Clear Filters-Reset all filtersClick Clear Filters button
Navigate Pages-Browse expense listUse pagination controls

8.4.3 Viewing an Expense

  1. Click the View icon (Eye) on an expense row
  2. The detail dialog shows:
    • Expense ID and Type
    • Date Created
    • Category and Amount
    • Net Amount
    • Vendor/Payee details
    • Vendor Invoice Number
    • Allocation and Budget Item
    • Submitted By and Approved By
    • Current Status
    • Line Items (description, quantity, unit price, amount)
    • Attachments (with download option)
    • Payment History (if payments recorded)
    • Approval details and dates

8.4.4 Editing an Expense

Note: Only expenses in Draft status can be edited.

  1. Click the Edit icon (Pencil) on a draft expense
  2. In the edit dialog, you can modify:
    • Description
  3. Click "Update Expense"

8.4.5 Deleting an Expense

Note: Only expenses in Draft status can be deleted.

  1. Click the Delete icon (Trash) on a draft expense
  2. Review the confirmation message
  3. Click "Delete Expense" to confirm
  4. The expense is permanently removed

8.4.6 Submitting for Approval

  1. Click the Submit icon on a draft expense
  2. In the submit modal, optionally add Notes
  3. Click "Submit"
  4. Status changes to "PendingApproval"

8.4.7 Approving an Expense

  1. Click the Approve icon (Check) on a pending expense
  2. In the approval dialog:
    • Review expense details (ID, Amount, Vendor, Description)
    • Enter optional Reason for approval
  3. Click "Approve Expense"
  4. Status changes to "Approved"

8.4.8 Rejecting an Expense

  1. Click the Reject icon (X) on a pending expense
  2. In the rejection dialog:
    • Review expense details
    • Enter Reason (required)
  3. Click "Reject Expense"
  4. Status changes to "Rejected"

8.4.9 Recording Payment

Available for: Posted, Approved, PartiallyPaid status

  1. Click the Record Payment icon (Credit Card)
  2. In the payment dialog:
    • Set Payment Date (defaults to today)
    • Enter Amount (defaults to full expense amount)
    • Select Payment Method: Cash, Cheque, Mobile Money, or Bank Transfer
    • Select Bank Account (from company bank accounts)
    • Enter Reference Number (optional)
    • Enter External Reference (optional)
    • Add Notes (optional)
  3. Click "Record Payment"
  4. Status updates to "Paid" or "PartiallyPaid"

8.4.10 Posting to General Ledger

Available for: Approved status

  1. Click the Post to GL icon (Send)
  2. In the posting dialog:
    • Set Posting Date (defaults to today)
    • Add Notes (optional)
  3. Click "Post to GL"
  4. Status changes to "Posted"

8.4.11 Reversing a Posting

Available for: Posted status

  1. Click the Reverse Posting icon
  2. In the reversal dialog:
    • Enter Reason for reversal (required)
  3. Click "Reverse Posting"
  4. The GL entry is reversed

8.4.12 Expense Workflow Diagram

``` ┌─────────┐ Submit ┌──────────────────┐ Approve ┌──────────┐ Post ┌────────┐ │ Draft │────────────►│ Pending Approval │──────────────►│ Approved │─────────►│ Posted │ └─────────┘ └──────────────────┘ └──────────┘ └────────┘ │ │ │ │ │ Reject │ Pay │ ▼ ▼ │ ┌──────────┐ ┌─────────┐ │ │ Rejected │ │ Paid │ │ └──────────┘ └─────────┘ │ │ ▼ │ ┌──────────┐ ┌───────────────┐ │ Deleted │ │ PartiallyPaid │ └──────────┘ └───────────────┘ ```


8.5 Advances Tab

Manage employee cash advances with full reconciliation capabilities.

8.5.1 Summary Cards

The tab displays:

  • Total Advances: Count of advance records
  • Total Amount: Sum of all advance amounts
  • Approved: Total approved advance amount
  • Pending: Total pending approval amount

8.5.2 Available Actions

ActionStatus RequiredDescriptionHow to Access
Create Advance-Create new advance requestFill form and click "Create Advance"
Add Line Item-Add line items to advanceClick "Add Line" button in form
Remove Line Item-Remove line itemClick trash icon on line
Add Attachment-Upload supporting documentsClick "Add Files" button
Remove Attachment-Remove uploaded fileClick X on file
ViewAnyView advance detailsClick Eye icon
Submit for ApprovalDraftSend to approversClick Upload icon
ApprovePendingApprovalAccept the advanceClick Check icon
RejectPendingApprovalDecline with reasonClick X icon
Record PaymentPosted, Approved, PartiallyPaidRecord paymentClick Credit Card icon
Post to GLApprovedPost to General LedgerClick Send icon
ReconcilePaid, can_reconcileReconcile against expenseClick FileText icon
View ReconciliationHistoryAnyView reconciliation recordsClick Clock icon
View Reconciliation Summary-Overview of all reconciliationClick Summary button
Refresh-Reload advances listClick Refresh button
Search-Search advancesUse search input
Filter by Status-Filter by statusUse status dropdown
Filter by Category-Filter by categoryUse category dropdown
Clear Filters-Reset all filtersClick Clear Filters button
Navigate Pages-Browse advance listUse pagination controls

8.5.3 Creating an Advance

  1. Navigate to Expenses > Advances
  2. In the Create Advance form:
    • Select Payee (Employee) (required)
    • Select Expense Category (required)
    • Choose Allocation Type: Department or Cost Center
    • Select the specific Department or Cost Center (required)
    • Select Budget Item (required - shows available budget)
  3. Add Line Items:
    • Description (required)
    • Quantity (required)
    • Unit Price (required)
    • Unit of Measurement (optional)
    • Cost Center (optional)
    • Line Total is calculated automatically
  4. Add Notes (optional)
  5. Upload Attachments (optional)
  6. Click "Create Advance"

8.5.4 Viewing an Advance

  1. Click the View icon on an advance row
  2. The detail dialog shows:
    • Expense ID and Type
    • Date Created
    • Category, Amount, and Net Amount
    • Payee details
    • Vendor Invoice Number
    • Allocation and Budget Item
    • Submitted By and Approved By
    • Current Status
    • Line Items with details
    • Approval information

8.5.5 Advance Approval Workflow

Same as expenses:

  1. Submit for Approval: Click submit icon, add optional notes
  2. Approve: Click approve icon, add optional reason
  3. Reject: Click reject icon, enter required reason

8.5.6 Reconciling an Advance

Available for: Paid status or when can_reconcile flag is true

  1. Click the Reconcile icon on an advance
  2. In the reconciliation dialog:
    • View Advance details (ID and amount)
    • View Outstanding Amount
    • Select Expense (optional - link to existing expense for this employee)
    • Enter Reconciled Amount (defaults to outstanding)
    • Add Notes (optional)
  3. Click "Reconcile"
  4. If fully reconciled, status changes to "Reconciled"

8.5.7 Viewing Reconciliation History

  1. Click the History icon (Clock) on an advance
  2. The history dialog shows:
    • Reconciliation Summary:
      • Advance Amount
      • Total Reconciled
      • Outstanding
      • Advance UUID
    • Detailed Reconciliation Records table:
      • Date
      • Reconciled By
      • Expense UUID (or "Standalone")
      • Amount
      • Record UUID

8.5.8 Viewing Reconciliation Summary

  1. Click the Summary button in the Advances tab header
  2. Apply filters (optional):
    • User ID
    • Start Date
    • End Date
  3. Click "Load"
  4. View summary metrics:
    • Total Advances
    • Total Advance Amount
    • Total Outstanding
    • Fully Reconciled Count
    • Partially Reconciled Count
    • Unreconciled Count

8.5.9 Advance Workflow

``` ┌─────────┐ Submit ┌──────────────────┐ Approve ┌──────────┐ Post ┌────────┐ │ Draft │────────────►│ Pending Approval │──────────────►│ Approved │─────────►│ Posted │ └─────────┘ └──────────────────┘ └──────────┘ └────────┘ │ │ │ Reject │ Pay ▼ ▼ ┌──────────┐ ┌─────────┐ │ Rejected │ │ Paid │ └──────────┘ └─────────┘ │ │ Reconcile ▼ ┌────────────┐ │ Reconciled │ └────────────┘ ```


8.6 Business Rules Summary

Expense Creation:

  • Currency defaults to TZS
  • Maximum file size: 10MB per attachment
  • Supported file types: JPG, JPEG, PNG, WebP, PDF, Excel, Word
  • Duplicate vendor invoice numbers are prevented
  • Budget validation ensures expenses don't exceed available budget

Editing and Deletion:

  • Only Draft expenses can be edited or deleted
  • Edits are limited to description field
  • Deletion is permanent and cannot be undone

Approval Workflow:

  • Approval reason is optional but recommended
  • Rejection reason is mandatory
  • Approved expenses can be posted to GL

Payments:

  • Payment methods: Cash, Cheque, Mobile Money, Bank Transfer
  • Payments can be partial (status becomes PartiallyPaid)
  • Full payment changes status to Paid
  • Bank account selection from company accounts

GL Posting:

  • Only approved expenses can be posted
  • Posting date defaults to current date
  • Posted expenses can be reversed with reason

Advance Reconciliation:

  • Advances must be reconciled after use
  • Can reconcile against existing expenses or standalone
  • Outstanding amounts are tracked
  • Fully reconciled advances marked as "Reconciled"