| @@ -100,6 +100,7 @@ const PoSearchList: React.FC<{ | |||||
| poList: PoResult[]; | poList: PoResult[]; | ||||
| selectedPoId: number; | selectedPoId: number; | ||||
| onSelect: (po: PoResult) => void; | onSelect: (po: PoResult) => void; | ||||
| }> = ({ poList, selectedPoId, onSelect }) => { | }> = ({ poList, selectedPoId, onSelect }) => { | ||||
| const { t } = useTranslation(["purchaseOrder", "dashboard"]); | const { t } = useTranslation(["purchaseOrder", "dashboard"]); | ||||
| const [searchTerm, setSearchTerm] = useState(''); | const [searchTerm, setSearchTerm] = useState(''); | ||||
| @@ -267,7 +268,7 @@ const PoDetail: React.FC<Props> = ({ po, warehouse, printerCombo }) => { | |||||
| setPurchaseOrder(result); | setPurchaseOrder(result); | ||||
| setRows(result.pol || []); | setRows(result.pol || []); | ||||
| if (result.pol && result.pol.length > 0) { | if (result.pol && result.pol.length > 0) { | ||||
| if (result.id === selectedPoId) { | |||||
| if (result.id === selectedPoId && selectedRow?.id) { | |||||
| const polIndex = result.pol.findIndex((p) => p.id === selectedRow?.id) | const polIndex = result.pol.findIndex((p) => p.id === selectedRow?.id) | ||||
| // setSelectedRow(result.pol[polIndex]); | // setSelectedRow(result.pol[polIndex]); | ||||
| setStockInLine(result.pol[polIndex].stockInLine); | setStockInLine(result.pol[polIndex].stockInLine); | ||||
| @@ -283,7 +284,7 @@ const PoDetail: React.FC<Props> = ({ po, warehouse, printerCombo }) => { | |||||
| } catch (error) { | } catch (error) { | ||||
| console.error("Failed to fetch PO detail:", error); | console.error("Failed to fetch PO detail:", error); | ||||
| } | } | ||||
| }, [selectedRow]); | |||||
| }, [selectedRow, selectedPoId]); | |||||
| const handlePoSelect = useCallback( | const handlePoSelect = useCallback( | ||||
| async (selectedPo: PoResult) => { | async (selectedPo: PoResult) => { | ||||
| @@ -291,13 +292,12 @@ const PoDetail: React.FC<Props> = ({ po, warehouse, printerCombo }) => { | |||||
| setSelectedPoId(selectedPo.id); | setSelectedPoId(selectedPo.id); | ||||
| await fetchPoDetail(selectedPo.id.toString()); | await fetchPoDetail(selectedPo.id.toString()); | ||||
| const newSelectedIds = selectedIdsParam || selectedPo.id.toString(); | const newSelectedIds = selectedIdsParam || selectedPo.id.toString(); | ||||
| // router.push(`/po/edit?id=${selectedPo.id}&start=true&selectedIds=${newSelectedIds}`, { scroll: false }); | |||||
| const newUrl = `/po/edit?id=${selectedPo.id}&start=true&selectedIds=${newSelectedIds}`; | const newUrl = `/po/edit?id=${selectedPo.id}&start=true&selectedIds=${newSelectedIds}`; | ||||
| if (pathname + searchParams.toString() !== newUrl) { | if (pathname + searchParams.toString() !== newUrl) { | ||||
| router.replace(newUrl, { scroll: false }); | router.replace(newUrl, { scroll: false }); | ||||
| } | } | ||||
| }, | }, | ||||
| [router, selectedIdsParam, fetchPoDetail] | |||||
| [selectedPoId, fetchPoDetail, selectedIdsParam, pathname, searchParams, router] | |||||
| ); | ); | ||||
| useEffect(() => { | useEffect(() => { | ||||
| @@ -726,6 +726,7 @@ const PoDetail: React.FC<Props> = ({ po, warehouse, printerCombo }) => { | |||||
| poList={poList} | poList={poList} | ||||
| selectedPoId={selectedPoId} | selectedPoId={selectedPoId} | ||||
| onSelect={handlePoSelect} | onSelect={handlePoSelect} | ||||
| /> | /> | ||||
| </Grid> | </Grid> | ||||