import { useContext, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import moment from "moment"; import axios from "axios"; import { Button, TextField } from "@mui/material"; import { DatePicker } from "@mui/x-date-pickers"; import { RiSearchLine } from "react-icons/ri"; import { AppContext } from "../../../../contexts/AppContext"; import { DRAWER, LOADING_END, LOADING_START, } from "../../../../lib/redux/slices/appSlice"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { formatJustDate, formatTime } from "../../../../utils/formatTime"; import { CheckCleanceCode } from "../../../../components/check-clearance-code/ChechClearanceCode"; import { stewardSellOutGetDashboard } from "../../../guild/services/steward-sell-out-get-dashboard"; import { Grid } from "../../../../components/grid/Grid"; import ResponsiveTable from "../../../../components/responsive-table/ResponsiveTable"; import { StewardSellOutOfProvinceSubmitSell } from "../steward-purchase-out-province-submit-sell/StewardSellOutOfProvinceSubmitSell"; import { StewardOutProvinceRegistrationCodeInput } from "../steward-out-province-registration-code-input/StewardOutProvinceRegistrationCodeInput"; import { StewardOutProvinceSalesOperations } from "../steward-out-province-sales-operations/StewardOutProvinceSalesOperations"; import { checkPathStartsWith } from "../../../../utils/checkPathStartsWith"; export const StewardSellOutOfProvinceSells = () => { const [, , selectedDate1, setSelectedDate1, selectedDate2, setSelectedDate2] = useContext(AppContext); const dispatch = useDispatch(); const selectedSubUser = useSelector( (state) => state.userSlice.selectedSubUser ); 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 [dashboardData, setDashboardData] = useState([]); const fetchApiData = async (page) => { dispatch(LOADING_START()); const response = await axios.get( `steward_free_sale_bar/?search=filter&value=${textValue}&role=${getRoleFromUrl()}${ checkPathStartsWith("steward") ? `&role_key=${selectedSubUser?.key}` : "" }&date1=${selectedDate1}&date2=${selectedDate2}&page=${page}&page_size=${perPage}` ); dispatch(LOADING_END()); setData(response.data.results); setTotalRows(response.data.count); }; const getDashboardData = () => { dispatch( stewardSellOutGetDashboard({ selectedDate1, selectedDate2, role_key: checkPathStartsWith("steward") ? selectedSubUser?.key : "", }) ).then((r) => { setDashboardData(r.payload.data); }); }; useEffect(() => { const currentDate = moment(new Date()).format("YYYY-MM-DD"); setSelectedDate1(currentDate); setSelectedDate2(currentDate); }, []); useEffect(() => { if (selectedDate1 && selectedDate2) { fetchApiData(1); setPage(1); getDashboardData(); } }, [selectedDate1, selectedDate2, perPage]); const handleTextChange = (event) => { setTextValue(event.target.value); }; const handlePageChange = (page) => { fetchApiData(page); setPage(page); }; const handlePerRowsChange = (perRows) => { setPerPage(perRows); setPage(1); }; const updateTable = () => { setPage(1); fetchApiData(1); getDashboardData(); }; useEffect(() => { const d = data?.map((item, i) => { return [ page === 1 ? i + 1 : i + perPage * (page - 1) + 1, item?.date ? formatTime(item?.date) : "-", item?.productionDate ? formatJustDate(item?.productionDate) : "-", item?.distributionType === "web" ? "سایت" : item?.distributionType === "app" ? "موبایل" : item?.distributionType === "pos" ? "پوز" : item?.distributionType || "-", `${item?.buyerName} (${item?.buyerMobile})`, item?.buyer ? `${item?.buyer?.unitName}` : `${item?.buyerName}`, item?.province, item?.city, // item?.numberOfCarcasses?.toLocaleString(), item?.clearanceCode && ( ), item?.quarantineWeightOfCarcasses?.toLocaleString(), item?.weightOfCarcasses?.toLocaleString(), item?.systemRegistrationCode ? ( item?.loggedRegistrationCode ? ( "تایید شده" ) : item?.registrationCode ? ( fetchApiData(page)} /> ) : ( "-" ) ) : ( "-" ), , ]; }); setTableData(d); }, [data, page, perPage]); const handleSubmit = async (event) => { event.preventDefault(); dispatch(LOADING_START()); try { const response = await axios.get( `steward_free_sale_bar/?role=${getRoleFromUrl()}${ checkPathStartsWith("steward") ? `&role_key=${selectedSubUser?.key}` : "" }&search=filter&value=${textValue}&date1=${selectedDate1}&date2=${selectedDate2}&page=${1}&page_size=${perPage}` ); setData(response.data.results); setTotalRows(response.data.count); getDashboardData(); dispatch(LOADING_END()); } catch (error) { console.error("Error fetching data:", error); dispatch(LOADING_END()); } }; return ( ( )} value={selectedDate1} onChange={(e) => { setSelectedDate1(moment(e).format("YYYY-MM-DD")); }} /> ( )} value={selectedDate2} onChange={(e) => { setSelectedDate2(moment(e).format("YYYY-MM-DD")); }} />
{/* */}
); };