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
| Card | Description |
|---|---|
| Total Categories | Count of all expense categories |
| Active Categories | Number of active categories |
8.2.2 Available Actions
| Action | Description | How to Access |
|---|---|---|
| Add Category | Create a new expense category | Click "Add Category" button |
| Edit Category | Modify category details | Click pencil icon on row |
| Delete Category | Remove a category | Click trash icon on row |
| Toggle Active Status | Enable/disable category | Use switch in add/edit form |
| Filter by Type | View categories by expense type | Use type dropdown |
| Navigate Pages | Browse category list | Use pagination controls |
8.2.3 Creating a Category
- Click "Add Category" button
- Fill in category details:
- Name (required)
- Parent Category (optional for sub-categories)
- Expense Type: Operational, Capital, Administrative, Other
- Description (optional)
- Active toggle
- Click "Create Category"
8.3 Record Expense Tab
Create new expense entries with line items and attachments.
8.3.1 Expense Form Fields
| Field | Required | Description |
|---|---|---|
| Expense Type | Yes | Regular Expense or Reimbursement |
| Vendor/Payee | Yes | Select from stakeholders |
| Vendor Invoice Number | No | Invoice reference |
| Expense Category | Yes | Select from categories |
| Allocation Type | Yes | Department or Cost Center |
| Department/Cost Center | Yes | Based on allocation type |
| Budget Item | Yes | Select from available items |
| Notes | No | Additional notes |
8.3.2 Line Items
Each expense can have multiple line items:
| Field | Required | Description |
|---|---|---|
| Description | Yes | Item description |
| Quantity | Yes | Number of units |
| Unit Price | Yes | Price per unit |
| Unit of Measurement | No | e.g., pcs, kg |
| Cost Center | No | Override default |
| Line Total | Auto | Calculated |
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
| Action | Description |
|---|---|
| Create Expense | Submit the expense record |
| Clear Form | Reset 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
| Action | Status Required | Description | How to Access |
|---|---|---|---|
| View | Any | View expense details | Click Eye icon |
| Edit | Draft | Modify expense description | Click Pencil icon |
| Delete | Draft | Remove expense | Click Trash icon |
| Submit for Approval | Draft | Send to approvers | Click Upload icon |
| Approve | PendingApproval | Accept the expense | Click Check icon |
| Reject | PendingApproval | Decline with reason | Click X icon |
| Record Payment | Posted, Approved, PartiallyPaid | Record payment | Click Credit Card icon |
| Post to GL | Approved | Post to General Ledger | Click Send icon |
| Reverse Posting | Posted | Reverse GL posting | Click Undo icon |
| Download Attachment | Any (with attachments) | Download attached file | Click Download icon in view dialog |
| Export Report | - | Download expense report | Click Export button |
| Refresh | - | Reload expense list | Click Refresh button |
| Search | - | Search expenses | Use search input |
| Filter by Status | - | Filter by status | Use status dropdown |
| Filter by Category | - | Filter by category | Use category dropdown |
| Filter by Type | - | Filter by type | Use type dropdown |
| Clear Filters | - | Reset all filters | Click Clear Filters button |
| Navigate Pages | - | Browse expense list | Use pagination controls |
8.4.3 Viewing an Expense
- Click the View icon (Eye) on an expense row
- 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.
- Click the Edit icon (Pencil) on a draft expense
- In the edit dialog, you can modify:
- Description
- Click "Update Expense"
8.4.5 Deleting an Expense
Note: Only expenses in Draft status can be deleted.
- Click the Delete icon (Trash) on a draft expense
- Review the confirmation message
- Click "Delete Expense" to confirm
- The expense is permanently removed
8.4.6 Submitting for Approval
- Click the Submit icon on a draft expense
- In the submit modal, optionally add Notes
- Click "Submit"
- Status changes to "PendingApproval"
8.4.7 Approving an Expense
- Click the Approve icon (Check) on a pending expense
- In the approval dialog:
- Review expense details (ID, Amount, Vendor, Description)
- Enter optional Reason for approval
- Click "Approve Expense"
- Status changes to "Approved"
8.4.8 Rejecting an Expense
- Click the Reject icon (X) on a pending expense
- In the rejection dialog:
- Review expense details
- Enter Reason (required)
- Click "Reject Expense"
- Status changes to "Rejected"
8.4.9 Recording Payment
Available for: Posted, Approved, PartiallyPaid status
- Click the Record Payment icon (Credit Card)
- 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)
- Click "Record Payment"
- Status updates to "Paid" or "PartiallyPaid"
8.4.10 Posting to General Ledger
Available for: Approved status
- Click the Post to GL icon (Send)
- In the posting dialog:
- Set Posting Date (defaults to today)
- Add Notes (optional)
- Click "Post to GL"
- Status changes to "Posted"
8.4.11 Reversing a Posting
Available for: Posted status
- Click the Reverse Posting icon
- In the reversal dialog:
- Enter Reason for reversal (required)
- Click "Reverse Posting"
- 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
| Action | Status Required | Description | How to Access |
|---|---|---|---|
| Create Advance | - | Create new advance request | Fill form and click "Create Advance" |
| Add Line Item | - | Add line items to advance | Click "Add Line" button in form |
| Remove Line Item | - | Remove line item | Click trash icon on line |
| Add Attachment | - | Upload supporting documents | Click "Add Files" button |
| Remove Attachment | - | Remove uploaded file | Click X on file |
| View | Any | View advance details | Click Eye icon |
| Submit for Approval | Draft | Send to approvers | Click Upload icon |
| Approve | PendingApproval | Accept the advance | Click Check icon |
| Reject | PendingApproval | Decline with reason | Click X icon |
| Record Payment | Posted, Approved, PartiallyPaid | Record payment | Click Credit Card icon |
| Post to GL | Approved | Post to General Ledger | Click Send icon |
| Reconcile | Paid, can_reconcile | Reconcile against expense | Click FileText icon |
| View ReconciliationHistory | Any | View reconciliation records | Click Clock icon |
| View Reconciliation Summary | - | Overview of all reconciliation | Click Summary button |
| Refresh | - | Reload advances list | Click Refresh button |
| Search | - | Search advances | Use search input |
| Filter by Status | - | Filter by status | Use status dropdown |
| Filter by Category | - | Filter by category | Use category dropdown |
| Clear Filters | - | Reset all filters | Click Clear Filters button |
| Navigate Pages | - | Browse advance list | Use pagination controls |
8.5.3 Creating an Advance
- Navigate to Expenses > Advances
- 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)
- Add Line Items:
- Description (required)
- Quantity (required)
- Unit Price (required)
- Unit of Measurement (optional)
- Cost Center (optional)
- Line Total is calculated automatically
- Add Notes (optional)
- Upload Attachments (optional)
- Click "Create Advance"
8.5.4 Viewing an Advance
- Click the View icon on an advance row
- 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:
- Submit for Approval: Click submit icon, add optional notes
- Approve: Click approve icon, add optional reason
- Reject: Click reject icon, enter required reason
8.5.6 Reconciling an Advance
Available for: Paid status or when can_reconcile flag is true
- Click the Reconcile icon on an advance
- 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)
- Click "Reconcile"
- If fully reconciled, status changes to "Reconciled"
8.5.7 Viewing Reconciliation History
- Click the History icon (Clock) on an advance
- 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
- Reconciliation Summary:
8.5.8 Viewing Reconciliation Summary
- Click the Summary button in the Advances tab header
- Apply filters (optional):
- User ID
- Start Date
- End Date
- Click "Load"
- 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"