Quellcode durchsuchen

isextra truck X ticket fix

production
CANCERYS\kw093 vor 14 Stunden
Ursprung
Commit
fcf0037bf2
2 geänderte Dateien mit 29 neuen und 11 gelöschten Zeilen
  1. +25
    -9
      src/components/DoWorkbench/WorkbenchFloorLanePanel.tsx
  2. +4
    -2
      src/components/FinishedGoodSearch/ReleasedDoPickOrderSelectModal.tsx

+ 25
- 9
src/components/DoWorkbench/WorkbenchFloorLanePanel.tsx Datei anzeigen

@@ -40,6 +40,7 @@ interface Props {
type LaneSlot4F = { truckDepartureTime: string; lane: LaneBtn }; type LaneSlot4F = { truckDepartureTime: string; lane: LaneBtn };
type TruckGroup4F = { truckLanceCode: string; slots: (LaneSlot4F & { sequenceIndex: number })[] }; type TruckGroup4F = { truckLanceCode: string; slots: (LaneSlot4F & { sequenceIndex: number })[] };


/** FP-MTMS Version Checklist | Functions Ref. No. 36 | v1.0.0 | 2026-07-27 */
const WorkbenchFloorLanePanel: React.FC<Props> = ({ const WorkbenchFloorLanePanel: React.FC<Props> = ({
onPickOrderAssigned, onPickOrderAssigned,
onSwitchToDetailTab, onSwitchToDetailTab,
@@ -689,11 +690,17 @@ const WorkbenchFloorLanePanel: React.FC<Props> = ({
group.lanes.map((lane, li) => { group.lanes.map((lane, li) => {
const sid = (lane.storeId ?? "").trim(); const sid = (lane.storeId ?? "").trim();
const dep = (lane.truckDepartureTime ?? "").trim(); const dep = (lane.truckDepartureTime ?? "").trim();
const is4F = sid.replace(/\//g, "").toUpperCase() === "4F";
const isTruckX =
(lane.truckLanceCode ?? "").trim() === "車線-X" ||
(lane.truckLanceCode ?? "").trim() === "Truck X";
const floorKey = sid.replace(/\//g, "").toUpperCase();
const is4F = floorKey === "4F";
const labelCore = const labelCore =
is4F && lane.loadingSequence != null
? `${t("Loading sequence n", { n: lane.loadingSequence })} (${lane.unassigned}/${lane.total})`
: `${dep ? `${dep} ` : ""}${lane.truckLanceCode} (${lane.unassigned}/${lane.total})`;
isTruckX
? `${t("車線-X")}${sid ? ` · ${sid}` : ""} (${lane.unassigned}/${lane.total})`
: is4F && lane.loadingSequence != null
? `${t("Loading sequence n", { n: lane.loadingSequence })} (${lane.unassigned}/${lane.total})`
: `${dep ? `${dep} ` : ""}${lane.truckLanceCode} (${lane.unassigned}/${lane.total})`;
const handlerName = (lane.handlerName ?? "").trim(); const handlerName = (lane.handlerName ?? "").trim();
const shopCode = (group.shopCode ?? "").trim(); const shopCode = (group.shopCode ?? "").trim();
const shopName = (group.shopName ?? "").trim(); const shopName = (group.shopName ?? "").trim();
@@ -702,20 +709,29 @@ const WorkbenchFloorLanePanel: React.FC<Props> = ({
? `${shopCode} · ${shopName}` ? `${shopCode} · ${shopName}`
: shopName || shopCode || t("Shop"); : shopName || shopCode || t("Shop");
const laneSecondary = `${labelCore}${handlerName ? ` · ${handlerName}` : ""}`; const laneSecondary = `${labelCore}${handlerName ? ` · ${handlerName}` : ""}`;
const tileKey = `${shopCode}|${shopName}|${lane.truckLanceCode}|${dep}|${lane.loadingSequence ?? ""}|${li}`;
const tileKey = `${shopCode}|${shopName}|${lane.truckLanceCode}|${dep}|${lane.loadingSequence ?? ""}|${sid}|${li}`;
return ( return (
<Grid item xs={12} sm={6} md={4} lg={3} key={tileKey}> <Grid item xs={12} sm={6} md={4} lg={3} key={tileKey}>
<Button <Button
fullWidth fullWidth
variant="outlined" variant="outlined"
disabled={lane.unassigned === 0 || !sid}
disabled={lane.unassigned === 0 || (!isTruckX && !sid)}
onClick={() => { onClick={() => {
setModalReleaseTypeFilter("isExtra"); setModalReleaseTypeFilter("isExtra");
setModalFilterRequiredDeliveryDate(selectedDeliveryDateYmd); setModalFilterRequiredDeliveryDate(selectedDeliveryDateYmd);
setModalInitialShopSearch((group.shopName || group.shopCode || "").trim() || undefined); setModalInitialShopSearch((group.shopName || group.shopCode || "").trim() || undefined);
setSelectedStore(sid);
setSelectedTruck(lane.truckLanceCode);
setIsDefaultTruck(false);
if (isTruckX) {
// Truck X: DB storeId stays null; use display floor + default-truck list path.
setSelectedStore("");
setSelectedTruck("車線-X");
setIsDefaultTruck(true);
setModalTruckXFloor(floorKey || undefined);
} else {
setSelectedStore(sid);
setSelectedTruck(lane.truckLanceCode);
setIsDefaultTruck(false);
setModalTruckXFloor(undefined);
}
setDefaultDateScope("today"); setDefaultDateScope("today");
setModalOpen(true); setModalOpen(true);
}} }}


+ 4
- 2
src/components/FinishedGoodSearch/ReleasedDoPickOrderSelectModal.tsx Datei anzeigen

@@ -80,6 +80,7 @@ interface Props {
truckXFloor?: string; truckXFloor?: string;
} }


/** FP-MTMS Version Checklist | Functions Ref. No. 36 | v1.0.0 | 2026-07-27 */
const ReleasedDoPickOrderSelectModal: React.FC<Props> = ({ const ReleasedDoPickOrderSelectModal: React.FC<Props> = ({
open, open,
onClose, onClose,
@@ -112,10 +113,11 @@ const ReleasedDoPickOrderSelectModal: React.FC<Props> = ({
const loadTodayFn = listBridge?.loadToday ?? fetchReleasedDoPickOrdersForSelectionToday; const loadTodayFn = listBridge?.loadToday ?? fetchReleasedDoPickOrdersForSelectionToday;


const floorArg = truckXFloor?.trim() || undefined; const floorArg = truckXFloor?.trim() || undefined;
const shopArg = shopSearch.trim() || undefined;
if (isDefaultTruck) { if (isDefaultTruck) {
if (defaultDateScopeProp === "today") { if (defaultDateScopeProp === "today") {
data = await loadTodayFn( data = await loadTodayFn(
undefined,
shopArg,
undefined, undefined,
"車線-X", "車線-X",
defaultTruckRequiredDeliveryDate?.trim() || undefined, defaultTruckRequiredDeliveryDate?.trim() || undefined,
@@ -124,7 +126,7 @@ const ReleasedDoPickOrderSelectModal: React.FC<Props> = ({
); );
} else { } else {
data = await loadReleased( data = await loadReleased(
undefined,
shopArg,
undefined, undefined,
"車線-X", "車線-X",
releaseTypeFilter?.trim() || undefined, releaseTypeFilter?.trim() || undefined,


Laden…
Abbrechen
Speichern