Skip to content

URS-019 · Bill-Only without PO for Approved Accounts

Title: Bill-Only without PO for Approved Accounts Date: 2026-08-03T23:02:04.137Z Duration: 103.4s Overall Status: ✅ PASS

The system shall support “Bill‑Only without PO” only for accounts approved by Vantis.

Source: User_Requirement_Specifications_Vantis_DeviceFlow.xlsx — the run below proves the system meets this requirement.

Status: ✅ PASS

Each step below corresponds to one Playwright test that ran sequentially. Screenshots and video recordings provide visual evidence of the UI behaviour.

What this step proves:

Proves that Blair Bennett (Corveta Sales Rep) can authenticate and reach the application. Establishes the user context for all subsequent steps.

Audit events generated by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

TimeTypeActionUserOrgPerformed
2026-08-03 23:02:13Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:19Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:27Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:40Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:03:39Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group

Screenshots:

step 01 logged in

Video recording:


What this step proves:

Confirms Blair can navigate to the new bill-only order creation form and reach the account selection step (Step 2). Verifies the billing feature is accessible to the sales rep role.

Screenshots:

step 02 account selection page

Video recording:


3. Step 3: Unapproved account hidden — ✅ PASS

Section titled “3. Step 3: Unapproved account hidden — ✅ PASS”

What this step proves:

The system enforces the approval gate at the UI level: the account selector only shows accounts with status=“active” (approved by Vantis). Cedar Crest Hospital Account Request, which is set to status=“proposed” (unapproved) by the test setup, does not appear as a selectable option. ROSS Surgical Account Request (active/approved) is visible, confirming the selector works correctly. This is the negative test — it proves the approval gate is enforced.

Screenshots:

step 03 account dropdown open

step 03 search cedar no results

step 03 search ross found

Video recording:


What this step proves:

An approved account (ROSS Surgical Account Request, status=“active”) can successfully complete the full bill-only order submission flow — including leaving the PO field empty. The order is accepted and a BO-XXXX order number is assigned. This is the positive test proving that approved accounts can submit Bill-Only without PO.

Audit events generated by this step:

(Evidence scoped to step execution window: 2026-08-03T23:02:47.507Z → 2026-08-03T23:03:04.544Z)

TimeTypeActionUserOrgPerformed
2026-08-03 23:03:04Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantisno
2026-08-03 23:03:04Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Groupno
2026-08-03 23:03:04Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantisyes
2026-08-03 23:03:04Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis

Emails triggered by this step:

(Evidence matched by declared name — step timing not available or no events fell in window)

Email 1: New Bill-Only Order - 8/3/2026 - Vantis BO-1

Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-1

New Bill-Only Order - 8/3/2026 - Vantis BO-1

Screenshots:

step 04 ross account selected

step 04 devices step

step 04 products added

step 04 no po entered

step 04 review before submit

step 04 order submitted

Video recording:


What this step proves:

The newly created bill-only order appears on the billing list, confirming it was persisted correctly. The specific order number captured in Step 4 is visible, providing end-to-end traceability from form submission to database record.

Screenshots:

step 05 billing list

step 05 new order found

Video recording:


The following SQL queries ran against the application database after the Playwright scenarios completed. Each query asserts a specific condition that proves the feature under test persisted its data correctly.

Approved account has active status — ✅ PASS

Section titled “Approved account has active status — ✅ PASS”

Assertion: ROSS Hospital should have status=‘active’ (approved)

SELECT id, name, status FROM sales_accounts WHERE id = ANY($1) ORDER BY name
idnamestatus
1fb8c9d0-e1f2-3456-1234-567890123456Cedar Crest Hospital Account Requestproposed
fea7b8c9-d0e1-2345-0123-456789012345ROSS Surgical Account Requestactive

Unapproved account has proposed status — ✅ PASS

Section titled “Unapproved account has proposed status — ✅ PASS”

Assertion: Cedar Healthcare should have status=‘proposed’ (unapproved)

SELECT id, name, status FROM sales_accounts WHERE id = ANY($1) ORDER BY name
idnamestatus
1fb8c9d0-e1f2-3456-1234-567890123456Cedar Crest Hospital Account Requestproposed
fea7b8c9-d0e1-2345-0123-456789012345ROSS Surgical Account Requestactive

New billing order BO-1 exists for approved account — ✅ PASS

Section titled “New billing order BO-1 exists for approved account — ✅ PASS”

Assertion: Order BO-1 should exist for ROSS Hospital (approved account)

SELECT id, order_number, status, sales_account_id, created_at
FROM billing_orders
WHERE sales_account_id = 'fea7b8c9-d0e1-2345-0123-456789012345' AND order_number = 'BO-1'
idorder_numberstatussales_account_idcreated_at
019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189BO-1submittedfea7b8c9-d0e1-2345-0123-4567890123452026-08-03T23:03:04.063Z

No new billing orders for unapproved account — ✅ PASS

Section titled “No new billing orders for unapproved account — ✅ PASS”

Assertion: No billing orders should have been created for Cedar Healthcare (unapproved account) during the test

SELECT id, order_number, status, created_at
FROM billing_orders
WHERE sales_account_id = '1fb8c9d0-e1f2-3456-1234-567890123456' AND created_at > NOW() - INTERVAL '10 minutes'
ORDER BY created_at DESC

No rows returned

Per-declaration outcome of every expectedAuditActions and expectedEmailTemplates entry written into the orchestrator. Missing evidence here is a real test failure, not a soft warning.

Each row asserts that a declared expectedAuditActions entry produced a matching row in audit_events. A ❌ flips overall status to FAIL — the declaration is real proof, not just an annotation.

StepExpected Audit ActionFound
Step 1: Loginuser_log:user:login
Step 4: Create orderdecision:bill_only_order.inventory_items_decrement
Step 4: Create orderbilling_order:status_change

Each row asserts that a declared expectedEmailTemplates entry was matched (case-insensitive substring) by a captured email subject or template. A ❌ flips overall status to FAIL.

StepExpected TemplateFound
Step 4: Create orderbill-only

Every row written to audit_events while this test was running (scoped to the demo organizations). Provides compliance evidence that user actions are traced end-to-end (URS-003).

Capture window start: 2026-08-03T23:02:02.288Z

SELECT
ae.created_at,
ae.event_type,
ae.action,
ae.user_id,
u.email AS user_email,
ae.organization_id,
o.name AS organization_name,
ae.object_id,
ae.secondary_object_id,
ae.payload,
ae.route,
ae.trace_id
FROM audit_events ae
LEFT JOIN users u ON u.id = ae.user_id
LEFT JOIN organizations o ON o.id = ae.organization_id
WHERE ae.created_at >= $1
AND ae.organization_id = ANY($2::uuid[])
ORDER BY ae.created_at ASC

10 event(s) captured:

TimeTypeActionUserOrgObject IDPerformedReason
2026-08-03 23:02:13Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:19Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:27Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:02:40Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group
2026-08-03 23:03:04Zdecisionbill_only_order.direct_po_import_on_createblair.bennett@corvetasurgical.comVantis019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189noNo uploaded PO documents
2026-08-03 23:03:04Zdecisionbill_only.link_purchase_orderblair.bennett@corvetasurgical.comCorveta Surgical Group019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189nono_purchase_order_selected
2026-08-03 23:03:04Zdecisionbill_only_order.inventory_items_decrementblair.bennett@corvetasurgical.comVantis019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189yesinventory_items_decremented
2026-08-03 23:03:04Zbilling_orderstatus_changeblair.bennett@corvetasurgical.comVantis019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189
2026-08-03 23:03:06Ztransactional_emailnew_bill_onlyCorveta Surgical Group019fc9dd-ccbb-73e1-ab4e-eeccb1ca1189
2026-08-03 23:03:39Zuser_loguser:loginblair.bennett@corvetasurgical.comCorveta Surgical Group

1 notification email(s) were captured during this test run. Each email is rendered as a screenshot for compliance review.

1. New Bill-Only Order - 8/3/2026 - Vantis BO-1

Section titled “1. New Bill-Only Order - 8/3/2026 - Vantis BO-1”

Template: New_Bill-Only_Order_-_8_3_2026_-_Vantis_BO-1

New Bill-Only Order - 8/3/2026 - Vantis BO-1