����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import express from "express";
import { accountantAuth } from "../middlewares/AuthMiddleware.js";
// Import dashboard controllers
import {
getDashboardSummary,
getFeeCollectionOverview,
getExpenseOverview,
} from "../controllers/accounts/accountsDashboardController.js";
// Import fees controllers
import {
getFeeStructuresList,
createFeeStructure,
getFeeStructureDetails,
updateFeeStructure,
deleteFeeStructure,
getStudentFeesList,
assignFeeStructure,
getStudentFeeDetails,
recordFeePayment,
addFeeDiscount,
getFeeStats,
getFeeCollectionChart,
getFeeStatusChart
} from "../controllers/accounts/feesController.js";
// Import expense controllers
import {
getExpensesList,
createExpense,
getExpenseDetails,
updateExpense,
deleteExpense,
getExpenseCategories,
processExpense,
createRecurringExpenses,
getExpenseStats,
} from "../controllers/accounts/expenseController.js";
// Import salary controllers
import {
accountantGenerateSalaries,
accountantGetSalariesList,
accountantGetSalaryDetails,
accountantGetSalarySummary,
accountantPaySalary,
accountantUpdateSalary,
} from "../controllers/accounts/salaryController.js";
import {
getFeeReport, getExpensesReport, getFeeExpenseGraph, getReportCards
} from "../controllers/accounts/reportController.js"
import {changeAccountantEmail, changeAccountantPassword, getAccountantProfile, updateAccountantProfile} from '../controllers/accounts/settingController.js'
import {
getAccountantNotifications,
createNotificationAccountant,
updateNotification,
deleteNotification,
publishNotification,
getAccountantNotificationDetail,
getAccountantNotificationStats,
archiveNotification
} from '../controllers/notificationController.js'
import {
accountantApplyLeave,
accountantCancelLeave,
accountantGetLeaveDetails,
accountantGetMyLeaves,
accountantGetMyQuota
} from '../controllers/accounts/leaveController.js'
import { uploadFile } from "../config/multer.js";
import { getStaffList } from "../controllers/hr/staffController.js";
import { getStudentList } from "../controllers/hr/studentController.js";
import { getClassOptions } from "../controllers/admin/adminClassController.js";
const router = express.Router();
// Apply admin authentication middleware to all accounts routes
router.use(accountantAuth);
// Dashboard routes
router.get("/dashboard/summary", getDashboardSummary);
router.get("/dashboard/fee-collection", getFeeCollectionOverview);
router.get("/dashboard/expenses", getExpenseOverview);
// Fee structure routes
router.get("/fee-structures", getFeeStructuresList);
router.post("/fee-structures", createFeeStructure);
router.get("/fee-structures/:id", getFeeStructureDetails);
router.put("/fee-structures/:id", updateFeeStructure);
router.delete("/fee-structures/:id", deleteFeeStructure);
router.get('/fee-stats', getFeeStats)
router.get('/fee-collection-chart', getFeeCollectionChart)
router.get('/fee-status-chart', getFeeStatusChart)
router.get("/student-fees", getStudentFeesList);
router.post("/student-fees/assign", assignFeeStructure);
router.get("/student-fees/:id", getStudentFeeDetails);
router.post("/student-fees/payment", recordFeePayment);
router.post("/student-fees/:id/discount", addFeeDiscount);
router.get('/classes-options', getClassOptions); // Added class options route
// Expense routes
router.get("/expenses", getExpensesList);
router.post("/expenses", createExpense);
router.get("/expenses/:id", getExpenseDetails);
router.put("/expenses/:id", updateExpense);
router.delete("/expenses/:id", deleteExpense);
router.get("/expense-categories", getExpenseCategories);
router.put("/expenses/:id/process", processExpense);
router.post("/expenses/recurring", createRecurringExpenses);
router.get("/expenses-stats", getExpenseStats);
// Salary routes
router.get("/salary/list", accountantGetSalariesList);
router.post("/salary/generate", accountantGenerateSalaries);
router.get("/salary-summary", accountantGetSalarySummary);
router.get("/salary/:id", accountantGetSalaryDetails);
router.put("/salary/:id", accountantUpdateSalary);
router.post("/salary/pay", accountantPaySalary);
router.get("/staff", getStaffList);
// Report routes
router.get("/reports/fee-report", getReportCards);
router.get("/reports/fee-records", getFeeReport);
router.get("/reports/expenses", getExpensesReport);
router.get("/reports/fee-expense-graph", getFeeExpenseGraph);
// Accountant settings routes
router.get("/settings/profile", getAccountantProfile);
router.patch("/settings/profile", updateAccountantProfile);
router.patch("/settings/change-email", changeAccountantEmail);
router.patch("/settings/change-password", changeAccountantPassword);
// Notification routes
router.get("/notifications/stats", getAccountantNotificationStats);
router.get("/notifications", getAccountantNotifications);
router.post("/notifications", uploadFile.array("attachments", 10), createNotificationAccountant);
router.put("/notifications/:id", uploadFile.array("attachments", 10), updateNotification);
router.delete("/notifications/:id", deleteNotification);
router.patch("/notifications/:id/publish", publishNotification);
router.get("/notifications/:id", getAccountantNotificationDetail);
router.patch('/notifications/:id/archive', archiveNotification);
// Leave routes
router.post("/leave-apply", accountantApplyLeave);
router.get("/my-leaves", accountantGetMyLeaves);
router.get("/my-quota", accountantGetMyQuota);
router.get("/leave-details/:id", accountantGetLeaveDetails);
router.delete("/leave-cancel/:id", accountantCancelLeave);
export default router;| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| accountsRoutes.js | File | 5.47 KB | 0644 |
|
| adminRoutes.js | File | 19.54 KB | 0644 |
|
| health.js | File | 255 B | 0644 |
|
| hrRoutes.js | File | 15.27 KB | 0644 |
|
| index.js | File | 573 B | 0644 |
|
| studentRoutes.js | File | 4.82 KB | 0644 |
|
| teacherRoutes.js | File | 8.8 KB | 0644 |
|
| userRoutes.js | File | 794 B | 0644 |
|