Add professor share & financial reports UI, expense management page

Adds payout configuration fields (percentage/hourly + per-session
expense allowance) with a live payout preview to the class form,
a new Financial Reports page (per-class and date-range/monthly tabs,
per-session drill-down dialog) with reusable stat cards, and an
Institutional Expenses management page. Registers routes, sidebar
navigation, and permission constants for the new financial_reports
and expenses permissions.
This commit is contained in:
2026-08-21 12:19:18 +03:30
parent ee3bc2b856
commit 26762e4dac
13 changed files with 1055 additions and 3 deletions
+10
View File
@@ -0,0 +1,10 @@
// /src/api/expenseApi.js
import axiosInstance from './axiosInstance';
export const expenseApi = {
getAll: (params) => axiosInstance.get('/expenses/admin/get-all', { params }),
getOne: (id) => axiosInstance.get(`/expenses/admin/get-one/${id}`),
create: (data) => axiosInstance.post('/expenses/admin/create', data),
update: (id, data) => axiosInstance.put(`/expenses/admin/update/${id}`, data),
delete: (id) => axiosInstance.delete(`/expenses/admin/delete/${id}`)
};
+8
View File
@@ -0,0 +1,8 @@
// /src/api/financialReportApi.js
import axiosInstance from './axiosInstance';
export const financialReportApi = {
getClassReport: (classId) => axiosInstance.get(`/financial-reports/admin/classes/${classId}`),
getSessionReport: (sessionId) => axiosInstance.get(`/financial-reports/admin/sessions/${sessionId}`),
getRangeReport: (params) => axiosInstance.get('/financial-reports/admin/range', { params })
};