Step-by-Step Guide — Follow each step exactly as written. All values are provided — do not improvise.

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).

URLs for this test:
Frontend: https://stg-rcme.membervu.com
Backend API: https://stg-api.membervu.com
MailHog: 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.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Open browser, go to:
https://stg-rcme.membervu.com/login
Login page loads.https://stg-rcme.membervu.com/login
2Login as: admin@rcme.membervu.com / Admin123!Admin dashboard displayed.Email: admin@rcme.membervu.com
Pass: Admin123!
3Navigate 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
4Click 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
-
5Change 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: 10000
New total: PHP 10,500.00
6Change the first line item description from Annual Dues 2026 to Annual Dues 2026 (Associate Rate).Description field updates.Description: Annual Dues 2026 (Associate Rate)
7Click "Save" (or "Update Invoice").Success message: "Invoice updated successfully" or similar. Invoice detail reflects the changes.-
8Verify 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
PASS if: Line item description and amount successfully updated. Total recalculated to PHP 10,500.00. Status remains ISSUED.

Test B: Add Line Item to Existing Invoice

Purpose: Verify adding a new line item to an existing ISSUED invoice.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1On the invoice from Test A (PHP 10,500.00), click "Edit Invoice".Edit form loads with 2 existing line items.-
2Click "Add Line Item".
Description: Event Registration - Annual Gala
Amount: 2500
Third line item added. Running total: PHP 13,000.00 (10,000 + 500 + 2,500).Description: Event Registration - Annual Gala
Amount: 2500
3Click "Save".Invoice updated. Now shows 3 line items.-
4Verify 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
PASS if: New line item added successfully. Total recalculated to PHP 13,000.00.

Test C: Remove Line Item from Existing Invoice

Purpose: Verify removing a line item from an existing ISSUED invoice.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1On the invoice from Test B (PHP 13,000.00, 3 items), click "Edit Invoice".Edit form loads with 3 line items.-
2Find 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)
3Click "Save".Invoice updated. Now shows 2 line items.-
4Verify 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
PASS if: Line item removed successfully. Total recalculated to PHP 12,500.00. Removed item no longer appears.

Test D: Change Due Date on Existing Invoice

Purpose: Verify the due date can be modified on an ISSUED invoice.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1On the invoice from Test C, click "Edit Invoice".Edit form loads. Note the current due date.-
2Change the Due Date to 60 days from today (extend the deadline).Date picker accepts the new date.New due date: 60 days from today
3Click "Save".Invoice updated. Success message displayed.-
4Verify the invoice detail page.Due date now shows the new date (60 days from today). All other fields unchanged.-
PASS if: Due date updated successfully. Other invoice data unchanged.

Test E: Add and Edit Invoice Notes

Purpose: Verify notes (internal and customer-facing) can be added and edited.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1On the invoice from Test D, click "Edit Invoice".Edit form loads.-
2Find 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.
3If 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.
4Click "Save".Invoice updated with notes.-
5View the invoice detail page as admin.Internal note visible to admin: Extended due date per member request. Follow up in 30 days.-
6Log 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.-
SKIP — If separate internal/customer note fields are not implemented, test with the single notes field available and note the behavior in your report.
PASS if: Notes saved and visible on detail page. Internal notes hidden from member view (if separate note types exist).

Test F: Cannot Edit PAID Invoice

Purpose: Verify a PAID invoice cannot be edited.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Log 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
2Look for an "Edit Invoice" button.Edit button is disabled, hidden, or absent. PAID invoices cannot be modified.-
3If 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.-
PASS if: PAID invoice cannot be edited through the UI or direct URL navigation.

Test G: Cannot Edit VOIDED Invoice

Purpose: Verify a VOIDED invoice cannot be edited.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Navigate to "Admin" > "Billing" > "Invoices". Filter by status "VOIDED". Click on a VOIDED invoice.Invoice detail page loads. Status: VOIDED.Filter: VOIDED
2Look for an "Edit Invoice" button.Edit button is disabled, hidden, or absent. VOIDED invoices cannot be modified.-
3If an edit URL pattern is known, try navigating directly.Access denied, redirect, or error. Edit form does NOT load for VOIDED invoices.-
PASS if: VOIDED invoice cannot be edited through the UI or direct URL navigation.

Test H: Duplicate Invoice (Copy to Create New)

Purpose: Verify an existing invoice can be duplicated to create a new one.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Navigate 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.-
2Click 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).-
3Verify 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.-
4Click "Create Invoice" to save the duplicate.New invoice created with a new invoice number. Status: ISSUED.-
5Verify both invoices exist in the list: the original and the duplicate.Two separate invoices with different invoice numbers but same line items/amounts.-
SKIP — If the Duplicate/Clone feature is not implemented, skip this test and note it in your report.
PASS if: Duplicate creates a new invoice with identical line items but a new invoice number.

Test I: Verify Audit Trail for Modifications

Purpose: Verify that invoice modifications are tracked in an audit trail or activity log.

StepAction (EXACT clicks/typing)Expected Result (EXACT text/behavior)Test Value
1Open 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.-
2Verify 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
-
3Verify each entry shows: timestamp, user who made the change, and what changed.Entries include who, when, and what for each modification.-
SKIP — If audit trail/activity log is not implemented on the invoice detail page, skip this test and note it in your report.
PASS if: Audit trail shows all modifications with timestamps and user information.

CLEANUP

After completing all tests in this file: