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

2026-08-15

  • Daily & Weekly Executive Digest Schedulers:

    • Daily Digest Email (DailyDigestScheduler.java): Configured Spring @Scheduled(cron = "0 0 19 * * *", zone = "Asia/Colombo") background scheduler sending same-day activity summaries to all owner and manager staff at 7:00 PM Sri Lanka time.
    • Weekly Digest Email (WeeklyDigestScheduler.java): Created standalone scheduler running every Monday at 7:00 PM (0 0 19 * * MON) summarizing trailing 7-day performance.
    • 4 Domain Coverage: Summarizes Visa Applications, Flight Bookings, Tour Inquiries, and New Customers Registered.
    • Financial Breakdown: Calculates Total Invoiced Amount (LKR), Advance/Paid Amount (LKR from receipts), and Payment Status (Paid, Partially Paid, Unpaid, Not Invoiced) per request item.
    • Mobile-Responsive HTML Tables: Wrapped email tables in touch-scrollable containers (overflow-x: auto; min-width: 720px; -webkit-overflow-scrolling: touch) to ensure clean readability on mobile devices.
    • Excel-Compatible CSV Attachment: Generates downloadable multi-section .csv files (Daily_Summary_YYYY-MM-DD.csv / Weekly_Summary_YYYY-MM-DD_to_YYYY-MM-DD.csv) with UTF-8 BOM (\uFEFF), formula injection escaping (=', +', -', @'), and --- SECTION --- header formatting to prevent Excel #NAME? parse errors.
  • Staff Alerting & Case Deep-Linking:

    • Alert Staff Modal (AlertStaffModal.tsx): Enabled admin alert button inside Task Detail Drawer with recipient selection, context chips, 5 quick-select templates, and custom message input.
    • Automatic Case Deep-Linking: Appends case query parameters (/tasks?openTask=UUID&type=TYPE) to task alerts.
    • Interactive Button Renderer (MessageWithLinks.tsx): Parses task references and renders interactive “View Case in Task Tracker” button badges across staff reminder lists, admin reminder pages, and dashboard reminder popups.
    • Click-to-Case Drawer Navigation: Clicking the button navigates to /tasks?openTask=... and automatically opens the target case’s TaskDetailDrawer.
  • Quotation Management & Soft Deletion:

    • Universal Quote Soft-Deletion: Updated QuoteService and QuoteWithoutCustomerService backend deletion methods so quotes in any lifecycle status (DRAFT, GENERATED, SENT, ACCEPTED, REJECTED) can be soft-deleted by staff/admins.
    • Frontend Trash Action: Enabled the deletion button across all quote rows in MyQuotesPage.tsx.
  • Docker Unique Image Tagging & Server Rollback System:

    • Unique Tagging Workflow (docker-publish.yml): Configured GitHub Actions to push Git Short SHA (sha-a1b2c3d), release version (vX.Y.Z), and latest tags.
    • Deployment Workflow Input (deploy-oracle.yml): Added image_tag workflow input parameter and deployment history logging to ~/ranlanka/deploy_history.log.
    • Instant Server-Side Rollback (scripts/rollback.sh): Created interactive and argument-driven rollback script on the server that updates .env and restarts containers in under 3 seconds.
    • Documentation: Published DOCKER_TAGGING_AND_ROLLBACK_STRATEGY.md root reference guide.
  • Financial Analytics & Reporting:

    • Other Fees Line-Item Breakdown Table: Created @GetMapping("/api/v1/dashboard/financial-report/other-fees") backend endpoint and <OtherFeesDetailDrawer /> component displaying customer name, fee name (fieldName), amount (LKR), invoice #, and invoice date with search and pagination.
    • Fee Category Breakdown Integration: Added “View Other Fees Table” trigger button inside the Fee Category Breakdown section of AdminCompanyStatisticsPage.tsx.
    • Cost of Sales Card Relocation: Moved the Cost of Sale KPI card from the Financial Dashboard to the top summary grid of the Accounting page (/admin/accounting).
Last updated on