+
+
+ {/* Row 1 */}
+
+
+
+
{Organization.name}
+
+
+
+
+
+
{Organization.contactNumber}
+
+
+
+
+
+
{Organization.email}
+
+
+
+
+
+
{Organization.sprid}
+
-
-
-
+
+
+
+
+ {Organization.address}
+
+
+
+
+
+
+
+
+
+
+
)}
@@ -309,48 +469,3 @@ const ManageOrganization = ({
};
export default ManageOrganization;
-
-//
-//
-//
-//
-//
-
-//
-//
-//
-//
Icing sweet gummies
-//
15 minutes
-//
-// In Meeting
-//
-//
-//
-//
-//
-//
-//
-//
-
-// {/* Icon item */}
-//
-//
-//
-//
-
-//
-//
-//
-//
Icing sweet gummies
-//
15 minutes
-//
-// In Meeting
-//
-//
-//
-//
-//
-//
-//
-//
-//
diff --git a/src/components/Organization/ManageOrganization1.jsx b/src/components/Organization/ManageOrganization1.jsx
new file mode 100644
index 00000000..4ba25c4f
--- /dev/null
+++ b/src/components/Organization/ManageOrganization1.jsx
@@ -0,0 +1,193 @@
+const ManageOrganization1 = ({
+ projectOrganizations = [],
+ organizationId = null,
+}) => {
+ const [step, setStep] = useState(1); // default = scenario decision
+ const orgModal = useOrganizationModal();
+ const { data: services, isLoading } = useServices();
+
+ const method = useForm({
+ resolver: zodResolver(organizationSchema),
+ defaultValues: defaultOrganizationValues,
+ });
+
+ const {
+ handleSubmit,
+ register,
+ reset,
+ formState: { errors },
+ } = method;
+
+ const { mutate: CreateOrganization, isPending } = useCreateOrganization(
+ () => {
+ reset(defaultOrganizationValues);
+ orgModal.onClose();
+ setStep(1); // reset to first step
+ }
+ );
+
+ // 🔹 Decide first step when modal opens
+ useEffect(() => {
+ if (orgModal.isOpen) {
+ if (organizationId) {
+ setStep(3); // update flow → show org details directly
+ } else if (projectOrganizations && projectOrganizations.length > 0) {
+ setStep(1); // Scenario 1 → from current tenant list
+ } else {
+ setStep(2); // Scenario 2 → search with SPRID
+ }
+ }
+ }, [orgModal.isOpen, organizationId, projectOrganizations]);
+
+ const onSubmit = (OrgPayload) => {
+ CreateOrganization(OrgPayload);
+ };
+
+ const RenderTitle = useMemo(() => {
+ if (organizationId) return "Update Organization";
+ if (step === 1) return "Add Organization"; // current tenant
+ if (step === 2) return "Find Organization"; // search with SPRID
+ if (step === 3) return "Organization Details";
+ if (step === 4) return "Create Organization";
+ return "Manage Organization";
+ }, [step, organizationId]);
+
+ const contentBody = (
+
+ {/* ---------- STEP 1: From Current Tenant Organizations ---------- */}
+ {step === 1 && (
+
+
+ {projectOrganizations.map((org, idx) => (
+
setStep(3)}
+ >
+
+ {org}
+
+ ))}
+
+
+
+
+
+
+
+ )}
+
+ {/* ---------- STEP 2: Search by Service Provider ID ---------- */}
+ {step === 2 && (
+
+
+
+
+
+
+ {/* Example SPR results */}
+
+
setStep(3)}
+ >
+
+ Sample Organization (SPRID)
+
+
+
+
+
+
+
+
+ )}
+
+ {/* ---------- STEP 3: Organization Details ---------- */}
+ {step === 3 && (
+
+
+ Show organization details here (from SPR or tenant list). User
+ selects services and clicks Add.
+
+
+
+
+
+
+
+ )}
+
+ {/* ---------- STEP 4: Create New Organization ---------- */}
+ {step === 4 && (
+
+
+
+ )}
+
+ );
+
+ return (
+
+ );
+};
+
+export default ManageOrganization;
\ No newline at end of file
diff --git a/src/components/Project/ProjectOrganizations.jsx b/src/components/Project/ProjectOrganizations.jsx
index c7093542..fd30568e 100644
--- a/src/components/Project/ProjectOrganizations.jsx
+++ b/src/components/Project/ProjectOrganizations.jsx
@@ -7,7 +7,8 @@ const ProjectOrganizations = () => {
const selectedProject = useSelectedProject()
return (
-
+
diff --git a/src/hooks/useOrganization.js b/src/hooks/useOrganization.js
index 2fa6ea00..34e249ff 100644
--- a/src/hooks/useOrganization.js
+++ b/src/hooks/useOrganization.js
@@ -24,6 +24,15 @@ export const useOrganizationModal = () => {
};
};
+export const useOrganizationBySPRID =(sprid)=>{
+ return useQuery({
+ queryKey:["organization by",sprid],
+ queryFn:async()=>await OrganizationRepository.getOrganizationBySPRID(sprid),
+ enabled:!!sprid
+ })
+}
+
+
export const useOrganizationsList = (
pageSize,
pageNumber,
diff --git a/src/hooks/useProjects.js b/src/hooks/useProjects.js
index 5650f0fa..b411ef33 100644
--- a/src/hooks/useProjects.js
+++ b/src/hooks/useProjects.js
@@ -268,6 +268,18 @@ export const useProjectLevelEmployeePermission = (employeeId, projectId) => {
});
};
+
+export const useProjectAssignedServices =(projectId)=>{
+ return useQuery({
+ queryKey: ["projectAssignedServices", projectId],
+ queryFn: async () => {
+ const resp = await ProjectRepository.getProjectAssignedServices(projectId);
+ return resp.data;
+ },
+ enabled:!!projectId,
+ });
+}
+
// -- -------------Mutation-------------------------------
export const useCreateProject = ({ onSuccessCallback }) => {
diff --git a/src/pages/Directory/ContactsPage.jsx b/src/pages/Directory/ContactsPage.jsx
index 40759abe..670b3ef9 100644
--- a/src/pages/Directory/ContactsPage.jsx
+++ b/src/pages/Directory/ContactsPage.jsx
@@ -98,7 +98,7 @@ const ContactsPage = ({ projectId, searchText, onExport }) => {
Pagination={
}
diff --git a/src/repositories/OrganizationRespository.jsx b/src/repositories/OrganizationRespository.jsx
index ccde9714..36f41006 100644
--- a/src/repositories/OrganizationRespository.jsx
+++ b/src/repositories/OrganizationRespository.jsx
@@ -10,6 +10,8 @@ const OrganizationRepository = {
);
},
+ getOrganizationBySPRID :()=>api.get(`/api/Organization/list?sprid=${sprid}`),
+
assignOrganizationToProject:(data)=>api.post(`/api/Organization/assign/project`,data)
};
diff --git a/src/repositories/ProjectRepository.jsx b/src/repositories/ProjectRepository.jsx
index fc1c648d..af5c6e67 100644
--- a/src/repositories/ProjectRepository.jsx
+++ b/src/repositories/ProjectRepository.jsx
@@ -45,7 +45,12 @@ const ProjectRepository = {
getProjectLevelModules:()=>api.get(`/api/Project/get/proejct-level/modules`),
getProjectLevelEmployeePermissions:(employeeId,projectId)=>api.get(`/api/Project/get/project-level-permission/employee/${employeeId}/project/${projectId}`),
updateProjectLevelEmployeePermission:(data)=>api.post(`/api/Project/assign/project-level-permission`,data),
- getAllProjectLevelPermission:(projectId)=>api.get(`/api/Project/get/all/project-level-permission/${projectId}`)
+ getAllProjectLevelPermission:(projectId)=>api.get(`/api/Project/get/all/project-level-permission/${projectId}`),
+
+
+ // Services
+
+ getProjectAssignedServices:(projectId)=>api.get(`/api/Project/get/assigned/services/${projectId}`)
};
export const TasksRepository = {