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,