v11.5Finance Intelligence & Pharmacy Approvals

Release Notes

Every version of CuraVerto. From a single appointments tool to an AI-first Care OS.

25

Releases

22

in 2026

83

Modules

v11.5CurrentMay 2026

Finance Intelligence & Pharmacy Approvals

v11.5 ships a complete ledger intelligence layer — every bill now carries a full audit trail showing who edited what and when, edit modals pre-fill from existing line items, and a per-item effective price + discount badge makes billing transparent at a glance. Staff can now create approvals, split payment mode lands for mixed-method billing, and a silent background refresh keeps the ledger live without closing the modal. The pharmacy module gets a catalog approval flow: all catalog mutations are staged in pharmacy_catalog_changes and require an approval before going live — full audit trail included. Pending collection counts are now surfaced across pharmacy and admin for at-a-glance cash flow visibility.

⚡ See what's new in v11.5 →
💰
Finance Ledger Intelligence

Full per-bill audit trail — history drawer with field-level diff

Every bill edit is logged with actor, timestamp, and a before/after field diff. A history drawer accessible from any ledger row shows the complete edit chain: who changed what, the original value, and when. Audit records written via auditLog() before every write completes — immutable, append-only.

Edit modal pre-populated from existing line items + effective price badge

Opening the edit modal on an existing invoice now pre-fills all line items: service name, quantity, unit price, discount %, and GST. A per-item "effective price" badge shows the net payable after discount and tax — no more mental arithmetic at the billing counter. Discount badges render inline in the ledger view.

Silent background refresh + real service names + duplicate bill guard

After a ledger edit, the UI refreshes silently in the background — the modal closes first, then data reloads without a full page refresh. Ledger now displays actual service names (not IDs) from the service catalog. A duplicate bill guard prevents the same appointment from generating two invoice rows.

Split payment mode + staff approval creation

Split payment mode lets receptionists record a single bill across multiple payment methods (cash + UPI, card + advance adjustment). Staff role can now initiate approval requests — previously limited to finance managers. Auth headers on useApprovals hook resolved a silent 401 bug affecting all staff.

Pharmacy Catalog Approvals

Catalog approval staging — all mutations gated before going live

New pharmacy_catalog_changes table: every drug addition, price change, or catalog edit is written here first as status=pending. No mutation reaches pharmacy_catalog directly without approval. Migration is additive — existing catalog rows are unaffected.

Approve / reject flow with full audit trail

POST /api/pharmacy/approvals/catalog: admin or owner reviews pending catalog changes and approves or rejects with optional reason. On approval, the change is applied to pharmacy_catalog atomically. All transitions logged via auditLog() with PHARMACY_CATALOG_APPROVED / PHARMACY_CATALOG_REJECTED action constants.

Approvals queue tab with badge count + role-scoped views

PharmacyApprovalsTab surfaces pending catalog changes in a queue view — drug name, proposed change, proposed by, and time pending. Approve/reject controls inline. Badge count on the tab shows pending items. Admin and owner roles see the approvals tab; pharmacist role sees a "pending review" status on staged items.

📊
Billing Visibility

Pending collections count across pharmacy + admin

Dashboard now surfaces a consolidated pending collections count — bills in pending/partial state across both the main billing module and the pharmacy OTC counter. Finance managers and admins see a single number at the top of the Finance tab.

Staff discount + credit on pharmacy OTC for all roles

Pharmacy OTC billing now correctly shows the staff discount and advance credit deduction for all staff roles — previously only rendered for finance managers. accessToken prop threading fixed so PaymentPanel receives auth context and correctly identifies the staff role for discount eligibility.

All Changes in v11.5

  • Full per-bill audit trail — history drawer shows actor, timestamp, before/after field diff
  • Edit modal pre-fills existing line items: service, qty, price, discount, GST
  • Per-item effective price + discount badge rendered inline in ledger view
  • Silent background refresh after edit — modal closes first, data reloads behind the scenes
  • Real service names in ledger; duplicate bill guard prevents twin invoice rows per appointment
  • Split payment mode — single bill split across multiple payment methods (cash + UPI, card + advance)
  • Staff role can now create approval requests; useApprovals auth header 401 bug fixed
  • pharmacy_catalog_changes — staging table for all catalog mutations before they go live
  • Approve/reject flow: admin reviews pending drug changes; atomic apply on approval
  • Audit constants: PHARMACY_CATALOG_APPROVED / PHARMACY_CATALOG_REJECTED on every transition
  • Pharmacy approvals tab with badge count; pharmacist sees staged-status indicators
  • Pending collections count surfaced across pharmacy + admin — at-a-glance cash flow
  • Staff discount + credit correctly rendered on pharmacy OTC for all roles