From eb735f443df3437d799ca8878c9f14ab5575b31d Mon Sep 17 00:00:00 2001 From: Vikas Nale Date: Wed, 6 Aug 2025 17:01:40 +0530 Subject: [PATCH] Add api to fetch employee project allocation --- src/components/Employee/EmpDashboard.jsx | 55 +++++++++++++++++------- src/hooks/useProjects.js | 30 +++++++++++++ src/repositories/ProjectRepository.jsx | 39 +++++++++-------- 3 files changed, 91 insertions(+), 33 deletions(-) diff --git a/src/components/Employee/EmpDashboard.jsx b/src/components/Employee/EmpDashboard.jsx index 468a4300..708df376 100644 --- a/src/components/Employee/EmpDashboard.jsx +++ b/src/components/Employee/EmpDashboard.jsx @@ -1,14 +1,15 @@ import React, { useEffect, useState } from "react"; import EmpOverview from "./EmpOverview"; -import { useProjectsByEmployee } from "../../hooks/useProjects"; +import { useProjectsAllocationByEmployee } from "../../hooks/useProjects"; const EmpDashboard = ({ profile }) => { const { projectList, loading: selectedProjectLoding, refetch, - } = useProjectsByEmployee(profile?.id); + } = useProjectsAllocationByEmployee(profile?.id); + console.log(projectList); return ( <>
@@ -32,16 +33,47 @@ const EmpDashboard = ({ profile }) => { >
- +
-
-
{project.shortName}
+
+
+
+
+ {project.projectShortName} +
+
+ {project.projectName} +
+
+
+ {project.designation} +
+
-
-
{project.name}
+
+
+ Assigned:{" "} + {project.assignedDate ? ( + new Date(project.assignedDate).toLocaleDateString() + ) : ( + NA + )} +
+ {project.removedDate && ( +
+
+ Unassigned:{" "} + {project.removedDate ? ( + new Date(project.removedDate).toLocaleDateString() + ) : ( + NA + )} +
+
+ )}
))} @@ -49,15 +81,6 @@ const EmpDashboard = ({ profile }) => {
- {/*
-
-
- - My Expences - {" "} -
{" "} -
-
*/} ); diff --git a/src/hooks/useProjects.js b/src/hooks/useProjects.js index 332e2daa..6a7d2080 100644 --- a/src/hooks/useProjects.js +++ b/src/hooks/useProjects.js @@ -307,6 +307,36 @@ export const useProjectsByEmployee = (employeeId) => { return { projectList, loading: isLoading, error, refetch }; }; +export const useProjectsAllocationByEmployee = (employeeId) => { + const { + data: projectList = [], + isLoading, + error, + refetch, + } = useQuery({ + queryKey: ["ProjectsAllocationByEmployee", employeeId], + queryFn: async () => { + const res = await ProjectRepository.getProjectsAllocationByEmployee( + employeeId + ); + const sortedProjects = [...res.data].sort((a, b) => + a.projectName.localeCompare(b.projectName) + ); + return sortedProjects || res; + + //return res.data || res; + }, + enabled: !!employeeId, + onError: (error) => { + showToast( + error.message || "Error while Fetching project Employee", + "error" + ); + }, + }); + return { projectList, loading: isLoading, error, refetch }; +}; + export const useProjectName = () => { const { data = [], diff --git a/src/repositories/ProjectRepository.jsx b/src/repositories/ProjectRepository.jsx index 55f5d195..66788834 100644 --- a/src/repositories/ProjectRepository.jsx +++ b/src/repositories/ProjectRepository.jsx @@ -6,32 +6,37 @@ const ProjectRepository = { api.get(`/api/project/details/${projetid}`), getProjectAllocation: (projetid) => - api.get( `api/project/allocation/${ projetid }` ), - - getEmployeesByProject:(projectId)=>api.get(`/api/Project/employees/get/${projectId}`), + api.get(`api/project/allocation/${projetid}`), + + getEmployeesByProject: (projectId) => + api.get(`/api/Project/employees/get/${projectId}`), manageProject: (data) => api.post("/api/project", data), // updateProject: (data) => api.post("/api/project/update", data), - manageProjectAllocation: ( data ) => api.post( "/api/project/allocation", data ), - + manageProjectAllocation: (data) => api.post("/api/project/allocation", data), + manageProjectInfra: (data) => api.post("/api/project/manage-infra", data), - manageProjectTasks: ( data ) => api.post( "/api/project/task", data ), - deleteProjectTask:(id)=> api.delete(`/api/project/task/${id}`), + manageProjectTasks: (data) => api.post("/api/project/task", data), + deleteProjectTask: (id) => api.delete(`/api/project/task/${id}`), updateProject: (id, data) => api.put(`/api/project/update/${id}`, data), - deleteProject: ( id ) => api.delete( `/projects/${ id }` ), - getProjectsByEmployee: ( id ) => api.get( `/api/project/assigned-projects/${ id }` ), - updateProjectsByEmployee:(id,data)=>api.post(`/api/project/assign-projects/${id}`,data), - projectNameList: () => api.get( "/api/project/list/basic" ), - - getProjectDetails:(id)=>api.get(`/api/project/details/${id}`), - getProjectInfraByproject: ( id ) => api.get( `/api/project/infra-details/${ id }` ), - getProjectTasksByWorkArea:(id)=>api.get(`/api/project/tasks/${id}`) + deleteProject: (id) => api.delete(`/projects/${id}`), + getProjectsByEmployee: (id) => + api.get(`/api/project/assigned-projects/${id}`), + getProjectsAllocationByEmployee: (id) => + api.get(`/api/project/allocation-histery/${id}`), + updateProjectsByEmployee: (id, data) => + api.post(`/api/project/assign-projects/${id}`, data), + projectNameList: () => api.get("/api/project/list/basic"), + + getProjectDetails: (id) => api.get(`/api/project/details/${id}`), + getProjectInfraByproject: (id) => api.get(`/api/project/infra-details/${id}`), + getProjectTasksByWorkArea: (id) => api.get(`/api/project/tasks/${id}`), }; export const TasksRepository = { - assignTask: ( data ) => api.post( "/api/task/assign", data ), + assignTask: (data) => api.post("/api/task/assign", data), // reportTask:(data)=>api.post("/api/task/report",data) -} +}; export default ProjectRepository;