From e69efe61cb022db704947ffc11935ad793b80660 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Mon, 22 Sep 2025 14:53:01 +0530 Subject: [PATCH 1/4] Adding Activity-Group in Create Task popup. --- .../Project/Infrastructure/TaskModel.jsx | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/components/Project/Infrastructure/TaskModel.jsx b/src/components/Project/Infrastructure/TaskModel.jsx index 9c65fa6f..fef57cfb 100644 --- a/src/components/Project/Infrastructure/TaskModel.jsx +++ b/src/components/Project/Infrastructure/TaskModel.jsx @@ -6,7 +6,7 @@ import { useActivitiesMaster, useWorkCategoriesMaster, } from "../../../hooks/masterHook/useMaster"; -import { useManageTask, useProjectAssignedServices } from "../../../hooks/useProjects"; +import { useManageTask, useProjectAssignedOrganizations, useProjectAssignedServices } from "../../../hooks/useProjects"; import showToast from "../../../services/toastService"; import Label from "../../common/Label"; import { useSelectedProject } from "../../../slices/apiDataManager"; @@ -41,8 +41,17 @@ const TaskModel = ({ project, onSubmit, onClose }) => { const projectId = useSelectedProject(); const { data: assignedServices, isLoading: servicesLoading } = useProjectAssignedServices(projectId); + const { data: assignedOrganizations, isLoading: orgLoading } = useProjectAssignedOrganizations(projectId); const [selectedService, setSelectedService] = useState(""); + // Fetch Assigned Organizations (Activity Groups) + + const [selectedOrg, setSelectedOrg] = useState(""); + + const handleOrgChange = (e) => { + setSelectedOrg(e.target.value); + }; + const handleServiceChange = (e) => { setSelectedService(e.target.value); @@ -188,7 +197,7 @@ const TaskModel = ({ project, onSubmit, onClose }) => { {/* Services Selection */} {selectedWorkArea && (
- + + + {orgLoading && } + {assignedOrganizations?.map((org) => ( + + ))} + +
+ )} + {/* Activity Selection */} - {selectedWorkArea && ( + {selectedOrg && (
+ {servicesLoading && } {assignedServices?.map((service) => ( ))} - {errors.buildingID && ( -

{errors.buildingID.message}

- )}
)} @@ -225,43 +239,36 @@ const TaskModel = ({ project, onSubmit, onClose }) => { + {errors.activityGroupId &&

{errors.activityGroupId.message}

} )} + {/* Activity Selection */} - {selectedOrg && ( + {selectedGroup && (
- - {activityData.map((a) => ( - + {activitiesLoading && } + {activities?.map((a) => ( + ))} - {errors.activityID && ( -

{errors.activityID.message}

- )} + {errors.activityID &&

{errors.activityID.message}

}
)} - - {selectedWorkArea && (
From d2b10495bd45fd4904cfa40bac19952bb6172179 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Thu, 25 Sep 2025 11:19:36 +0530 Subject: [PATCH 3/4] Added Services Column in Edit activity modal --- .../Infrastructure/EditActivityModal.jsx | 79 +++++++++++-------- .../Project/Infrastructure/TaskModel.jsx | 9 ++- 2 files changed, 52 insertions(+), 36 deletions(-) diff --git a/src/components/Project/Infrastructure/EditActivityModal.jsx b/src/components/Project/Infrastructure/EditActivityModal.jsx index c3d12648..e57b6a30 100644 --- a/src/components/Project/Infrastructure/EditActivityModal.jsx +++ b/src/components/Project/Infrastructure/EditActivityModal.jsx @@ -32,9 +32,8 @@ const EditActivityModal = ({ building, floor, onClose, -} ) => -{ - +}) => { + const { activities, loading: loadingActivities } = useActivitiesMaster(); const { categories, loading: loadingCategories } = useWorkCategoriesMaster(); const [selectedActivity, setSelectedActivity] = useState(null); @@ -57,13 +56,12 @@ const EditActivityModal = ({ comment: "", }, }); -const { mutate: UpdateTask, isPending } = useManageTask({ - onSuccessCallback: (response) => - { - showToast( response?.message, "success" ) - onClose() - } -} ); + const { mutate: UpdateTask, isPending } = useManageTask({ + onSuccessCallback: (response) => { + showToast(response?.message, "success") + onClose() + } + }); @@ -82,34 +80,33 @@ const { mutate: UpdateTask, isPending } = useManageTask({ [categories] ); -useEffect(() => { - if (!workItem) return; - console.log(workItem) - reset({ - activityID: String( - workItem?.workItem?.activityId || workItem?.activityMaster?.id - ), - workCategoryId: String( - workItem?.workItem?.workCategoryId || workItem?.workCategoryMaster?.id - ), - plannedWork: - workItem?.workItem?.plannedWork || workItem?.plannedWork || 0, - completedWork: - workItem?.workItem?.completedWork || workItem?.completedWork || 0, - comment: workItem?.workItem?.description || workItem?.description || "", - }); -}, [workItem?.id,selectedActivity]); + useEffect(() => { + if (!workItem) return; + console.log(workItem) + reset({ + activityID: String( + workItem?.workItem?.activityId || workItem?.activityMaster?.id + ), + workCategoryId: String( + workItem?.workItem?.workCategoryId || workItem?.workCategoryMaster?.id + ), + plannedWork: + workItem?.workItem?.plannedWork || workItem?.plannedWork || 0, + completedWork: + workItem?.workItem?.completedWork || workItem?.completedWork || 0, + comment: workItem?.workItem?.description || workItem?.description || "", + }); + }, [workItem?.id, selectedActivity]); useEffect(() => { const selected = activities?.find((a) => a.id === activityID); - setSelectedActivity( selected || null ); + setSelectedActivity(selected || null); }, [activityID, activities]); - const onSubmitForm = (data) => - { - const payload = { + const onSubmitForm = (data) => { + const payload = { ...data, id: workItem?.workItem?.id ?? workItem?.id, buildingID: building?.id, @@ -125,9 +122,9 @@ useEffect(() => { buildingId: building?.id, floorId: floor?.id, workAreaId: workArea?.id, - previousCompletedWork:completedTask + previousCompletedWork: completedTask }); - } + } return (
@@ -162,14 +159,26 @@ useEffect(() => { disabled />
+
+ + +
+
{ + handleServiceChange(e); + setValue("serviceId", e.target.value); + }} > {servicesLoading && } From 1cd3bf6c7f6bdec25eb5ae407899f394fde4bbfc Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Thu, 25 Sep 2025 14:29:02 +0530 Subject: [PATCH 4/4] updated assigned services poject whenver assigned new service --- src/hooks/useOrganization.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hooks/useOrganization.js b/src/hooks/useOrganization.js index 2d77438b..dea19874 100644 --- a/src/hooks/useOrganization.js +++ b/src/hooks/useOrganization.js @@ -103,8 +103,12 @@ export const useAssignOrgToProject = (onSuccessCallback) => { mutationFn: async (payload) => await OrganizationRepository.assignOrganizationToProject(payload), onSuccess: (_, variables) => { + const {projectId} = variables useClient.invalidateQueries({ queryKey: ["projectAssignedOrganiztions"], + }); + useClient.invalidateQueries({ + queryKey: ["projectAssignedOrganization", projectId], }); showToast("Organization successfully", "success"); if (onSuccessCallback) onSuccessCallback();