import React, { useContext, useEffect, useState } from "react"; import { Autocomplete, Button, Checkbox, IconButton, TextField, Tooltip, } from "@mui/material"; import { DatePicker } from "@mui/x-date-pickers"; import moment from "moment"; import { useDispatch } from "react-redux"; import axios from "axios"; import { RiFileExcel2Fill, RiSearchLine } from "react-icons/ri"; import { AppContext } from "../../../../contexts/AppContext"; import { LOADING_END, LOADING_START, } from "../../../../lib/redux/slices/appSlice"; import { Grid } from "../../../../components/grid/Grid"; import ResponsiveTable from "../../../../components/responsive-table/ResponsiveTable"; import { getSamasatProvinces } from "../../../../utils/getSamasatProvinces"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { ROUTE_ADMINX_ROUTE_NATIONAL_INFO_SLAUGHTER, ROUTE_SUPER_ADMIN_ROUTE_NATIONAL_INFO_SLAUGHTER, } from "../../../../routes/routes"; import { ProvinceStewardChickenDistributionsAndSalesDashboardService } from "../../services/province-chicken-distribution-and-sales-dashboard"; import { formatTime } from "../../../../utils/formatTime"; import ToggleOffOutlinedIcon from "@mui/icons-material/ToggleOffOutlined"; import ToggleOnIcon from "@mui/icons-material/ToggleOn"; import VisibilityIcon from "@mui/icons-material/Visibility"; export const ProvinceChickenStewardSales = () => { const [, , selectedDate1, setSelectedDate1, selectedDate2, setSelectedDate2] = useContext(AppContext); const dispatch = useDispatch(); const [openNotif] = useContext(AppContext); useEffect(() => { const currentDate = moment(new Date()).format("YYYY-MM-DD"); setSelectedDate1(currentDate); setSelectedDate2(currentDate); }, []); const [dashboardData, setDashboardData] = useState([]); const [withDate, setWithDate] = useState(false); const [selectedProvince, setSelectedProvince] = useState(""); 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) => { let response; getDashboardData(); dispatch(LOADING_START()); response = await axios.get( `https://rsibackend.rasadyar.com/app/guilds-transport-carcass-detail/?search=${textValue}${ withDate ? `&date1=${selectedDate1}&date2=${selectedDate2}` : `` }&province=${selectedProvince}&page=${page}&page_size=${perPage}` ); 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 updateTable = () => { // fetchApiData(page !== 0 ? page : 1); // }; const getDashboardData = () => { dispatch( ProvinceStewardChickenDistributionsAndSalesDashboardService({ province: selectedProvince, date1: withDate ? selectedDate1 : null, date2: withDate ? selectedDate2 : null, }) ).then((r) => { setDashboardData(r.payload.data); }); }; useEffect(() => { const d = data?.map((item, i) => { return [ page === 1 ? i + 1 : i + perPage * (page - 1) + 1, item?.info?.role, item?.name, item?.PartIdCode || item?.jihadiCode, item?.Province || item?.province, item?.City || item?.city, "گوشت مرغ تازه", item?.info?.totalInputBuyBarsCount?.toLocaleString(), item?.info?.totalInputBuyBarsWight?.toLocaleString(), item?.info?.totalOutputBuyBarsCount?.toLocaleString(), item?.info?.totalOutputBuyBarsWight?.toLocaleString(), item?.info?.totalWareHouse?.toLocaleString(), item?.info?.totalInputBuyBarsPercent?.toLocaleString(), item?.info?.totalOutputBuyBarsPercent?.toLocaleString(), { window.open( getRoleFromUrl() === "AdminX" ? `${ROUTE_ADMINX_ROUTE_NATIONAL_INFO_SLAUGHTER}/${item?.jihadiCode}/${item?.name}/Steward` : `${ROUTE_SUPER_ADMIN_ROUTE_NATIONAL_INFO_SLAUGHTER}/${item?.jihadiCode}/${item?.name}/Steward`, "_blank" ); }} > , ]; }); setTableData(d); }, [data]); useEffect(() => { fetchApiData(1); }, [ dispatch, selectedDate1, selectedDate2, perPage, selectedProvince, withDate, ]); const handleSubmit = async (event) => { event.preventDefault(); getDashboardData(); dispatch(LOADING_START()); try { const response = await axios.get( `https://rsibackend.rasadyar.com/app/guilds-transport-carcass-detail/?&province=${selectedProvince}&search=${textValue}${ withDate ? `&date1=${selectedDate1}&date2=${selectedDate2}` : `` }&page=${1}&page_size=${perPage}` ); setData(response.data.results); setTotalRows(response.data.count); dispatch(LOADING_END()); } catch (error) { console.error("Error fetching data:", error); } }; const getProvinceList = () => { return [{ name: "همه" }, ...getSamasatProvinces()]; }; return ( { return { label: i.name, }; })} onChange={(event, value) => { if (value.label !== "همه") { setSelectedProvince(value.label); } else { setSelectedProvince(""); } }} renderInput={(params) => ( )} /> } checkedIcon={} checked={withDate} onChange={() => setWithDate(!withDate)} color="primary" size="large" /> ( )} value={selectedDate1} onChange={(e) => { setSelectedDate1(moment(e).format("YYYY-MM-DD")); }} /> ( )} value={selectedDate2} onChange={(e) => { setSelectedDate2(moment(e).format("YYYY-MM-DD")); }} />
{/* */}
); };