From 331fb98625b2401c59405407dcc2bb6653908882 Mon Sep 17 00:00:00 2001 From: workashrafi77-web Date: Sun, 1 Feb 2026 10:45:12 +0330 Subject: [PATCH] develop => add buyer discovered all types of user --- .../InquiryForAdminAddBuyer.js | 701 ++++++++++++++++++ .../InquiryForSlaughterAddBuyer.js | 9 +- .../steward-add-buyer/StewardAddBuyer.js | 124 +++- .../steward-add-buyer/hooks/useAddBuyer.js | 16 +- 4 files changed, 826 insertions(+), 24 deletions(-) create mode 100644 src/features/steward/components/steward-add-buyer/InquiryForAdminAddBuyer.js diff --git a/src/features/steward/components/steward-add-buyer/InquiryForAdminAddBuyer.js b/src/features/steward/components/steward-add-buyer/InquiryForAdminAddBuyer.js new file mode 100644 index 0000000..f03c820 --- /dev/null +++ b/src/features/steward/components/steward-add-buyer/InquiryForAdminAddBuyer.js @@ -0,0 +1,701 @@ +import { useContext, useEffect, useState } from "react"; +import { AppContext } from "../../../../contexts/AppContext"; +import { useDispatch } from "react-redux"; +import { useFormik } from "formik"; +import { Yup } from "../../../../lib/yup/yup"; +import { Grid } from "../../../../components/grid/Grid"; +import { + Autocomplete, + FormControl, + FormControlLabel, + IconButton, + InputLabel, + MenuItem, + Radio, + RadioGroup, + Select, + TextField, + Typography, +} from "@mui/material"; +import { SPACING } from "../../../../data/spacing"; +import SearchIcon from "@mui/icons-material/Search"; +import { extractProvinceFromAddress } from "../../../../utils/address"; +import { provinceGetNationalDocumentsService } from "../../../province/services/province-get-national-documents"; +import { + slaughterEditBuyerDataService, + slaughterSubmitBuyerDataService, +} from "../../../slaughter-house/services/slaughter-house-submit-buyer"; +import { LabelField } from "../../../../components/label-field/LabelField"; + +export const validationSchemaForAdminAddBuyer = (isEdit, isRealPerson) => + Yup.object({ + mobile: Yup.string() + .required("این فیلد اجباری است!") + .min(11, "شماره موبایل باید 11 رقم باشد") + .max(11, "شماره موبایل باید 11 رقم باشد") + .matches(/^09\d{9}$/, "شماره موبایل باید با 09 شروع شود و 11 رقم باشد"), + firstName: Yup.string() + .required("این فیلد اجباری است!") + .typeError("لطفا فیلد را به درستی وارد کنید!"), + lastName: Yup.string() + .required("این فیلد اجباری است!") + .typeError("لطفا فیلد را به درستی وارد کنید!"), + unit_name: Yup.string() + .required("این فیلد اجباری است!") + .typeError("لطفا فیلد را به درستی وارد کنید!"), + province: Yup.string() + .required("این فیلد اجباری است!") + .typeError("لطفا فیلد را به درستی وارد کنید!"), + city: Yup.string() + .required("این فیلد اجباری است!") + .typeError("لطفا فیلد را به درستی وارد کنید!"), + nationalId: + !isRealPerson && isEdit + ? Yup.string().nullable() + : Yup.string() + .required("این فیلد اجباری است!") + .matches(/^\d{10,11}$/, "شناسه باید 10 یا 11 رقم و فقط عدد باشد"), + role_key: Yup.string().required("این فیلد اجباری است!"), + type: Yup.string().oneOf(["Steward", "KillHouse"]).required(), + }); + +export const handleSubmitForAdminAddBuyer = ( + formik, + dispatch, + isEdit, + tableData, + updateTable, + openNotif, + DRAWER, + isRealPerson, + buyerType +) => { + if (isEdit) { + const submitData = { + buyer_type: buyerType, + buyer_key: tableData?.key, + mobile: formik.values.mobile, + first_name: formik.values.firstName, + last_name: formik.values.lastName, + city: formik.values.city, + province: formik.values.province, + national_id: formik.values.nationalId, + unit_name: formik.values.unit_name, + type: formik.values.type, + role_key: formik.values.role_key, + }; + + dispatch(slaughterEditBuyerDataService(submitData)).then((r) => { + updateTable(); + if (r.payload.error) { + openNotif({ + vertical: "top", + horizontal: "center", + msg: r.payload.error, + severity: "error", + }); + } else { + dispatch(DRAWER({ right: false, bottom: false, content: null })); + + openNotif({ + vertical: "top", + horizontal: "center", + msg: "عملیات با موفقیت انجام شد.", + severity: "success", + }); + } + }); + } else { + const submitData = { + mobile: formik.values.mobile, + buyer_type: buyerType, + first_name: formik.values.firstName, + last_name: formik.values.lastName, + city: formik.values.city, + province: formik.values.province, + unit_name: formik.values.unit_name, + national_id: !isRealPerson ? null : formik.values.nationalId, + type: formik.values.type, + role_key: formik.values.role_key, + ...(!isRealPerson && { + isRealPerson: false, + info_value: formik.values.nationalId, + }), + }; + + // if (IS_STEWARD) { + // submitData.name = formik.values.unitName; + // delete submitData.unit_name; + // } + dispatch(slaughterSubmitBuyerDataService(submitData)).then((r) => { + updateTable(); + if (r.payload.error) { + openNotif({ + vertical: "top", + horizontal: "center", + msg: r.payload.error, + severity: "error", + }); + } else { + dispatch(DRAWER({ right: false, bottom: false, content: null })); + + openNotif({ + vertical: "top", + horizontal: "center", + msg: "عملیات با موفقیت انجام شد.", + severity: "success", + }); + } + }); + } +}; + +export const handleSetFormDataFromTableDataForAdminAddBuyer = ( + tableData, + formik +) => { + const formData = { + mobile: tableData.mobile || "", + firstName: tableData.firstName || "", + lastName: tableData.lastName || "", + province: tableData.province || "", + city: tableData.city || "", + nationalId: tableData.nationalId || "", + unit_name: tableData?.unitName || "", + type: formik.values?.type, + role_key: formik.values?.role_key, + }; + + formik.setValues(formData); + + setTimeout(() => { + formik.validateForm(); + }, 1); +}; + +export const handleSetFormDataFromUserDataForAdminAddBuyer = ( + userData, + formik +) => { + if (userData) { + const formData = { + mobile: userData.mobile || "", + firstName: userData.firstName || "", + lastName: userData.lastName || "", + province: userData.province || "", + city: userData.city || "", + nationalId: userData.nationalId || "", + unit_name: userData?.unitName || "", + type: formik.values?.type, + role_key: formik.values?.role_key, + }; + + formik.setValues(formData); + + setTimeout(() => { + formik.validateForm(); + }, 1); + } +}; + +export const InquiryForAdminAddBuyer = ({ + notFound, + setNotFound, + setUserData, + formik, + isEdit, + isRealPerson, + provinceData, +}) => { + const [inquiryInProgress, setInquiryInProgress] = useState(false); + + const [openNotif] = useContext(AppContext); + const dispatch = useDispatch(); + + const formik2 = useFormik({ + initialValues: { + personType: isRealPerson ? "real" : "legal", // real | legal + nationalCode: "", + }, + validationSchema: Yup.object({ + nationalCode: + isEdit && isRealPerson + ? Yup.string().nullable() + : Yup.string() + .required("این فیلد اجباری است!") + .when("personType", { + is: "real", + then: (schema) => + schema + .length(10, "کد ملی باید 10 رقم باشد") + .matches(/^\d{10}$/, "کد ملی باید فقط شامل اعداد باشد"), + otherwise: (schema) => + schema + .length(11, "شناسه ملی حقوقی باید 11 رقم باشد") + .matches( + /^\d{11}$/, + "شناسه ملی حقوقی باید فقط شامل اعداد باشد" + ), + }), + }), + validateOnMount: isEdit ? false : true, + }); + + const handleInquiry = async () => { + if (!formik2.isValid || inquiryInProgress) { + return; + } + + const nationalCode = formik2.values.nationalCode; + const personType = formik2.values.personType; + + setInquiryInProgress(true); + setNotFound(false); + setUserData(null); + + let personData = null; + let selectedGuild = null; + + try { + if (personType === "legal") { + const url = `https://pay.rasadyar.com/national-documents?info=${encodeURIComponent( + nationalCode + )}&type=unit`; + const res = await fetch(url); + const json = await res.json(); + + if (json?.status && json?.data) { + const d = json.data; + const extractedProvince = extractProvinceFromAddress( + d.address || "", + provinceData + ); + const aggregatedUserData = { + mobile: d.mobile, + firstName: d.name || "", + lastName: d.name || "", + unitName: d.unitName || "", + province: d.state || extractedProvince || "", + city: d.city || "", + nationalId: d.nationalCode || nationalCode, + type: formik.values?.type, + role_key: formik.values?.role_key, + }; + handleSetFormDataFromUserDataForAdminAddBuyer( + aggregatedUserData, + formik + ); + formik2.setFieldValue( + "nationalCode", + aggregatedUserData.nationalId || nationalCode + ); + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات حقوقی با موفقیت دریافت شد.", + severity: "success", + }); + } else { + setNotFound(true); + formik.setFieldValue("nationalId", nationalCode); + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات حقوقی برای این شناسه یافت نشد، لطفا اطلاعات را به صورت دستی ثبت کنید.", + severity: "warning", + }); + } + return; + } + + const personResponse = await dispatch( + provinceGetNationalDocumentsService({ + info: nationalCode, + type: "person", + }) + ); + + if (personResponse.payload?.error) { + openNotif({ + vertical: "top", + horizontal: "center", + msg: personResponse.payload.error, + severity: "error", + }); + } else if ( + personResponse.payload?.data?.status && + personResponse.payload?.data?.data + ) { + personData = personResponse.payload.data.data; + } else { + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات فردی یافت نشد.", + severity: "warning", + }); + } + + const guildResponse = await dispatch( + provinceGetNationalDocumentsService({ + info: nationalCode, + type: "guild", + }) + ); + + if (guildResponse.payload?.error) { + openNotif({ + vertical: "top", + horizontal: "center", + msg: guildResponse.payload.error, + severity: "error", + }); + } else if ( + guildResponse.payload?.data?.status && + guildResponse.payload?.data?.data + ) { + const guildData = guildResponse.payload.data.data; + const guildArray = Array.isArray(guildData) ? guildData : [guildData]; + if (guildArray.length > 0) { + const activeGuildIndex = guildArray.findIndex( + (g) => g.licenseStatus === "فعال/صادر شده" + ); + selectedGuild = + guildArray[activeGuildIndex !== -1 ? activeGuildIndex : 0]; + } else { + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات صنفی برای این کد ملی یافت نشد.", + severity: "warning", + }); + } + } else { + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات صنفی برای این کد ملی یافت نشد.", + severity: "warning", + }); + } + + if (!personData && !selectedGuild) { + setNotFound(true); + formik.setFieldValue("nationalId", nationalCode); + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعاتی برای این کد ملی یافت نشد، لطفا اطلاعات را به صورت دستی ثبت کنید.", + severity: "warning", + }); + return; + } + + const layerTwo = selectedGuild?.layerTwo || {}; + const aggregatedUserData = { + mobile: + layerTwo.mobilenumber || + personData?.mobile || + layerTwo.phonenumber || + "", + firstName: personData?.firstName || "", + lastName: personData?.lastName || "", + unitName: + selectedGuild?.title || + layerTwo.corporationName || + layerTwo.unionName || + "", + province: selectedGuild?.state || "", + city: selectedGuild?.city || "", + nationalId: + personData?.nationalId || + layerTwo.nationalcode || + selectedGuild?.nationalId || + nationalCode, + type: formik.values?.type, + role_key: formik.values?.role_key, + }; + + setUserData(aggregatedUserData); + handleSetFormDataFromUserDataForAdminAddBuyer(aggregatedUserData, formik); + formik2.setFieldValue( + "nationalCode", + aggregatedUserData.nationalId || nationalCode + ); + openNotif({ + vertical: "top", + horizontal: "center", + msg: "اطلاعات با موفقیت دریافت شد.", + severity: "success", + }); + } finally { + setInquiryInProgress(false); + } + }; + + useEffect(() => { + if (notFound) { + formik.setFieldValue("mobile", formik2.values.mobile); + } + }, [notFound]); + + return ( + + + {"استعلام "} + {!isRealPerson ? "شناسه ملی حقوقی" : "کد ملی"} + + + + + + + + + ); +}; + +export const AdminAddBuyerForm = ({ + formik, + provinceData, + cityData, + notFound, + isRealPerson, + killHouses, + stewards, +}) => { + return ( + + + + { + const value = e.target.value; + formik.setFieldValue("type", value); + }} + > + } label="مباشر" /> + } + label="کشتارگاه" + /> + + + {formik.values.type === "Steward" ? ( + { + return { + key: item?.key, + label: `${item?.name || ""} - ${item?.user?.fullname || ""} (${ + item?.user?.mobile || "" + })`, + }; + })} + onChange={(event, value) => { + formik.setFieldValue("role_key", value?.key || ""); + }} + value={ + formik.values.role_key + ? { + key: formik.values.role_key, + label: + stewards.find((item) => item.key === formik.values.role_key) + ?.name || "", + } + : null + } + isOptionEqualToValue={(option, value) => option.key === value.key} + label="انتخاب مباشر" + renderInput={(params) => ( + + )} + /> + ) : formik.values.type === "KillHouse" ? ( + + انتخاب کشتارگاه یا کشتارکن + + {formik.errors.role_key && formik.touched.role_key && ( +
{formik.errors.role_key}
+ )} +
+ ) : null} + + + + + + ({ id: i.name, label: i.name })) + : [] + } + isOptionEqualToValue={(option, value) => option.id === value.id} + onChange={(e, value) => { + formik.setFieldValue("province", value ? value.id : ""); + formik.setFieldValue("city", ""); + }} + value={ + formik.values.province + ? { + id: formik.values.province, + label: formik.values.province, + } + : null + } + renderInput={(params) => ( + + )} + /> + {!notFound && ( + + استان: {formik.values.province} + + )} + {cityData && formik.values.province && ( + <> + ({ id: i.name, label: i.name })) + : [] + } + isOptionEqualToValue={(option, value) => option.id === value.id} + onChange={(e, value) => { + formik.setFieldValue("city", value ? value.id : ""); + }} + value={cityData.find((i) => i.name === formik.values.city)?.name} + renderInput={(params) => ( + + )} + /> + + {!notFound && ( + + شهر: {formik.values.city} + + )} + + )} +
+ ); +}; diff --git a/src/features/steward/components/steward-add-buyer/InquiryForSlaughterAddBuyer.js b/src/features/steward/components/steward-add-buyer/InquiryForSlaughterAddBuyer.js index f383211..9acf380 100644 --- a/src/features/steward/components/steward-add-buyer/InquiryForSlaughterAddBuyer.js +++ b/src/features/steward/components/steward-add-buyer/InquiryForSlaughterAddBuyer.js @@ -13,6 +13,7 @@ import { slaughterEditBuyerDataService, slaughterSubmitBuyerDataService, } from "../../../slaughter-house/services/slaughter-house-submit-buyer"; +import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; export const validationSchemaForSlaughterAddBuyer = (isEdit, isRealPerson) => Yup.object({ @@ -68,6 +69,7 @@ export const handleSubmitForSlaughterAddBuyer = ( role_key: selectedSubUser?.key || "", buyer_type: tableData?.buyerType, buyer_key: tableData?.key, + role: getRoleFromUrl(), }; dispatch(slaughterEditBuyerDataService(submitData)).then((r) => { @@ -92,6 +94,7 @@ export const handleSubmitForSlaughterAddBuyer = ( }); } else { const submitData = { + role: getRoleFromUrl(), mobile: formik.values.mobile, first_name: formik.values.firstName, last_name: formik.values.lastName, @@ -158,7 +161,7 @@ export const handleSetFormDataFromTableDataForSlaughterAddBuyer = ( }, 1); }; -export const handleSetFormDataFromUserDataForStewardAddBuyer = ( +export const handleSetFormDataFromUserDataForSlaughterAddBuyer = ( userData, formik ) => { @@ -263,7 +266,7 @@ export const InquiryForSlaughterAddBuyer = ({ nationalId: d.nationalCode || nationalCode, }; setUserData(aggregatedUserData); - handleSetFormDataFromUserDataForStewardAddBuyer( + handleSetFormDataFromUserDataForSlaughterAddBuyer( aggregatedUserData, formik ); @@ -392,7 +395,7 @@ export const InquiryForSlaughterAddBuyer = ({ nationalCode, }; setUserData(aggregatedUserData); - handleSetFormDataFromUserDataForStewardAddBuyer( + handleSetFormDataFromUserDataForSlaughterAddBuyer( aggregatedUserData, formik ); diff --git a/src/features/steward/components/steward-add-buyer/StewardAddBuyer.js b/src/features/steward/components/steward-add-buyer/StewardAddBuyer.js index b539d67..2b9290a 100644 --- a/src/features/steward/components/steward-add-buyer/StewardAddBuyer.js +++ b/src/features/steward/components/steward-add-buyer/StewardAddBuyer.js @@ -8,6 +8,10 @@ import { DRAWER } from "../../../../lib/redux/slices/appSlice"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { useLocation } from "react-router-dom"; import { + ROUTE_ADMINX_ROUTE_MANAGE_STEWARDS_OUT_PROVINCE_LEGAL, + ROUTE_ADMINX_ROUTE_MANAGE_STEWARDS_OUT_PROVINCE_TRUE, + ROUTE_ADMINX_ROUTE_OUT_PROVINCE_LEGAL_GUILDS, + ROUTE_ADMINX_ROUTE_OUT_PROVINCE_TRUE_GUILDS, ROUTE_SLAUGHTER_INVENTORY_SELL_CARCASS_OUT_PROVINCE, ROUTE_SLAUGHTER_MANAGE_GUILDS_OUT_PROVINCE_TRUE, ROUTE_STEWARD_SALE_OUT_PROVINCE, @@ -29,6 +33,15 @@ import { validationSchemaForSlaughterAddBuyer, } from "./InquiryForSlaughterAddBuyer"; import { useFormik } from "formik"; +import { + AdminAddBuyerForm, + handleSetFormDataFromTableDataForAdminAddBuyer, + handleSubmitForAdminAddBuyer, + InquiryForAdminAddBuyer, + validationSchemaForAdminAddBuyer, +} from "./InquiryForAdminAddBuyer"; +import { inspectorGetKillHousesService } from "../../../inspector/services/inspector-get-kill-houses"; +import { slaughterGetStewardsForAllocateService } from "../../../slaughter-house/services/slaughter-get-guilds-for-allocate"; // userType enums = steward | steward_true | steward_legal | _true | _legal @@ -46,6 +59,17 @@ const getCurrentPage = (role, pathname) => { return "slaughter_manage_add_buyer"; } } + if (role === "AdminX") { + const routes = [ + ROUTE_ADMINX_ROUTE_OUT_PROVINCE_TRUE_GUILDS, + ROUTE_ADMINX_ROUTE_OUT_PROVINCE_LEGAL_GUILDS, + ROUTE_ADMINX_ROUTE_MANAGE_STEWARDS_OUT_PROVINCE_LEGAL, + ROUTE_ADMINX_ROUTE_MANAGE_STEWARDS_OUT_PROVINCE_TRUE, + ]; + if (routes.some((r) => r === pathname)) { + return "admin_add_buyer"; + } + } }; const getInitialValues = (page) => { @@ -60,8 +84,16 @@ const getInitialValues = (page) => { if (page === "steward_add_buyer" || page === "slaughter_manage_add_buyer") { return initialValues; } else if (page === "slaughter_add_buyer") { - initialValues.nationalId = ""; - return initialValues; + return { + ...initialValues, + nationalId: "", + }; + } else if (page === "admin_add_buyer") { + return { + ...initialValues, + role_key: "", + type: "", + }; } return initialValues; }; @@ -74,9 +106,18 @@ export const StewardAddBuyer = ({ buyerType = "", // buyerYype => "Guilds" | "Steward" }) => { + const role = getRoleFromUrl(); + const { pathname } = useLocation(); + + const page = getCurrentPage(role, pathname); + + const IS_STEWARD_ADD_BUYER = page === "steward_add_buyer"; + const IS_SLAUGHTER_ADD_BUYER = page === "slaughter_add_buyer"; + const IS_SLAUGHTER_MANAGE_ADD_BUYER = page === "slaughter_manage_add_buyer"; + const IS_ADMIN_ADD_BUYER = page === "admin_add_buyer"; + const { killHouses, - setKillhouses, stewards, setStewards, provinceData, @@ -84,21 +125,10 @@ export const StewardAddBuyer = ({ setCityData, userData, setUserData, - } = useAddBuyer(); - const role = getRoleFromUrl(); - const { pathname } = useLocation(); - const { selectedSubUser } = useSelector((state) => state.userSlice); - const page = getCurrentPage(role, pathname); - const IS_STEWARD_ADD_BUYER = page === "steward_add_buyer"; - const IS_SLAUGHTER_ADD_BUYER = page === "slaughter_add_buyer"; - const IS_SLAUGHTER_MANAGE_ADD_BUYER = page === "slaughter_manage_add_buyer"; + } = useAddBuyer(page); + + const { selectedSubUser } = useSelector((state) => state.userSlice); - // const IS_MANAGE_STEWARDS = userType === "steward"; - // const IS_ADMINX = role === "AdminX"; - // const IS_OUT_PROVINCE = pathname.includes("out-province"); - // const { inspectorGetKillHouses } = useSelector( - // (state) => state.inspectorSlice - // ); const [openNotif] = useContext(AppContext); const [notFound, setNotFound] = useState(false); const dispatch = useDispatch(); @@ -109,12 +139,32 @@ export const StewardAddBuyer = ({ ? validationSchemaForStewardAddBuyer : IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER ? validationSchemaForSlaughterAddBuyer(isRealPerson, isEdit) + : IS_ADMIN_ADD_BUYER + ? validationSchemaForAdminAddBuyer(isRealPerson, isEdit) : Yup.object({}), }); useEffect(() => { - formik.validateForm(); - }, []); + if (isEdit) { + formik.validateForm(); + } + }, [isEdit]); + + useEffect(() => { + if (IS_ADMIN_ADD_BUYER) { + if (formik.values.type === "KillHouse") { + dispatch(inspectorGetKillHousesService()); + } else { + dispatch( + slaughterGetStewardsForAllocateService({ + free: true, + }) + ).then((r) => { + setStewards(r.payload.data || []); + }); + } + } + }, [formik.values.type]); useEffect(() => { if (isEdit) { @@ -124,6 +174,9 @@ export const StewardAddBuyer = ({ if (IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER) { handleSetFormDataFromTableDataForSlaughterAddBuyer(data, formik); } + if (IS_ADMIN_ADD_BUYER) { + handleSetFormDataFromTableDataForAdminAddBuyer(data, formik); + } } }, [isEdit]); @@ -167,6 +220,16 @@ export const StewardAddBuyer = ({ isRealPerson={isRealPerson} provinceData={provinceData} /> + ) : IS_ADMIN_ADD_BUYER ? ( + ) : null ) : null} {userData || notFound || isEdit ? ( @@ -185,6 +248,16 @@ export const StewardAddBuyer = ({ notFound={notFound} isRealPerson={isRealPerson} /> + ) : IS_ADMIN_ADD_BUYER ? ( + ) : null ) : null} {(userData || notFound || isEdit) && ( @@ -233,6 +306,19 @@ export const StewardAddBuyer = ({ buyerType ); } + if (IS_ADMIN_ADD_BUYER) { + handleSubmitForAdminAddBuyer( + formik, + dispatch, + isEdit, + data, + updateTable, + openNotif, + DRAWER, + isRealPerson, + buyerType + ); + } }} > {isEdit ? "ویرایش" : "ثبت"} diff --git a/src/features/steward/components/steward-add-buyer/hooks/useAddBuyer.js b/src/features/steward/components/steward-add-buyer/hooks/useAddBuyer.js index 41cecb0..2248d4b 100644 --- a/src/features/steward/components/steward-add-buyer/hooks/useAddBuyer.js +++ b/src/features/steward/components/steward-add-buyer/hooks/useAddBuyer.js @@ -1,14 +1,17 @@ import { useEffect, useState } from "react"; -import { useDispatch } from "react-redux"; +import { useDispatch, useSelector } from "react-redux"; import { slaughterGetProvinceService } from "../../../../slaughter-house/services/slaughter-get-provinces"; -export const useAddBuyer = () => { +export const useAddBuyer = (page) => { const dispatch = useDispatch(); const [killHouses, setKillhouses] = useState([]); const [stewards, setStewards] = useState([]); const [userData, setUserData] = useState(null); const [provinceData, setProvinceData] = useState([]); const [cityData, setCityData] = useState([]); + const { inspectorGetKillHouses } = useSelector( + (state) => state.inspectorSlice + ); useEffect(() => { dispatch(slaughterGetProvinceService()).then((r) => { @@ -16,6 +19,15 @@ export const useAddBuyer = () => { }); }, []); + useEffect(() => { + if (page === "admin_add_buyer") { + const d = inspectorGetKillHouses?.map((item) => { + return { name: item.name, key: item.key, killer: item.killer }; + }); + setKillhouses(d); + } + }, [inspectorGetKillHouses]); + return { killHouses, setKillhouses,