From 0ed333c1fda65247f49ddb452f629dfe6152fa4f Mon Sep 17 00:00:00 2001 From: workashrafi77-web Date: Wed, 21 Jan 2026 16:50:10 +0330 Subject: [PATCH] stewards management --- .../guild/components/GuildManageGuilds.js | 30 ++++++--- .../components/create-guilds/CreateGuilds.js | 4 +- .../components/GuildInfoSection.js | 2 +- .../create-guilds/components/InfoBox.js | 1 - .../ManageGuildsRequestsOperations.js | 10 ++- .../ManageGuildsRequests.js | 61 ++++++++++++------- .../components/manage-guilds/ManageGuilds.js | 16 +++-- .../components/manage-tab/ManageTab.js | 26 ++++---- .../ProvinceLegalGuildsForm.js | 10 ++- .../ProvinceLegalGuildsInProvince.js | 13 ++-- .../ProvinceLegalGuildsOperations.js | 13 +++- .../ProvinceLegalGuildsOutProvince.js | 7 ++- .../ProvinceTrueGuildsOutProvince.js | 7 ++- ...ProvinceTrueGuildsOutProvinceOperations.js | 4 +- .../delete-out-province-true-guilds.js | 2 +- .../services/province-get-total-guilds.js | 35 +++++------ .../services/province-get-total-stewards.js | 40 ++++++++++++ src/pages/ProvinceManageStewards.js | 20 ++++++ src/routes/managerRouting.js | 15 +++++ 19 files changed, 223 insertions(+), 93 deletions(-) create mode 100644 src/features/province/services/province-get-total-stewards.js diff --git a/src/features/guild/components/GuildManageGuilds.js b/src/features/guild/components/GuildManageGuilds.js index bd01696..76e5346 100644 --- a/src/features/guild/components/GuildManageGuilds.js +++ b/src/features/guild/components/GuildManageGuilds.js @@ -23,6 +23,7 @@ import { } from "../../../lib/redux/slices/appSlice"; import { getRoleFromUrl } from "../../../utils/getRoleFromUrl"; import BoxList from "../../../components/box-list/BoxList"; +import { provinceGetTotalGuildsService } from "../../province/services/province-get-total-guilds"; const GuildMaangeGuilds = () => { const dispatch = useDispatch(); @@ -42,8 +43,14 @@ const GuildMaangeGuilds = () => { const fetchApiData = async (page, textValue) => { setLoading(true); - let response = await axios.get( - `total_guilds/?role=Guilds&steward=true&search=filter&value=${textValue}&page=${page}&page_size=${perPage}` + const response = await dispatch( + provinceGetTotalGuildsService({ + steward: true, + search: "filter", + value: textValue, + page, + page_size: perPage, + }) ); setData(response.data.results); @@ -57,9 +64,14 @@ const GuildMaangeGuilds = () => { const handlePerRowsChange = async (newPerPage, page) => { setLoading(true); - - let response = await axios.get( - `total_guilds/?role=Guilds&steward=true&search=filter&value=${textValue}&page=${page}&page_size=${newPerPage}` + const response = await dispatch( + provinceGetTotalGuildsService({ + steward: true, + search: "filter", + value: textValue, + page, + page_size: perPage, + }) ); setData(response.data.results); @@ -248,8 +260,12 @@ const GuildMaangeGuilds = () => { event.preventDefault(); setLoading(true); try { - const response = await axios.get( - `total_guilds/?role=${getRoleFromUrl()}&search=filter&value=${textValue}&steward=true` + const response = await dispatch( + provinceGetTotalGuildsService({ + steward: true, + search: "filter", + value: textValue, + }) ); setData(response.data.results); setTotalRows(response.data.count); diff --git a/src/features/province/components/create-guilds/CreateGuilds.js b/src/features/province/components/create-guilds/CreateGuilds.js index 3b33f63..c77142c 100644 --- a/src/features/province/components/create-guilds/CreateGuilds.js +++ b/src/features/province/components/create-guilds/CreateGuilds.js @@ -495,7 +495,7 @@ export const CreateGuilds = ({ guild, updateTable }) => { - اطلاعات صنفی + اطلاعات واحد @@ -531,7 +531,7 @@ export const CreateGuilds = ({ guild, updateTable }) => { fullWidth sx={{ mb: 2 }} > - افزودن واحد صنفی + {`افزودن واحد`} )} diff --git a/src/features/province/components/create-guilds/components/GuildInfoSection.js b/src/features/province/components/create-guilds/components/GuildInfoSection.js index 27b354a..c599c04 100644 --- a/src/features/province/components/create-guilds/components/GuildInfoSection.js +++ b/src/features/province/components/create-guilds/components/GuildInfoSection.js @@ -70,7 +70,7 @@ export const GuildInfoSection = ({ {!hideTitle && ( - اطلاعات صنفی + اطلاعات واحد )} diff --git a/src/features/province/components/create-guilds/components/InfoBox.js b/src/features/province/components/create-guilds/components/InfoBox.js index 197787d..4346f07 100644 --- a/src/features/province/components/create-guilds/components/InfoBox.js +++ b/src/features/province/components/create-guilds/components/InfoBox.js @@ -20,4 +20,3 @@ export const InfoBox = ({ icon: Icon, label, value, iconSx }) => ( ); - diff --git a/src/features/province/components/manage-guilds-requests-operations/ManageGuildsRequestsOperations.js b/src/features/province/components/manage-guilds-requests-operations/ManageGuildsRequestsOperations.js index 22299bf..77bb975 100644 --- a/src/features/province/components/manage-guilds-requests-operations/ManageGuildsRequestsOperations.js +++ b/src/features/province/components/manage-guilds-requests-operations/ManageGuildsRequestsOperations.js @@ -17,7 +17,11 @@ import { provinceResendRegisterCodeStateService } from "../../services/province- import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { ViewGuildDetails } from "../view-guild-details/ViewGuildDetails"; -export const ManageGuildsRequestsOperations = ({ guild, updateTable }) => { +export const ManageGuildsRequestsOperations = ({ + guild, + updateTable, + userType, +}) => { const [popoverOpen, setPopoverOpen] = useState(false); const [anchorEl, setAnchorEl] = useState(null); @@ -108,7 +112,9 @@ export const ManageGuildsRequestsOperations = ({ guild, updateTable }) => { dispatch( OPEN_MODAL({ title: "مشاهده جزییات صنف", - content: , + content: ( + + ), size: window.innerWidth <= 600 ? "small" : "auto", }) ); diff --git a/src/features/province/components/manage-guilds-requests/ManageGuildsRequests.js b/src/features/province/components/manage-guilds-requests/ManageGuildsRequests.js index 1b1f49d..4fd9bd6 100644 --- a/src/features/province/components/manage-guilds-requests/ManageGuildsRequests.js +++ b/src/features/province/components/manage-guilds-requests/ManageGuildsRequests.js @@ -1,10 +1,8 @@ import React, { useEffect, useState } from "react"; import { Button, TextField } from "@mui/material"; import { useDispatch } from "react-redux"; -import axios from "axios"; import { RiSearchLine } from "react-icons/ri"; import { - // DRAWER, LOADING_END, LOADING_START, OPEN_MODAL, @@ -14,8 +12,12 @@ import { Grid } from "../../../../components/grid/Grid"; import ResponsiveTable from "../../../../components/responsive-table/ResponsiveTable"; import { ManageGuildsRequestsOperations } from "../manage-guilds-requests-operations/ManageGuildsRequestsOperations"; import { CreateGuilds } from "../create-guilds/CreateGuilds"; +import { provinceGetTotalGuildsService } from "../../services/province-get-total-guilds"; +import { provinceGetTotalStewardsService } from "../../services/province-get-total-stewards"; -export const ManageGuildsRequests = () => { +export const ManageGuildsRequests = ({ userType }) => { + const IS_STEWARD = userType === "steward"; + const TABLE_TITLE = `درخواست‌های ثبت ${IS_STEWARD ? "مباشر" : "صنف"}`; const dispatch = useDispatch(); const handleTextChange = (event) => { @@ -31,8 +33,24 @@ export const ManageGuildsRequests = () => { const fetchApiData = async (page) => { dispatch(LOADING_START()); - const response = await axios.get( - `total_guilds/?search=filter&value=${textValue}&role=${getRoleFromUrl()}&page=${page}&page_size=${perPage}&check=true&state=pending` + const response = await dispatch( + IS_STEWARD + ? provinceGetTotalStewardsService({ + search: "filter", + value: textValue, + page, + page_size: perPage, + check: true, + state: "pending", + }) + : provinceGetTotalGuildsService({ + search: "filter", + value: textValue, + page, + page_size: perPage, + check: true, + state: "pending", + }) ); dispatch(LOADING_END()); setData(response.data?.results || []); @@ -57,14 +75,6 @@ export const ManageGuildsRequests = () => { const d = data?.map((item, i) => { return [ page === 1 ? i + 1 : i + perPage * (page - 1) + 1, - // item?.killHouseInfo?.length - // ? item?.killHouseInfo - // ?.map((item) => { - // const type = item?.killer ? "کشتارکن" : "کشتارگاه"; - // return `${type} ${item?.name} (${item?.mobile})`; - // }) - // .join(" - ") - // : `${item?.registerarFullname || ""} ${ item?.registerarMobile ? "(" + item?.registerarMobile + " )" : " " }`, @@ -78,13 +88,13 @@ export const ManageGuildsRequests = () => { `${item?.address?.province?.name || "-"}/${ item?.address?.city?.name || "-" }/${item?.address?.address || "-"}`, - item?.steward ? "می باشد" : "نمی باشد", item?.hasInquiry ? "استعلامی" : "دستی", item?.activeRegisterCode ? "انجام شده" : "انجام نشده", , ]; }); @@ -101,8 +111,15 @@ export const ManageGuildsRequests = () => { dispatch(LOADING_START()); try { - const response = await axios.get( - `total_guilds/?role=${getRoleFromUrl()}&search=filter&value=${textValue}&page=${1}&page_size=${perPage}&check=true&state=pending` + const response = await dispatch( + provinceGetTotalGuildsService({ + search: "filter", + value: textValue, + page: 1, + page_size: perPage, + check: true, + state: "pending", + }) ); setData(response.data?.results || []); setTotalRows(response.data?.count || 0); @@ -128,14 +145,14 @@ export const ManageGuildsRequests = () => { onClick={() => { dispatch( OPEN_MODAL({ - title: "ثبت واحد جدید", + title: `ثبت ${IS_STEWARD ? "مباشر" : "صنف"} جدید`, size: window.innerWidth <= 600 ? "small" : "auto", content: , }) ); }} > - ثبت واحد جدید + {`ثبت ${IS_STEWARD ? "مباشر" : "صنف"} جدید`} )} @@ -150,7 +167,6 @@ export const ManageGuildsRequests = () => { onChange={handleTextChange} /> )} @@ -410,7 +414,7 @@ export const MaangeGuilds = () => { page={page} perPage={perPage} handlePerRowsChange={handlePerRowsChange} - title="مدیریت اصناف" + title={TABLE_TITLE} /> ); diff --git a/src/features/province/components/manage-tab/ManageTab.js b/src/features/province/components/manage-tab/ManageTab.js index 01b79ba..fe7c83c 100644 --- a/src/features/province/components/manage-tab/ManageTab.js +++ b/src/features/province/components/manage-tab/ManageTab.js @@ -1,19 +1,19 @@ -import { useState } from "react"; -import { Tab, Tabs } from "@mui/material"; +// import { useState } from "react"; +// import { Tab, Tabs } from "@mui/material"; import { Grid } from "../../../../components/grid/Grid"; -import { MaangeGuilds } from "../manage-guilds/ManageGuilds"; -import { PspActiveSession } from "../../../psp-company/components/psp-active-session/PspActiveSession"; -import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; +import { ManageGuilds } from "../manage-guilds/ManageGuilds"; +// import { PspActiveSession } from "../../../psp-company/components/psp-active-session/PspActiveSession"; +// import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; export const ManageTab = () => { - const [value, setValue] = useState(0); + // const [value, setValue] = useState(0); - const handleChange = (event, newValue) => { - setValue(newValue); - }; + // const handleChange = (event, newValue) => { + // setValue(newValue); + // }; return ( - + {/* { )} - + */} - {value === 0 && } - {value === 1 && } + + {/* {value === 1 && } */} ); }; diff --git a/src/features/province/components/province-legal-guilds-in-province/ProvinceLegalGuildsForm.js b/src/features/province/components/province-legal-guilds-in-province/ProvinceLegalGuildsForm.js index a2b5de2..1fedb72 100644 --- a/src/features/province/components/province-legal-guilds-in-province/ProvinceLegalGuildsForm.js +++ b/src/features/province/components/province-legal-guilds-in-province/ProvinceLegalGuildsForm.js @@ -393,7 +393,13 @@ const InquiryForm = ({ onInquiry, nationalCode, setNationalCode }) => { ); }; -export const ProvinceLegalGuildsForm = ({ onClose, updateTable, guild }) => { +export const ProvinceLegalGuildsForm = ({ + onClose, + updateTable, + guild, + userType, +}) => { + const IS_STEWARD = userType === "steward"; const dispatch = useDispatch(); const [openNotif] = useContext(AppContext); const [nationalCode, setNationalCode] = useState( @@ -454,7 +460,7 @@ export const ProvinceLegalGuildsForm = ({ onClose, updateTable, guild }) => { // Update modal with larger size dispatch( OPEN_MODAL({ - title: "ثبت واحد حقوقی", + title: `ثبت ${IS_STEWARD ? "مباشر" : "صنف"} حقوقی`, content: ( { +export const ProvinceLegalGuildsInProvince = ({ userType }) => { + const IS_STEWARD = userType === "steward"; + const TABLE_TITLE = `${IS_STEWARD ? "مباشرین" : "اصناف"} حقوقی داخل استان`; const dispatch = useDispatch(); const [data, setData] = useState([]); const [totalRows, setTotalRows] = useState(0); @@ -89,6 +91,7 @@ export const ProvinceLegalGuildsInProvince = () => { key={`operations-${item?.key || i}`} guild={item} updateTable={updateTableData} + userType={userType} />, ]; }); @@ -139,11 +142,12 @@ export const ProvinceLegalGuildsInProvince = () => { const handleOpenModal = () => { dispatch( OPEN_MODAL({ - title: "ثبت واحد حقوقی", + title: `ثبت ${IS_STEWARD ? "مباشر جدید" : "صنف جدید"}`, content: ( dispatch(CLOSE_MODAL())} updateTable={updateTableData} + userType={userType} /> ), size: 400, @@ -161,9 +165,8 @@ export const ProvinceLegalGuildsInProvince = () => { gap={SPACING.SMALL} > -
{ { +export const ProvinceLegalGuildsOperations = ({ + guild, + updateTable, + userType, +}) => { + const IS_STEWARD = userType === "steward"; const dispatch = useDispatch(); const [checked, setChecked] = useState(guild?.active); const [popoverOpen, setPopoverOpen] = useState(false); @@ -47,7 +52,9 @@ export const ProvinceLegalGuildsOperations = ({ guild, updateTable }) => { content: ( - آیا از حذف این واحد حقوقی اطمینان دارید؟ + {`آیا از حذف این ${ + IS_STEWARD ? "مباشر" : "صنف" + } حقوقی اطمینان دارید؟`}