Skip to Content
Ranlanka CRM documentation — pre-release, subject to change.
Changelog2026-08-12

2026-08-12

  • Multi-Service Statistics Hub & High-Performance Invoicing Analytics:
    • Single Source of Truth Invoicing Component: Created <ServiceInvoicingPanel.tsx /> to provide reusable financial analytics across all service domains (VISA, FLIGHT, TOUR).
    • Sub-Tab Navigation: Embedded sub-tabs inside Visa Stats, Ticket Stats, and Tour Stats modules allowing admins to switch seamlessly between Request Status Matrix and Services & Invoicing Status.
    • Financial KPI Cards: Surfaced Total Invoiced Revenue, Total Cash Collected, Outstanding Balance, and Invoiced vs. Non-Invoiced request counts per service category.
    • Server-Side PostgreSQL CTE Aggregation: Implemented high-performance database-level CTE queries (findVisaCustomerBreakdown, findFlightCustomerBreakdown, findTourCustomerBreakdown) in InvoiceRepository.java to aggregate request counts, invoiced counts, and financial totals in a single database pass.
    • PostgreSQL Connection-Init Search Path: Configured HikariCP connection-init-sql=SET search_path TO ranlanka_dev in application.properties and Docker environment variables so native SQL queries resolve schema table names automatically.
    • Customer Financial Breakdown Matrix: Added server-side paginated and searchable customer breakdown tables with status filter tabs (Fully Paid, Partially Paid, Unpaid, Not Invoiced).
    • In-Page Customer Service Detail Drawer: Built <CustomerServiceDetailDrawer.tsx /> sliding side drawer opening directly from breakdown rows to display customer ticket details (PNR, airline, visa status, appointment dates), associated invoice history, PDF downloads (Invoice & Receipt), and direct payment recording via RecordPaymentModal.
Last updated on