Feature #10257
closedissues and plans and testing
Subtasks
Related issues
Updated by sairam machavarapu about 1 hour ago
1. Superadmin Plans — dynamic module access (/superadmin/plans)
Replaced the old single "Plan Category" (Normal/Catering) toggle with a full checkbox list of 33 individual modules (Dashboard, Orders, POS, Tables, Bookings, Kitchen, Menu, Global Add-ons, Promo/Coupons, Disputes, Catering, Inventory, Waste Management, Purchase Orders, Vendors, Material Providers, Recipes, Users, Customers, Attendance, Assets, Expenses, Customise Screens, Reports, Service Usage, Customer Activities, Invoices, Audit Logs, Subscription, Support, Customer Tickets, Settings, Manage Notifications).
Any plan — including Catering plans — can now grant any combination of modules, not just a fixed bundle.
Wired matching route guards (TenantRoutes.tsx) and sidebar visibility (Sidebar.tsx) for all 33.
2. Backward-compatibility safety net for existing tenants
Legacy plans using the old bundled "core" feature string (like mythri's) continue to work unchanged — a core fallback expands to all 29 previously-accessible modules, so no existing tenant lost access.
Editing an old plan without touching its module checkboxes now preserves core as-is instead of silently migrating it.
3. Fixed a real login race condition (AuthContext.tsx)
Found and fixed a bug where, on a fresh session handover (JWT present but no cached user), the app briefly treated the tenant as un-populated and incorrectly redirected users to /unauthorized — even for Dashboard. This was pre-existing, not something introduced today, but it was causing your team's login issues.
4. Menu price adjustment tool (Settings → Menu Prices)
Added a single-item selector (previously category-only) and a Percentage/Flat-Amount toggle, so a specific item's price can be bumped by a fixed dollar amount, not just a category-wide percentage.
Shows the item's current price as soon as it's selected.
Backend (bulk-price-adjust endpoint) updated to support itemId and adjustmentType.
5. Diagnosed and fixed the email-sending failures
Root cause chain: a nightly cron job (expenses-tasks.service.ts) was re-sending "Expense Overdue" emails every single night forever for any unpaid expense — no "already notified" tracking. This alone generated hundreds of duplicate emails for mythri, burning through their entire 2200-credit email top-up balance.
Fixed the cron to notify only once, when an expense first becomes overdue.
Also fixed a secondary bug where stuck PENDING email/SMS log rows counted against quota forever; and fixed the Service Usage dashboard defaulting to "Today" instead of "This Month" (which was hiding the real usage number).
6. Order dispute button
In the order details dialog, "Dispute Order" is now disabled (with an explanatory tooltip) once every item on the order already has an active dispute covering its full quantity, rather than always being clickable.
Updated by sairam machavarapu about 1 hour ago
- Status changed from New to Closed