kavehhn
4c07ca2ae1
fix: format prices in notifications, change partial payment label, and add session holding notify API
2026-08-21 20:17:30 +03:30
kavehhn
6839685a21
fix(payments): import buildClassScheduleContext to fix sms notifications
2026-08-21 15:25:02 +03:30
kavehhn
ada1b624b1
fix(payments): prevent auto transaction creation, enable sms by default, and fix transaction sms context
2026-08-21 15:17:41 +03:30
kavehhn
e34fd25af7
feat: add soft delete for classes with cascade to sessions and linked records
2026-08-21 13:19:50 +03:30
kavehhn
22b57eeae2
Add professor share calculation and financial reporting feature
...
Introduces per-class payout configuration (percentage or hourly rate,
plus an optional per-session expense allowance), pure calculation
utilities for professor payout/net profit/receivables, and a new
financial-reports API surface with per-class, per-session, and
date-range/monthly reports. Also adds full CRUD for institutional
expenses used in the range report, and wires up the new permissions
and roles. Fixes a pre-existing ReferenceError (missing
parseImportDate import) in paymentService that blocked creating
payments with dated transactions.
2026-08-21 12:19:09 +03:30
kavehhn
091e519280
Add sessionHolding template, unique 8-digit codes, reason slot for sessionCancelled, and disable unused notifications
2026-08-21 10:44:51 +03:30
kavehhn
5328f36f06
Add admin transaction cancellation without deleting history.
...
Cancelled transactions are excluded from paid totals and due-date
calculations while remaining visible for audit purposes.
2026-08-16 22:38:00 +03:30
kavehhn
a436cfeb47
Stop reconcile from overwriting edited transaction amounts.
...
When updating a transaction, skip automatic pending-amount adjustment so
admin edits to amount, due date, and other fields are preserved.
2026-08-16 22:36:12 +03:30
kavehhn
8cd355c24b
Fix transaction due date parsing and preserve edited pending amounts.
...
Parse Jalali date strings correctly when saving transactions, and skip
reconcile amount overwrites when pending totals already match the balance.
2026-08-16 14:53:46 +03:30
kavehhn
21bff0c4ba
feat: add admin transaction create/update with auto payment status sync
...
Allow admins to edit transaction amount and status, recalculate payment totals, and mark invoices fully paid when paid transactions cover the payable amount.
2026-08-16 08:01:37 +03:30
kavehhn
06efcd5b90
feat: store payment installments in a transactions collection
...
Move embedded payment rows into Transaction documents with due dates so remaining tuition can be tracked separately from paid amounts.
2026-08-16 07:32:27 +03:30
kavehhn
72be01fee3
feat: add messaging toggles, password reset SMS, and payment discounts
...
Allow SuperAdmin to disable SMS, email, and bot from dashboard settings on top of env flags. Add admin password reset with credentials SMS, plus payment discounts, notes, and payable amount handling.
2026-08-16 06:58:08 +03:30
kavehhn
192c595c68
feat: add password change, class unenroll, and optional notify flags
...
Let admins skip SMS on user, class, and invoice actions, and let users change their own password with the current one.
2026-08-15 23:48:18 +03:30
kavehhn
0cdb9cec20
feat(sms): send class start date, days, and course time
...
Expose schedule fields on class and invoice templates so SMS can include Jalali start date, weekdays, and hour range.
2026-08-15 23:09:04 +03:30
kavehhn
9472537536
fix(professors): handle nationalId and phone aliases with trimming; update payment sms
2026-08-15 19:07:17 +03:30
kavehhn
93f3aeb719
feat(sms): add FULLNAME, PAYMENT_PRICE, and COURSE template variables for invoice SMS
2026-08-15 18:55:17 +03:30
kavehhn
3160f07873
feat: send account and invoice SMS from stored template IDs
...
Move sms.ir template IDs out of env into settings so SuperAdmin can manage them, and record every outbound SMS status in notifications.
2026-08-15 18:37:44 +03:30
kavehhn
7394829d49
fix: honor table search q param on users and related lists
...
Dashboard sends q, but users/classes/payments ignored it; accept q/search and normalize Persian digits.
2026-08-15 02:57:19 +03:30
kavehhn
bf5e66fa95
feat: add append-only course/user data import and expand user profile
...
Support uploading structured JSON to create courses, classes, and students without wiping existing data, and merge user name fields while adding gender and registration details from source sheets.
2026-08-15 01:31:44 +03:30
kavehhn
f04c797be6
Initial commit: teaching institution management API.
...
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
2026-08-09 04:18:08 +02:00