TC-BIL-004: Invoice Editing & Modification
Module: Billing & Invoicing - Invoice Editing
Primary Login: admin@rcme.membervu.com / Admin123! (ADMIN role)
Prerequisite: At least one ISSUED invoice exists. One PAID and one VOIDED invoice exist (from TC-BIL-003).
Frontend:
https://stg-rcme.membervu.comBackend API:
https://stg-api.membervu.comMailHog:
https://stg-webmail.membervu.com
Test A: Edit ISSUED Invoice - Modify Line Items & Amount
Purpose: Verify an admin can edit line items on an ISSUED (unpaid) invoice.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | Open browser, go to:https://stg-rcme.membervu.com/login | Login page loads. | https://stg-rcme.membervu.com/login |
| 2 | Login as: admin@rcme.membervu.com / Admin123! | Admin dashboard displayed. | Email: admin@rcme.membervu.comPass: Admin123! |
| 3 | Navigate to "Admin" > "Billing" > "Invoices". Create a new invoice for editing tests: - Member: Maria Cruz - Line item 1: Annual Dues 2026 / 15000- Line item 2: Late Fee / 500- Due date: 30 days from today - Save | Invoice created. Status: ISSUED. Total: PHP 15,500.00. Note the invoice number. | Total: PHP 15,500.00 |
| 4 | Click on the newly created invoice. Click the "Edit Invoice" button (or pencil icon). | Invoice edit form loads with all current values pre-populated: - Member: Maria Cruz - Line item 1: Annual Dues 2026 / 15000 - Line item 2: Late Fee / 500 - Due date displayed | - |
| 5 | Change the first line item amount from 15000 to 10000 (simulating an Associate Member rate). | Amount field updates to 10000. Running total recalculates to PHP 10,500.00. | New amount: 10000New total: PHP 10,500.00 |
| 6 | Change the first line item description from Annual Dues 2026 to Annual Dues 2026 (Associate Rate). | Description field updates. | Description: Annual Dues 2026 (Associate Rate) |
| 7 | Click "Save" (or "Update Invoice"). | Success message: "Invoice updated successfully" or similar. Invoice detail reflects the changes. | - |
| 8 | Verify the updated invoice detail page. | Line item 1: Annual Dues 2026 (Associate Rate) — PHP 10,000.00 Line item 2: Late Fee — PHP 500.00 Total: PHP 10,500.00 Status still: ISSUED | Total: PHP 10,500.00 |
Test B: Add Line Item to Existing Invoice
Purpose: Verify adding a new line item to an existing ISSUED invoice.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | On the invoice from Test A (PHP 10,500.00), click "Edit Invoice". | Edit form loads with 2 existing line items. | - |
| 2 | Click "Add Line Item". Description: Event Registration - Annual GalaAmount: 2500 | Third line item added. Running total: PHP 13,000.00 (10,000 + 500 + 2,500). | Description: Event Registration - Annual GalaAmount: 2500 |
| 3 | Click "Save". | Invoice updated. Now shows 3 line items. | - |
| 4 | Verify the detail page. | 3 line items displayed: 1. Annual Dues 2026 (Associate Rate) — PHP 10,000.00 2. Late Fee — PHP 500.00 3. Event Registration - Annual Gala — PHP 2,500.00 Total: PHP 13,000.00 | Total: PHP 13,000.00 |
Test C: Remove Line Item from Existing Invoice
Purpose: Verify removing a line item from an existing ISSUED invoice.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | On the invoice from Test B (PHP 13,000.00, 3 items), click "Edit Invoice". | Edit form loads with 3 line items. | - |
| 2 | Find the "Late Fee" line item (PHP 500.00). Click the remove/delete button (X icon or trash icon) next to it. | Line item removed from the form. Running total recalculates to PHP 12,500.00 (10,000 + 2,500). | Remove: Late Fee (PHP 500) |
| 3 | Click "Save". | Invoice updated. Now shows 2 line items. | - |
| 4 | Verify the detail page. | 2 line items displayed: 1. Annual Dues 2026 (Associate Rate) — PHP 10,000.00 2. Event Registration - Annual Gala — PHP 2,500.00 Total: PHP 12,500.00 "Late Fee" line item is gone. | Total: PHP 12,500.00 |
Test D: Change Due Date on Existing Invoice
Purpose: Verify the due date can be modified on an ISSUED invoice.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | On the invoice from Test C, click "Edit Invoice". | Edit form loads. Note the current due date. | - |
| 2 | Change the Due Date to 60 days from today (extend the deadline). | Date picker accepts the new date. | New due date: 60 days from today |
| 3 | Click "Save". | Invoice updated. Success message displayed. | - |
| 4 | Verify the invoice detail page. | Due date now shows the new date (60 days from today). All other fields unchanged. | - |
Test E: Add and Edit Invoice Notes
Purpose: Verify notes (internal and customer-facing) can be added and edited.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | On the invoice from Test D, click "Edit Invoice". | Edit form loads. | - |
| 2 | Find the Internal Note field. Type:Extended due date per member request. Follow up in 30 days. | Note text accepted. | Extended due date per member request. Follow up in 30 days. |
| 3 | If there is a separate Customer Note (or "Note to Member") field, type:Your due date has been extended. Please remit payment by the new due date. | Customer note text accepted. | Your due date has been extended. Please remit payment by the new due date. |
| 4 | Click "Save". | Invoice updated with notes. | - |
| 5 | View the invoice detail page as admin. | Internal note visible to admin: Extended due date per member request. Follow up in 30 days. | - |
| 6 | Log out. Login as testmember@rcme.membervu.com / Member123!. Navigate to this invoice. | Customer note visible to member (if implemented). Internal note is NOT visible to member. | - |
Test F: Cannot Edit PAID Invoice
Purpose: Verify a PAID invoice cannot be edited.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | Log out and login as admin. Navigate to "Admin" > "Billing" > "Invoices". Filter by status "PAID". Click on a PAID invoice. | Invoice detail page loads. Status: PAID. | Filter: PAID |
| 2 | Look for an "Edit Invoice" button. | Edit button is disabled, hidden, or absent. PAID invoices cannot be modified. | - |
| 3 | If an edit URL pattern is known (e.g., /admin/invoices/{id}/edit), try navigating directly. | Access denied, redirect to detail page, or error message. Edit form does NOT load for PAID invoices. | - |
Test G: Cannot Edit VOIDED Invoice
Purpose: Verify a VOIDED invoice cannot be edited.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | Navigate to "Admin" > "Billing" > "Invoices". Filter by status "VOIDED". Click on a VOIDED invoice. | Invoice detail page loads. Status: VOIDED. | Filter: VOIDED |
| 2 | Look for an "Edit Invoice" button. | Edit button is disabled, hidden, or absent. VOIDED invoices cannot be modified. | - |
| 3 | If an edit URL pattern is known, try navigating directly. | Access denied, redirect, or error. Edit form does NOT load for VOIDED invoices. | - |
Test H: Duplicate Invoice (Copy to Create New)
Purpose: Verify an existing invoice can be duplicated to create a new one.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | Navigate to an existing ISSUED invoice. Look for a "Duplicate", "Copy", or "Clone" button. | Button is available on the detail page or in an actions dropdown. | - |
| 2 | Click the "Duplicate" button. | A new invoice creation form opens pre-filled with the same member and line items as the original. The invoice number is NEW (not the same as the original). | - |
| 3 | Verify the pre-filled data matches the original invoice line items and amounts. | Member, line item descriptions, and amounts match the original. Due date may default to today + 30 days. | - |
| 4 | Click "Create Invoice" to save the duplicate. | New invoice created with a new invoice number. Status: ISSUED. | - |
| 5 | Verify both invoices exist in the list: the original and the duplicate. | Two separate invoices with different invoice numbers but same line items/amounts. | - |
Test I: Verify Audit Trail for Modifications
Purpose: Verify that invoice modifications are tracked in an audit trail or activity log.
| Step | Action (EXACT clicks/typing) | Expected Result (EXACT text/behavior) | Test Value |
|---|---|---|---|
| 1 | Open the invoice that was modified in Tests A-E. Look for an "Activity Log", "History", or "Audit Trail" section on the detail page. | An audit trail section exists showing modification history. | - |
| 2 | Verify the audit trail entries. | Should show entries for: - Invoice created (date, by admin) - Line item amount changed (15000 → 10000) - Line item added (Event Registration) - Line item removed (Late Fee) - Due date changed - Notes updated | - |
| 3 | Verify each entry shows: timestamp, user who made the change, and what changed. | Entries include who, when, and what for each modification. | - |
CLEANUP
- Note the invoice numbers modified during this test.
- If the invoices are no longer needed for subsequent tests, void them:
Open each invoice > Void Invoice > Reason:Test cleanup - TC-BIL-004> Confirm. - If a duplicate was created in Test H, void it as well.
- Record all changes in your test report.