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
.csvfiles (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.
- Daily Digest Email (
-
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’sTaskDetailDrawer.
- Alert Staff Modal (
-
Quotation Management & Soft Deletion:
- Universal Quote Soft-Deletion: Updated
QuoteServiceandQuoteWithoutCustomerServicebackend 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.
- Universal Quote Soft-Deletion: Updated
-
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), andlatesttags. - Deployment Workflow Input (
deploy-oracle.yml): Addedimage_tagworkflow 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.envand restarts containers in under 3 seconds. - Documentation: Published
DOCKER_TAGGING_AND_ROLLBACK_STRATEGY.mdroot reference guide.
- Unique Tagging Workflow (
-
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 SaleKPI card from the Financial Dashboard to the top summary grid of theAccountingpage (/admin/accounting).
- Other Fees Line-Item Breakdown Table: Created
Last updated on