import React, { useContext, useEffect, useState } from "react"; import { Box, Button, Card, CardContent, IconButton, TextField, Typography, } from "@mui/material"; import { DatePicker } from "@mui/x-date-pickers"; import moment from "moment"; import { useDispatch, useSelector } from "react-redux"; import axios from "axios"; import { AppContext } from "../../../../contexts/AppContext"; import { LOADING_END, LOADING_START, OPEN_MODAL, } from "../../../../lib/redux/slices/appSlice"; import ResponsiveTable from "../../../../components/responsive-table/ResponsiveTable"; import { Grid } from "../../../../components/grid/Grid"; import { ProvinceAllocateOperations } from "../province-allocate-operations/ProvinceAllocateOperations"; import { ProvinceEditSendDate } from "../province-edit-send-date/ProvinceEditSendDate"; import { formatJustDate, formatTime } from "../../../../utils/formatTime"; import EditIcon from "@mui/icons-material/Edit"; import { getPoultryRequestsTotalQuantityService } from "../../../city/services/get-poultry-requests-total-quantity"; import { motion } from "framer-motion"; import { RiSearchLine } from "react-icons/ri"; const cardVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0 }, }; export const ProvinceAllocateRequests = () => { const [, , selectedDate1, setSelectedDate1] = useContext(AppContext); const dispatch = useDispatch(); useEffect(() => { const currentDate = moment(new Date()).format("YYYY-MM-DD"); setSelectedDate1(currentDate); }, []); const handleTextChange = (event) => { setTextValue(event.target.value); }; const [data, setData] = useState([]); const [totalRows, setTotalRows] = useState(0); const [perPage, setPerPage] = useState(10); const [textValue, setTextValue] = useState(""); const [page, setPage] = useState(1); const [tableData, setTableData] = useState([]); const fetchApiData = async (page) => { dispatch(getPoultryRequestsTotalQuantityService(selectedDate1)).then( async () => { let response; dispatch(LOADING_START()); response = await axios.get( `city_operator_check_request_new/?state=waiting&date=${selectedDate1}&page=${page}&page_size=${perPage}&search=filter&value=${ textValue ? textValue : "" }` ); dispatch(LOADING_END()); setData(response.data.results); setTotalRows(response.data.count); } ); }; const handlePageChange = (page) => { fetchApiData(page); setPage(page); }; const handlePerRowsChange = (perRows) => { setPerPage(perRows); setPage(1); }; const getItemFreeSaleInProvince = (item) => { let sellType = ""; if (item?.poultryRequest?.freeSaleInProvince) { sellType = "آزاد"; } else { sellType = "دولتی"; } return sellType; }; const updateTable = () => { fetchApiData(page !== 0 ? page : 1); }; useEffect(() => { const d = data?.map((item, i) => { return [ page === 1 ? i + 1 : i + perPage * (page - 1) + 1, item?.poultryRequest?.orderCode, getItemFreeSaleInProvince(item), formatTime(item?.poultryRequest?.createDate), {formatJustDate(item?.poultryRequest?.sendDate)} 0} onClick={() => { dispatch( OPEN_MODAL({ title: "ویرایش تاریخ درخواست کشتار", content: ( ), }) ); }} > , item?.poultryRequest?.freezing ? "انجماد" : item?.poultryRequest?.export ? "صادرات" : "عادی", `${item?.poultryRequest?.process?.poultry?.poultryName}/${item?.poultryRequest?.process?.poultry?.poultryMobile}`, item?.poultryRequest?.killHouseList.length ? item?.poultryRequest?.killHouseList?.join(" - ") : "-", `${item?.poultryRequest?.process?.poultry?.poultryProvince}/${item?.poultryRequest?.process?.poultry?.poultryCity}`, item?.poultryRequest?.poultry?.cityOperator, item?.poultryRequest?.killingAge, item?.poultryRequest?.process?.poultry?.IndexWeight, item?.poultryRequest?.process?.poultry?.totalWeight?.toLocaleString(), item?.poultryRequest?.process?.poultry?.poultryQuantity?.toLocaleString(), item?.poultryRequest?.amount?.toLocaleString() + " ﷼", {item?.quantity?.allocatedNumber?.toLocaleString()} , item?.quantity?.returnedNumber?.toLocaleString(), item?.quantity?.assignableNumber?.toLocaleString(), , ]; }); setTableData(d); }, [data]); useEffect(() => { fetchApiData(1); }, [dispatch, selectedDate1, perPage]); const handleSubmit = async (event) => { event.preventDefault(); dispatch(LOADING_START()); try { const response = await axios.get( `city_operator_check_request_new/?state=waiting&date=${selectedDate1}&page=${1}&page_size=${perPage}&search=filter&value=${ textValue ? textValue : "" }` ); setData(response.data.results); setTotalRows(response.data.count); dispatch(LOADING_END()); } catch (error) { console.error("Error fetching data:", error); } }; const { poultryRequestsTotalQuantity } = useSelector( (state) => state.citySlice ); return ( ( )} value={selectedDate1} onChange={(e) => { setSelectedDate1(moment(e).format("YYYY-MM-DD")); }} />
{[ { label: "تعداد درخواست کشتار", value: poultryRequestsTotalQuantity?.acceptedQuantity || 0, }, { label: "اعلام نیاز کشتارگاه ها", value: poultryRequestsTotalQuantity?.killRequestsQuantity || 0, }, { label: "تخصیص داده شده", value: poultryRequestsTotalQuantity?.allocatedQuantity || 0, }, { label: "قابل تخصیص", value: poultryRequestsTotalQuantity?.assignableQuantity || 0, }, { label: "برگشت داده شده", value: poultryRequestsTotalQuantity?.returnedQuantity || 0, }, ].map((item, index) => ( {item.label} {item.value?.toLocaleString()} قطعه ))}
); };