Skip to Content
Ranlanka CRM documentation — pre-release, subject to change.
Changelog2026-09-03

2026-09-03

  • Rejected Visa Passport Return & Dedicated Red Dot Indicator:

    • Database Persistence (is_visa_request_rejected): Added column is_visa_request_rejected (BOOLEAN NOT NULL DEFAULT FALSE) to visa_requests via Flyway migration V79__add_is_visa_request_rejected.sql.
    • Rejection Finalization Flagging (VisaService.finalizeVisaRequest): Finalizing a rejected visa application specifically sets is_visa_request_rejected = true, transitions status to passport_collected, and records completed_at timestamp.
    • Dedicated Red Dot UI Indicator: Replaced green checkmarks with a distinctive red dot indicator (bg-red-600 ring-2 ring-red-200) across TaskListView, AdminTaskTable, TaskDetailDrawer, and ServicesPanel whenever is_visa_request_rejected is true, cleanly distinguishing passport returns on rejected applications from approved ones.
  • Task Detail Drawer Parallel Loading State:

    • Anti-Flicker Resolution: Added isDrawerLoading state in TaskDetailDrawer.tsx utilizing Promise.allSettled across customer dossier, document checklists, and invoices.
    • Polished Loading Spinner: Replaced transient state jumps (e.g. “Issue Invoice” briefly showing before switching to “View Invoice”) with a smooth gold loading spinner until all data is settled.
  • Document Checklist Multi-Service Fallback Resolution:

    • Service Type Scoping (DocumentChecklistRepository): Updated repository fallback resolution to findFirstByServiceTypeAndCountryIsNullAndVisaTypeIsNullAndIsActiveTrue(ServiceType.VISA).
    • NonUniqueResultException Fix: Resolved the Hibernate exception triggered when generic checklists for FLIGHT and TOUR shared null country/visaType columns with the VISA global fallback.
Last updated on