Fix: steward add buyer cleaner

This commit is contained in:
2026-02-07 15:00:57 +03:30
parent 7f1f55e478
commit d39b75200c
7 changed files with 332 additions and 242 deletions

View File

@@ -83,7 +83,13 @@ export const getInitialValues = (guildDataForEdit) => {
gender: userDataFromEdit.gender || "", gender: userDataFromEdit.gender || "",
person_city: userDataFromEdit.city || cityDataFromEdit?.name || "", person_city: userDataFromEdit.city || cityDataFromEdit?.name || "",
city: cityDataFromEdit?.id ?? cityDataFromEdit?.key ?? "", city: cityDataFromEdit?.id ?? cityDataFromEdit?.key ?? "",
is_alive: userDataFromEdit.isAlive || "", is_alive:
userDataFromEdit.isAlive === true || userDataFromEdit.is_alive === true
? "بلی"
: userDataFromEdit.isAlive === false ||
userDataFromEdit.is_alive === false
? "خیر"
: "",
mobile: userDataFromEdit.mobile || "", mobile: userDataFromEdit.mobile || "",
// Guild Information Fields (from guild object in edit mode) // Guild Information Fields (from guild object in edit mode)
@@ -99,7 +105,8 @@ export const getInitialValues = (guildDataForEdit) => {
union_name: guildDataForEdit?.unionName || "", union_name: guildDataForEdit?.unionName || "",
postal_code: addressDataFromEdit.postalCode || "", postal_code: addressDataFromEdit.postalCode || "",
phone_number: guildDataForEdit?.phoneNumber || "", phone_number: guildDataForEdit?.phoneNumber || "",
license_number: guildDataForEdit?.licenseNumber || "", license_number:
guildDataForEdit?.license_number ?? guildDataForEdit?.licenseNumber ?? "",
// شناسه ملی شرکت: from company_identifier when dbRegister true // شناسه ملی شرکت: from company_identifier when dbRegister true
guild_national_id: guild_national_id:
guildDataForEdit?.company_identifier ?? guildDataForEdit?.company_identifier ??
@@ -142,7 +149,7 @@ export const getInitialValues = (guildDataForEdit) => {
company_identifier: guildDataForEdit?.companyIdentifier || "", company_identifier: guildDataForEdit?.companyIdentifier || "",
type_activity_name: guildDataForEdit?.typeActivityName || "", type_activity_name: guildDataForEdit?.typeActivityName || "",
// Guilds array for validation (edit mode) // Guilds array for validation (edit mode) must include license_number for schema
guilds: guildDataForEdit guilds: guildDataForEdit
? [ ? [
{ {
@@ -158,6 +165,10 @@ export const getInitialValues = (guildDataForEdit) => {
: typeof guildDataForEdit?.isGuild === "boolean" : typeof guildDataForEdit?.isGuild === "boolean"
? guildDataForEdit.isGuild ? guildDataForEdit.isGuild
: false, : false,
license_number:
guildDataForEdit?.license_number ??
guildDataForEdit?.licenseNumber ??
"",
}, },
] ]
: [], : [],

View File

@@ -229,6 +229,16 @@ const LegalGuildForm = ({
style={{ width: "100%" }} style={{ width: "100%" }}
disablePortal disablePortal
id="province" id="province"
value={
provinces?.find((p) => p.key === formik.values.province)
? {
id: formik.values.province,
label: provinces.find(
(p) => p.key === formik.values.province
)?.name,
}
: null
}
options={ options={
provinces provinces
? provinces.map((i) => ({ ? provinces.map((i) => ({
@@ -255,6 +265,16 @@ const LegalGuildForm = ({
disabled={!formik.values.province} disabled={!formik.values.province}
disablePortal disablePortal
id="city" id="city"
value={
cities?.find((c) => c.key === formik.values.city)
? {
id: formik.values.city,
label: cities.find(
(c) => c.key === formik.values.city
)?.name,
}
: null
}
options={ options={
cities cities
? cities.map((i) => ({ id: i.key, label: i.name })) ? cities.map((i) => ({ id: i.key, label: i.name }))
@@ -387,17 +407,17 @@ export const ProvinceLegalGuildsForm = ({ updateTable, item, userType }) => {
national_id: item?.user?.nationalId || "", national_id: item?.user?.nationalId || "",
first_name: item?.user?.firstName || "", first_name: item?.user?.firstName || "",
last_name: item?.user?.lastName || "", last_name: item?.user?.lastName || "",
province: item?.address?.province?.name || "", province: "",
city: item?.address?.city?.name || "", city: "",
address: item?.address?.address || "", address: "",
mobile: item?.user?.mobile || "", mobile: item?.user?.mobile || "",
type_activity: item?.typeActivity || "", type_activity: item?.typeActivity || "",
}; };
if (IS_STEWARD) { if (IS_STEWARD) {
userInitialValue["name"] = item?.name; userInitialValue["name"] = item?.guilds_name || item?.name;
} else { } else {
userInitialValue["unit_name"] = item?.guildsName; userInitialValue["unit_name"] = item?.guilds_name || item?.guildsName;
} }
const dispatch = useDispatch(); const dispatch = useDispatch();
@@ -602,6 +622,35 @@ export const ProvinceLegalGuildsForm = ({ updateTable, item, userType }) => {
} }
}, [formik?.values?.province]); }, [formik?.values?.province]);
useEffect(() => {
if (item && provinceData && !formik?.values?.province) {
const provinceName = item?.provinceName;
if (provinceName) {
const province = provinceData.find((p) => p?.name === provinceName);
if (province?.key) {
formik?.setFieldValue("province", province.key);
}
}
}
}, [item, provinceData]);
useEffect(() => {
if (
item &&
cityData?.length &&
formik?.values?.province &&
!formik?.values?.city
) {
const cityName = item?.cityName;
if (cityName) {
const city = cityData.find((c) => c?.name === cityName);
if (city?.key) {
formik?.setFieldValue("city", city.key);
}
}
}
}, [item, cityData, formik?.values?.province]);
if (!userData && !item) { if (!userData && !item) {
return ( return (
<InquiryForm <InquiryForm

View File

@@ -94,8 +94,8 @@ export const ProvinceLegalGuildsInProvince = ({ userType }) => {
(IS_STEWARD ? item?.name : item?.guildsName) || "-", (IS_STEWARD ? item?.name : item?.guildsName) || "-",
`${item?.user?.fullname || "-"}`, `${item?.user?.fullname || "-"}`,
item?.user?.mobile || "-", item?.user?.mobile || "-",
item?.address?.province?.name || "-", item?.provinceName || "-",
item?.address?.city?.name || "-", item?.cityName || "-",
item?.typeActivity || "-", item?.typeActivity || "-",
item?.active ? "فعال" : "غیر فعال", item?.active ? "فعال" : "غیر فعال",
<ProvinceLegalGuildsOperations <ProvinceLegalGuildsOperations

View File

@@ -5,7 +5,7 @@ import {
DRAWER, DRAWER,
LOADING_END, LOADING_END,
LOADING_START, LOADING_START,
OPEN_MODAL OPEN_MODAL,
} from "../../../../lib/redux/slices/appSlice"; } from "../../../../lib/redux/slices/appSlice";
import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl";
import { Grid } from "../../../../components/grid/Grid"; import { Grid } from "../../../../components/grid/Grid";
@@ -40,7 +40,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
page: page, page: page,
pageSize: perPage, pageSize: perPage,
searchValue: textValue, searchValue: textValue,
buyer_type: IS_STEWARD ? "Steward" : "Guilds" buyer_type: IS_STEWARD ? "Steward" : "Guilds",
}); });
setData(response.data.results); setData(response.data.results);
setTotalRows(response.data.count); setTotalRows(response.data.count);
@@ -84,7 +84,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
0 0
).toLocaleString(), ).toLocaleString(),
(req?.total_quantity ?? req?.totalQuantity ?? 0).toLocaleString(), (req?.total_quantity ?? req?.totalQuantity ?? 0).toLocaleString(),
(req?.total_weight ?? req?.totalWeight ?? 0).toLocaleString() (req?.total_weight ?? req?.totalWeight ?? 0).toLocaleString(),
]; ];
}) ?? []; }) ?? [];
dispatch( dispatch(
@@ -105,11 +105,11 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
"شهر", "شهر",
"تعداد درخواست", "تعداد درخواست",
"حجم (قطعه)", "حجم (قطعه)",
"وزن (کیلوگرم)" "وزن (کیلوگرم)",
]} ]}
customWidth={"80vw"} customWidth={"80vw"}
/> />
) ),
}) })
); );
}; };
@@ -131,7 +131,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
0 0
).toLocaleString(), ).toLocaleString(),
(req?.total_quantity ?? req?.totalQuantity ?? 0).toLocaleString(), (req?.total_quantity ?? req?.totalQuantity ?? 0).toLocaleString(),
(req?.total_weight ?? req?.totalWeight ?? 0).toLocaleString() (req?.total_weight ?? req?.totalWeight ?? 0).toLocaleString(),
]; ];
}) ?? []; }) ?? [];
dispatch( dispatch(
@@ -151,11 +151,11 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
"شهر", "شهر",
"تعداد درخواست", "تعداد درخواست",
"حجم (قطعه)", "حجم (قطعه)",
"وزن (کیلوگرم)" "وزن (کیلوگرم)",
]} ]}
customWidth={"80vw"} customWidth={"80vw"}
/> />
) ),
}) })
); );
}; };
@@ -186,7 +186,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
totalQuantity: totalQuantity:
acc.totalQuantity + (r?.total_quantity ?? r?.totalQuantity ?? 0), acc.totalQuantity + (r?.total_quantity ?? r?.totalQuantity ?? 0),
totalWeight: totalWeight:
acc.totalWeight + (r?.total_weight ?? r?.totalWeight ?? 0) acc.totalWeight + (r?.total_weight ?? r?.totalWeight ?? 0),
}; };
}, },
{ numberOfRequests: 0, totalQuantity: 0, totalWeight: 0 } { numberOfRequests: 0, totalQuantity: 0, totalWeight: 0 }
@@ -222,7 +222,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
sx={{ sx={{
minWidth: "fit-content", minWidth: "fit-content",
whiteSpace: "nowrap", whiteSpace: "nowrap",
fontSize: "0.8125rem" fontSize: "0.8125rem",
}} }}
variant="outlined" variant="outlined"
onClick={() => openKillHousesModal(khList)} onClick={() => openKillHousesModal(khList)}
@@ -240,8 +240,8 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
borderColor: "#008f6b", borderColor: "#008f6b",
"&:hover": { "&:hover": {
borderColor: "#006b52", borderColor: "#006b52",
backgroundColor: "rgba(0, 143, 107, 0.08)" backgroundColor: "rgba(0, 143, 107, 0.08)",
} },
}} }}
variant="outlined" variant="outlined"
onClick={() => openStewardsModal(stList)} onClick={() => openStewardsModal(stList)}
@@ -270,7 +270,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
userType={userType} userType={userType}
item={item} item={item}
updateTable={() => fetchApiData(page)} updateTable={() => fetchApiData(page)}
/> />,
]; ];
}); });
@@ -301,7 +301,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
<Button <Button
variant="contained" variant="contained"
sx={{ sx={{
mr: SPACING.SMALL mr: SPACING.SMALL,
}} }}
onClick={() => { onClick={() => {
dispatch( dispatch(
@@ -321,7 +321,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
), ),
title: `افزودن ${ title: `افزودن ${
IS_STEWARD ? "مباشر" : "صنف" IS_STEWARD ? "مباشر" : "صنف"
} خارج از استان` } خارج از استان`,
}) })
); );
}} }}
@@ -361,7 +361,7 @@ export const ProvinceTrueGuildsOutProvince = ({ userType }) => {
"تعداد درخواست ها", "تعداد درخواست ها",
"حجم تقریبی (قطعه)", "حجم تقریبی (قطعه)",
"وزن (کیلوگرم)", "وزن (کیلوگرم)",
"عملیات" "عملیات",
]} ]}
handlePageChange={handlePageChange} handlePageChange={handlePageChange}
totalRows={totalRows} totalRows={totalRows}

View File

@@ -182,12 +182,16 @@ export const InquiryForStewardAddBuyer = ({
}) })
).then((r) => { ).then((r) => {
dispatch(LOADING_END()); dispatch(LOADING_END());
if (r.error) { const hasError = r.error || r.payload?.error;
if (hasError) {
setNotFound(true); setNotFound(true);
openNotif({ openNotif({
vertical: "top", vertical: "top",
horizontal: "center", horizontal: "center",
msg: "خریدار یافت نشد، یک خریدار جدید ثبت کنید!", msg:
typeof hasError === "string"
? hasError
: "خریدار یافت نشد، یک خریدار جدید ثبت کنید!",
severity: "error", severity: "error",
}); });
} else { } else {

View File

@@ -1,4 +1,4 @@
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState, useCallback } from "react";
import { Grid } from "../../../../components/grid/Grid"; import { Grid } from "../../../../components/grid/Grid";
import { Button } from "@mui/material"; import { Button } from "@mui/material";
import { Yup } from "../../../../lib/yup/yup"; import { Yup } from "../../../../lib/yup/yup";
@@ -43,59 +43,74 @@ import {
import { inspectorGetKillHousesService } from "../../../inspector/services/inspector-get-kill-houses"; import { inspectorGetKillHousesService } from "../../../inspector/services/inspector-get-kill-houses";
import { slaughterGetStewardsForAllocateService } from "../../../slaughter-house/services/slaughter-get-guilds-for-allocate"; import { slaughterGetStewardsForAllocateService } from "../../../slaughter-house/services/slaughter-get-guilds-for-allocate";
// userType enums = steward | steward_true | steward_legal | _true | _legal const PAGE_STEWARD = "steward_add_buyer";
const PAGE_SLAUGHTER = "slaughter_add_buyer";
const PAGE_SLAUGHTER_MANAGE = "slaughter_manage_add_buyer";
const PAGE_ADMIN = "admin_add_buyer";
const ADMIN_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,
];
const getCurrentPage = (role, pathname) => { const getCurrentPage = (role, pathname) => {
if (role === "Steward") { if (role === "Steward" && pathname === ROUTE_STEWARD_SALE_OUT_PROVINCE) {
if (pathname === ROUTE_STEWARD_SALE_OUT_PROVINCE) { return PAGE_STEWARD;
return "steward_add_buyer";
}
} }
if (role === "KillHouse") { if (role === "KillHouse") {
if (pathname === ROUTE_SLAUGHTER_INVENTORY_SELL_CARCASS_OUT_PROVINCE) { if (pathname === ROUTE_SLAUGHTER_INVENTORY_SELL_CARCASS_OUT_PROVINCE) {
return "slaughter_add_buyer"; return PAGE_SLAUGHTER;
} }
if (pathname === ROUTE_SLAUGHTER_MANAGE_GUILDS_OUT_PROVINCE_TRUE) { if (pathname === ROUTE_SLAUGHTER_MANAGE_GUILDS_OUT_PROVINCE_TRUE) {
return "slaughter_manage_add_buyer"; return PAGE_SLAUGHTER_MANAGE;
} }
} }
if (role === "AdminX") { if (role === "AdminX" && ADMIN_ROUTES.some((r) => r === pathname)) {
const routes = [ return PAGE_ADMIN;
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";
}
} }
return null;
};
const INITIAL_VALUES_BASE = {
mobile: "",
firstName: "",
lastName: "",
unit_name: "",
province: "",
city: "",
}; };
const getInitialValues = (page) => { const getInitialValues = (page) => {
const initialValues = { if (page === PAGE_SLAUGHTER) {
mobile: "", return { ...INITIAL_VALUES_BASE, nationalId: "" };
firstName: "", }
lastName: "", if (page === PAGE_ADMIN) {
unit_name: "", return { ...INITIAL_VALUES_BASE, role_key: "", type: "" };
province: "", }
city: "", return { ...INITIAL_VALUES_BASE };
}; };
if (page === "steward_add_buyer" || page === "slaughter_manage_add_buyer") {
return initialValues; const getValidationSchema = (page, isRealPerson, isEdit) => {
} else if (page === "slaughter_add_buyer") { if (page === PAGE_STEWARD) return validationSchemaForStewardAddBuyer;
return { if (page === PAGE_SLAUGHTER || page === PAGE_SLAUGHTER_MANAGE) {
...initialValues, return validationSchemaForSlaughterAddBuyer(isRealPerson, isEdit);
nationalId: "", }
}; if (page === PAGE_ADMIN) {
} else if (page === "admin_add_buyer") { return validationSchemaForAdminAddBuyer(isRealPerson, isEdit);
return { }
...initialValues, return Yup.object({});
role_key: "", };
type: "",
}; const setFormDataFromTableData = (page, data, formik) => {
if (page === PAGE_STEWARD) {
handleSetFormDataFromTableDataForStewardAddBuyer(data, formik);
} else if (page === PAGE_SLAUGHTER || page === PAGE_SLAUGHTER_MANAGE) {
handleSetFormDataFromTableDataForSlaughterAddBuyer(data, formik);
} else if (page === PAGE_ADMIN) {
handleSetFormDataFromTableDataForAdminAddBuyer(data, formik);
} }
return initialValues;
}; };
export const StewardAddBuyer = ({ export const StewardAddBuyer = ({
@@ -104,18 +119,16 @@ export const StewardAddBuyer = ({
data, data,
isRealPerson, isRealPerson,
buyerType = "", buyerType = "",
// buyerYype => "Guilds" | "Steward"
}) => { }) => {
const role = getRoleFromUrl(); const role = getRoleFromUrl();
const { pathname } = useLocation(); const { pathname } = useLocation();
const dispatch = useDispatch();
const [openNotif] = useContext(AppContext);
const [notFound, setNotFound] = useState(false);
const { selectedSubUser } = useSelector((state) => state.userSlice);
const page = getCurrentPage(role, pathname); 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 { const {
killHouses, killHouses,
stewards, stewards,
@@ -127,71 +140,190 @@ export const StewardAddBuyer = ({
setUserData, setUserData,
} = useAddBuyer(page); } = useAddBuyer(page);
const { selectedSubUser } = useSelector((state) => state.userSlice);
const [openNotif] = useContext(AppContext);
const [notFound, setNotFound] = useState(false);
const dispatch = useDispatch();
const formik = useFormik({ const formik = useFormik({
initialValues: getInitialValues(page), initialValues: getInitialValues(page),
validationSchema: IS_STEWARD_ADD_BUYER validationSchema: getValidationSchema(page, isRealPerson, isEdit),
? validationSchemaForStewardAddBuyer
: IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER
? validationSchemaForSlaughterAddBuyer(isRealPerson, isEdit)
: IS_ADMIN_ADD_BUYER
? validationSchemaForAdminAddBuyer(isRealPerson, isEdit)
: Yup.object({}),
}); });
// Re-validate when switching to edit mode
useEffect(() => { useEffect(() => {
if (isEdit) { if (isEdit) formik.validateForm();
formik.validateForm();
}
}, [isEdit]); }, [isEdit]);
// Populate form when editing
useEffect(() => { useEffect(() => {
if (IS_ADMIN_ADD_BUYER) { if (isEdit && page && data) {
if (formik.values.type === "KillHouse") { setFormDataFromTableData(page, data, formik);
dispatch(inspectorGetKillHousesService());
} else {
dispatch(
slaughterGetStewardsForAllocateService({
free: true,
})
).then((r) => {
setStewards(r.payload.data || []);
});
}
} }
}, [formik.values.type]); }, [isEdit, page]);
// Load cities when province changes
useEffect(() => { useEffect(() => {
if (isEdit) { if (!formik.values.province) {
if (IS_STEWARD_ADD_BUYER) { setCityData([]);
handleSetFormDataFromTableDataForStewardAddBuyer(data, formik); return;
}
if (IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER) {
handleSetFormDataFromTableDataForSlaughterAddBuyer(data, formik);
}
if (IS_ADMIN_ADD_BUYER) {
handleSetFormDataFromTableDataForAdminAddBuyer(data, formik);
}
} }
}, [isEdit]); setCityData([]);
dispatch(slaughterGetCitiesService(formik.values.province)).then((r) => {
setCityData(r.payload?.data ?? []);
});
}, [formik.values.province, dispatch]);
// Admin: load stewards or kill houses by type
useEffect(() => { useEffect(() => {
if (formik.values.province) { if (page !== PAGE_ADMIN) return;
setCityData( if (formik.values.type === "KillHouse") {
[], dispatch(inspectorGetKillHousesService());
dispatch(slaughterGetCitiesService(formik.values.province)).then( } else {
(r) => { dispatch(slaughterGetStewardsForAllocateService({ free: true })).then(
setCityData(r.payload.data); (r) => {
} setStewards(r.payload?.data ?? []);
) }
); );
} }
}, [formik.values.province]); }, [page, formik.values.type, dispatch]);
const handleSubmit = useCallback(() => {
if (page === PAGE_STEWARD) {
handleSubmitForStewardAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
role
);
return;
}
if (page === PAGE_SLAUGHTER) {
handleSubmitForSlaughterAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
selectedSubUser,
isRealPerson
);
return;
}
if (page === PAGE_SLAUGHTER_MANAGE) {
handleSubmitForSlaughterAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
selectedSubUser,
isRealPerson,
buyerType
);
return;
}
if (page === PAGE_ADMIN) {
handleSubmitForAdminAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
isRealPerson,
buyerType
);
}
}, [
page,
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
role,
selectedSubUser,
isRealPerson,
buyerType,
]);
const showInquiry = !isEdit && page;
const showForm = (userData || notFound || isEdit) && page;
const inquiryProps = {
notFound,
setNotFound,
setUserData,
formik,
};
const formProps = {
formik,
provinceData,
cityData,
notFound,
};
const renderInquiry = () => {
if (!showInquiry) return null;
if (page === PAGE_STEWARD) {
return <InquiryForStewardAddBuyer {...inquiryProps} />;
}
if (page === PAGE_SLAUGHTER || page === PAGE_SLAUGHTER_MANAGE) {
return (
<InquiryForSlaughterAddBuyer
{...inquiryProps}
isEdit={isEdit}
isRealPerson={isRealPerson}
provinceData={provinceData}
/>
);
}
if (page === PAGE_ADMIN) {
return (
<InquiryForAdminAddBuyer
{...inquiryProps}
isEdit={isEdit}
isRealPerson={isRealPerson}
provinceData={provinceData}
/>
);
}
return null;
};
const renderForm = () => {
if (!showForm) return null;
if (page === PAGE_STEWARD) {
return <StewardAddBuyerForm {...formProps} />;
}
if (page === PAGE_SLAUGHTER || page === PAGE_SLAUGHTER_MANAGE) {
return (
<SlaughterAddBuyerForm {...formProps} isRealPerson={isRealPerson} />
);
}
if (page === PAGE_ADMIN) {
return (
<AdminAddBuyerForm
{...formProps}
isRealPerson={isRealPerson}
killHouses={killHouses}
stewards={stewards}
/>
);
}
return null;
};
if (!page) {
return null;
}
return ( return (
<Grid <Grid
@@ -202,124 +334,15 @@ export const StewardAddBuyer = ({
direction="column" direction="column"
gap={2} gap={2}
> >
{!isEdit ? ( {renderInquiry()}
IS_STEWARD_ADD_BUYER ? ( {renderForm()}
<InquiryForStewardAddBuyer {showForm && (
notFound={notFound}
setNotFound={setNotFound}
setUserData={setUserData}
formik={formik}
/>
) : IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER ? (
<InquiryForSlaughterAddBuyer
notFound={notFound}
setNotFound={setNotFound}
setUserData={setUserData}
formik={formik}
isEdit={isEdit}
isRealPerson={isRealPerson}
provinceData={provinceData}
/>
) : IS_ADMIN_ADD_BUYER ? (
<InquiryForAdminAddBuyer
notFound={notFound}
setNotFound={setNotFound}
setUserData={setUserData}
formik={formik}
isEdit={isEdit}
isRealPerson={isRealPerson}
provinceData={provinceData}
/>
) : null
) : null}
{userData || notFound || isEdit ? (
IS_STEWARD_ADD_BUYER ? (
<StewardAddBuyerForm
formik={formik}
provinceData={provinceData}
cityData={cityData}
notFound={notFound}
/>
) : IS_SLAUGHTER_ADD_BUYER || IS_SLAUGHTER_MANAGE_ADD_BUYER ? (
<SlaughterAddBuyerForm
formik={formik}
provinceData={provinceData}
cityData={cityData}
notFound={notFound}
isRealPerson={isRealPerson}
/>
) : IS_ADMIN_ADD_BUYER ? (
<AdminAddBuyerForm
formik={formik}
provinceData={provinceData}
cityData={cityData}
notFound={notFound}
isRealPerson={isRealPerson}
killHouses={killHouses}
stewards={stewards}
/>
) : null
) : null}
{(userData || notFound || isEdit) && (
<Grid container xs={12}> <Grid container xs={12}>
<Button <Button
fullWidth fullWidth
variant="contained" variant="contained"
disabled={!formik.isValid} disabled={!formik.isValid}
onClick={() => { onClick={handleSubmit}
if (IS_STEWARD_ADD_BUYER) {
handleSubmitForStewardAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
role
);
}
if (IS_SLAUGHTER_ADD_BUYER) {
handleSubmitForSlaughterAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
selectedSubUser,
isRealPerson
);
}
if (IS_SLAUGHTER_MANAGE_ADD_BUYER) {
handleSubmitForSlaughterAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
selectedSubUser,
isRealPerson,
buyerType
);
}
if (IS_ADMIN_ADD_BUYER) {
handleSubmitForAdminAddBuyer(
formik,
dispatch,
isEdit,
data,
updateTable,
openNotif,
DRAWER,
isRealPerson,
buyerType
);
}
}}
> >
{isEdit ? "ویرایش" : "ثبت"} {isEdit ? "ویرایش" : "ثبت"}
</Button> </Button>

View File

@@ -20,13 +20,16 @@ export const useAddBuyer = (page) => {
}, []); }, []);
useEffect(() => { useEffect(() => {
if (page === "admin_add_buyer") { if (page === "admin_add_buyer" && inspectorGetKillHouses?.length) {
const d = inspectorGetKillHouses?.map((item) => { setKillhouses(
return { name: item.name, key: item.key, killer: item.killer }; inspectorGetKillHouses.map((item) => ({
}); name: item.name,
setKillhouses(d); key: item.key,
killer: item.killer,
}))
);
} }
}, [inspectorGetKillHouses]); }, [page, inspectorGetKillHouses]);
return { return {
killHouses, killHouses,