Feature #11051
openFeature #11019: Subscription Updates for Cancellation by Admin and Customer
subscription cancellation fixes
100%
Subtasks
Related issues
Updated by Divya Inapakurthi 11 days ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
1. Min Scheduled Jobs Per Day: Added backend constraint logic and restored fixed dates with current supporting dates in the frontend.
2. Scheduling Explanation Notes: Fixed job scheduling dates and added clear notes explaining the reasons why visit dates are shifted.
3. Dynamic Payment Progress Strip: Updated the progress bar and summary text to be fully dynamic relative to the subscription status (`Active`, `Scheduled to Cancel`, `Cancelled`, `Completed`).
4. Clean Settlement Architecture: Removed legacy POS expense logging and direct Stripe card charge attempts from both frontend and backend.
5. Notice Period Settlement Deferral: Deferred settlement activation (invoicing and refunds) until the subscription is completely cancelled, as staff are still visiting and completing jobs during the notice period.
6. Notice Period Schedule Rule Review: Identified proposal to streamline schedule-to-cancel days directly into the cancellation flow rather than configuring across company and plan variants (flagged for Team Lead discussion).
7. Min Jobs Scheduling Implementation: Integrated minimum jobs per day logic into the job scheduling generator.
8. Automated Cutoff Finalization & Invoicing: Implemented and verified the background cron that automatically cancels subscriptions on their cutoff date, cleans up remaining uncompleted visits, and emails Stripe settlement invoices if `balanceDue > 0`.
9. Job Status Preservation: Fixed webhook reactivation bug to ensure jobs retain their `"auto"` status without being changed to `"New"` during notice periods.
10. Dynamic Subscriber Sorting: Implemented status-based sorting for all subscriber listing tables.
11. Schema & System Validation: Added `pending_cutoff` and `System` actor support in `SubscriptionContract` schema to ensure smooth automated operations.
12. UI Integrity & Mutual Exclusivity: Fixed variable scoping and ensured mutual exclusivity between refund and invoice action buttons.