import { Box, Button, CircularProgress, Grid, Modal, ModalProps, Typography, } from "@mui/material"; import { GridToolbarContainer } from "@mui/x-data-grid"; import { FooterPropsOverrides, GridColDef, GridRowSelectionModel, useGridApiRef, } from "@mui/x-data-grid"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import StyledDataGrid from "../StyledDataGrid"; import SearchResults, { Column, defaultPagingController, } from "../SearchResults/SearchResults"; import { ByItemsSummary, ConsoPickOrderResult, PickOrderLine, PickOrderResult } from "@/app/api/pickorder"; import { useRouter, useSearchParams } from "next/navigation"; import ConsolidatePickOrderItemSum from "./ConsolidatePickOrderItemSum"; import ConsolidatePickOrderSum from "./ConsolidatePickOrderSum"; import { GridInputRowSelectionModel } from "@mui/x-data-grid"; import { fetchConsoDetail, fetchConsoPickOrderClient, } from "@/app/api/pickorder/actions"; import { EditNote } from "@mui/icons-material"; interface Props { filterArgs: Record; } const style = { position: "absolute", top: "50%", left: "50%", transform: "translate(-50%, -50%)", bgcolor: "background.paper", pt: 5, px: 5, pb: 10, width: 1500, }; const ConsolidatedPickOrders: React.FC = ({ filterArgs }) => { const { t } = useTranslation("pickOrder"); const router = useRouter(); const apiRef = useGridApiRef(); const [filteredPickOrders, setFilteredPickOrders] = useState( [] as ConsoPickOrderResult[] ); const [isLoading, setIsLoading] = useState(false); const [modalOpen, setModalOpen] = useState(false); //change back to false const [consoCode, setConsoCode] = useState(); ///change back to undefined const [revertIds, setRevertIds] = useState([]); const [totalCount, setTotalCount] = useState(); const [byPickOrderRows, setByPickOrderRows] = useState[] | undefined>(undefined); const [byItemsRows, setByItemsRows] = useState(undefined); const openDetailModal = useCallback((consoCode: string) => { setConsoCode(consoCode); setModalOpen(true); }, []); const closeDetailModal = useCallback(() => { setModalOpen(false); setConsoCode(undefined); }, []); const onDetailClick = useCallback( (pickOrder: any) => { console.log(pickOrder); openDetailModal(pickOrder.consoCode); }, [openDetailModal] ); const columns = useMemo[]>( () => [ { name: "id", label: t("Detail"), onClick: onDetailClick, buttonIcon: , }, { name: "consoCode", label: t("consoCode"), }, ], [] ); const [pagingController, setPagingController] = useState( defaultPagingController ); // pass conso code back to assign // pass user back to assign const fetchNewPageConsoPickOrder = useCallback( async ( pagingController: Record, filterArgs: Record ) => { setIsLoading(true); const params = { ...pagingController, ...filterArgs, }; const res = await fetchConsoPickOrderClient(params); if (res) { console.log(res); setFilteredPickOrders(res.records); setTotalCount(res.total); } setIsLoading(false); }, [] ); useEffect(() => { fetchNewPageConsoPickOrder(pagingController, filterArgs); }, [fetchNewPageConsoPickOrder, pagingController, filterArgs]); const closeHandler = useCallback>( (...args) => { closeDetailModal(); // reset(); }, [closeDetailModal] ); const handleRelease = useCallback(() => { console.log("release"); router.push(`/pickorder/detail?consoCode=${consoCode}`); }, [router, consoCode]); const handleConsolidate_revert = useCallback(() => { console.log(revertIds); }, [revertIds]); const fetchConso = useCallback(async (consoCode: string) => { const res = await fetchConsoDetail(consoCode); if (res) { console.log(res); setByPickOrderRows(res.pickOrders) setByItemsRows(res.items) } else { console.log("error"); console.log(res); } }, []); useEffect(() => { if (consoCode) { fetchConso(consoCode); } }, [consoCode]); return ( <> {isLoading ? ( ) : ( items={filteredPickOrders} columns={columns} pagingController={pagingController} setPagingController={setPagingController} totalCount={totalCount} /> )} {consoCode != undefined ? ( {consoCode} ) : undefined} ); }; export default ConsolidatedPickOrders;