/* "use client"; import React, { useCallback, useEffect, useState } from "react"; import { Box, Button, Card, CardContent, CardActions, Stack, Typography, Chip, CircularProgress, Grid, } from "@mui/material"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useTranslation } from "react-i18next"; import { fetchAllJoPickOrders, AllJoPickOrderResponse } from "@/app/api/jo/actions"; import JobPickExecution from "./newJobPickExecution"; interface Props { onSwitchToRecordTab?: () => void; } const JoPickOrderList: React.FC = ({ onSwitchToRecordTab }) =>{ const { t } = useTranslation(["common", "jo"]); const [loading, setLoading] = useState(false); const [pickOrders, setPickOrders] = useState([]); const [selectedPickOrderId, setSelectedPickOrderId] = useState(undefined); const [selectedJobOrderId, setSelectedJobOrderId] = useState(undefined); type PickOrderFilter = "all" | "drink" | "Powder_Mixture" | "other"; const [filter, setFilter] = useState("all"); type FloorFilter = "ALL" | "2F" | "3F" | "4F" | "NO_LOT"; const [floorFilter, setFloorFilter] = useState("ALL"); const fetchPickOrders = useCallback(async () => { setLoading(true); try { const typeParam = filter === "all" ? undefined : filter; const floorParam = floorFilter === "ALL" ? undefined : floorFilter; const data = await fetchAllJoPickOrders(typeParam, floorParam); setPickOrders(Array.isArray(data) ? data : []); } catch (e) { console.error(e); setPickOrders([]); } finally { setLoading(false); } }, [filter, floorFilter]); useEffect(() => { fetchPickOrders(); }, [fetchPickOrders, filter, floorFilter]); const handleBackToList = useCallback(() => { setSelectedPickOrderId(undefined); setSelectedJobOrderId(undefined); fetchPickOrders(); }, [fetchPickOrders]); // If a pick order is selected, show JobPickExecution detail view if (selectedPickOrderId !== undefined) { return ( ); } return ( {loading ? ( ) : ( {t("Total pick orders")}: {pickOrders.length} {pickOrders.map((pickOrder) => { const status = String(pickOrder.jobOrderStatus || ""); const statusLower = status.toLowerCase(); const statusColor = statusLower === "completed" ? "success" : statusLower === "pending" || statusLower === "processing" ? "primary" : "default"; const finishedCount = pickOrder.finishedPickOLineCount ?? 0; return ( {t("Job Order")}: {pickOrder.jobOrderCode || "-"} {t("Lot No")}: {pickOrder.lotNo || "-"} {t("Pick Order")}: {pickOrder.pickOrderCode || "-"} {t("Item Name")}: {pickOrder.itemName} {t("Required Qty")}: {pickOrder.reqQty} ({pickOrder.uomName}) {floorFilter === "ALL" ? ( <> {pickOrder.floorPickCounts?.map(({ floor, finishedCount, totalCount }) => ( {floor}: {finishedCount}/{totalCount} ))} {!!pickOrder.noLotPickCount && ( {t("No Lot")}: {pickOrder.noLotPickCount.finishedCount}/{pickOrder.noLotPickCount.totalCount} )} ) : floorFilter === "NO_LOT" ? ( !!pickOrder.noLotPickCount && ( {t("No Lot")}: {pickOrder.noLotPickCount.finishedCount}/{pickOrder.noLotPickCount.totalCount} ) ) : ( pickOrder.floorPickCounts ?.filter((c) => c.floor === floorFilter) .map(({ floor, finishedCount, totalCount }) => ( {floor}: {finishedCount}/{totalCount} )) )} {typeof pickOrder.suggestedFailCount === "number" && pickOrder.suggestedFailCount > 0 && ( {t("Suggested Fail")}: {pickOrder.suggestedFailCount} )} {statusLower !== "pending" && finishedCount > 0 && ( {t("Finished lines")}: {finishedCount} )} ); })} )} ); }; export default JoPickOrderList; */