| | |
| | | import { |
| | | List, |
| | | DatagridConfigurable, |
| | | SearchInput, |
| | | TopToolbar, |
| | | Button, |
| | | SelectColumnsButton, |
| | | EditButton, |
| | | FilterButton, |
| | | CreateButton, |
| | | ExportButton, |
| | | BulkDeleteButton, |
| | | WrapperField, |
| | | useRecordContext, |
| | | useTranslate, |
| | | useNotify, |
| | | useListContext, |
| | | FunctionField, |
| | | TextField, |
| | | NumberField, |
| | | DateField, |
| | | BooleanField, |
| | | ReferenceField, |
| | | TextInput, |
| | | DateTimeInput, |
| | | DateInput, |
| | | SelectInput, |
| | | NumberInput, |
| | | ReferenceInput, |
| | | ReferenceArrayInput, |
| | | AutocompleteInput, |
| | | DeleteButton, |
| | | SimpleForm, |
| | | required, |
| | | Form, |
| | | useRefresh, |
| | |
| | | import ConfirmButton from '../../components/ConfirmButton'; |
| | | import { Delete, Edit, Add } from '@mui/icons-material'; |
| | | import CheckOrderSiteDialog from "./CheckOrderSiteDialog"; |
| | | import { map } from "lodash"; |
| | | |
| | | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ |
| | | '& .css-1vooibu-MuiSvgIcon-root': { |
| | |
| | | setRows(fetchRows) |
| | | } else { |
| | | const mas = fetchRows.filter(item => selectedMatnr.includes(item.matnrCode)); |
| | | setRows(mas) |
| | | let ids = mas.map(item => item.matnrCode); |
| | | getLocs(ids) |
| | | } |
| | | }, [selectedMatnr]) |
| | | |
| | | |
| | | const getLocs = async (ids) => { |
| | | const { data: { code, data, msg } } = await request.post('/check/locs/' + ids); |
| | | if (code === 200) { |
| | | setRows(data) |
| | | } else { |
| | | notify(msg); |
| | | } |
| | | } |
| | | |
| | | const ComfirmButton = () => { |
| | | const { selectedIds, data } = useListContext(); |
| | | const { selectedIds, data, onUnselectItems } = useListContext(); |
| | | const handleRowClick = () => { |
| | | const ids = data.filter(item => selectedIds.includes(item.id)).map(item => item.id); |
| | | const ids = data.filter(item => selectedIds.includes(item.id)); |
| | | setRowSelectedIds(ids); |
| | | const mas = data.filter(item => selectedIds.includes(item.id)).map(item => item.matnrCode); |
| | | //设置库位信息筛选条件 |
| | | setSelectedMatnr(mas); |
| | | // onUnselectItems() |
| | | } |
| | | |
| | | return ( |
| | |
| | | if (formData.waveId == null && formData.waveId == undefined) { |
| | | return |
| | | } |
| | | const { data: { code, data, msg } } = await request.post('/outStock/order/getOutTaskItems', { ...formData }); |
| | | const { data: { code, data, msg } } = await request.post('/check/order/items', { ...formData }); |
| | | if (code === 200) { |
| | | // setRows(data) |
| | | setFetchRows(data) |
| | | } else { |
| | | notify(msg); |
| | |
| | | </ReferenceInput> |
| | | </Form> |
| | | <List |
| | | resource="outStockItem" |
| | | storeKey='outStockItem' |
| | | resource="checkItem" |
| | | storeKey='checkItem' |
| | | sx={{ |
| | | flexGrow: 1, |
| | | transition: (theme) => |
| | |
| | | duration: theme.transitions.duration.enteringScreen, |
| | | }), |
| | | }} |
| | | title={"menu.outStockItem"} |
| | | title={"menu.checkItem"} |
| | | empty={false} |
| | | filter={{ asnId: record?.id, deleted: 0 }} |
| | | filter={{ orderId: record?.id, deleted: 0 }} |
| | | sort={{ field: "create_time", order: "desc" }} |
| | | actions={false} |
| | | pagination={false} |
| | |
| | | /> |
| | | <StyledDatagrid |
| | | storeKey={"outStockPublic"} |
| | | preferenceKey='outStockItem' |
| | | preferenceKey='checkItem' |
| | | bulkActionButtons={<> |
| | | <ComfirmButton /> |
| | | </>} |
| | | omit={['id', 'splrName', 'qty', 'poCode',]} |
| | | omit={['id', 'splrName', 'qty',]} |
| | | > |
| | | <NumberField source="id" /> |
| | | <TextField source="asnCode" label="table.field.outStockItem.asnCode" /> |
| | | <TextField source="poCode" label="table.field.outStockItem.poCode" /> |
| | | <TextField source="matnrCode" label="table.field.outStockItem.matnrCode" /> |
| | | <TextField source="maktx" label="table.field.outStockItem.maktx" /> |
| | | <NumberField source="anfme" label="table.field.outStockItem.anfme" /> |
| | | <NumberField source="workQty" label="table.field.outStockItem.workQty" /> |
| | | <NumberField source="qty" label="table.field.outStockItem.qty" /> |
| | | <TextField source="stockUnit" label="table.field.outStockItem.stockUnit" /> |
| | | <TextField source="splrName" label="table.field.outStockItem.splrName" /> |
| | | <TextField source="orderCode" label="table.field.checkOrderItem.orderCode" /> |
| | | <TextField source="matnrCode" label="table.field.checkOrderItem.matnrCode" /> |
| | | <TextField source="maktx" label="table.field.checkOrderItem.maktx" /> |
| | | <NumberField source="anfme" label="table.field.checkOrderItem.anfme" /> |
| | | <NumberField source="workQty" label="table.field.checkOrderItem.workQty" /> |
| | | <NumberField source="qty" label="table.field.checkOrderItem.qty" /> |
| | | <TextField source="stockUnit" label="table.field.checkOrderItem.stockUnit" /> |
| | | <TextField source="splrName" label="table.field.checkOrderItem.splrName" /> |
| | | </StyledDatagrid> |
| | | </List> |
| | | </Card> |
| | |
| | | </Box> |
| | | <Box sx={{ textAlign: 'center' }}> |
| | | <CloseButton setOpen={setOpen} /> |
| | | <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} gridRef={gridRef} record={record} /> |
| | | <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} /> |
| | | </Box> |
| | | </Card> |
| | | </Grid> |
| | |
| | | }, [selectedIds]) |
| | | |
| | | const baseColumns = [ |
| | | // { field: 'id', headerName: 'ID', width: 40 }, |
| | | { field: 'locCode', headerName: '库位', width: 110 }, |
| | | { field: 'barcode', headerName: '容器', width: 120 }, |
| | | { field: 'matnrCode', headerName: '物料编码', width: 120 }, |
| | | { field: 'batch', headerName: '批次', width: 90 }, |
| | | { field: 'unit', headerName: '单位', width: 60 }, |
| | | { field: 'outQty', headerName: '出库数量', width: 110, }, |
| | | { |
| | | field: 'anfme', headerName: '库存数量', width: 110, |
| | | renderCell: (params) => ( |
| | |
| | | |
| | | |
| | | //提交按钮 |
| | | const SubmitButton = ({ selectedIds, setSelectedIds, gridRef, record }) => { |
| | | const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record }) => { |
| | | const notify = useNotify(); |
| | | const refresh = useRefresh(); |
| | | const redirect = useRedirect(); |
| | | const submit = async () => { |
| | | const items = gridRef.current?.getSortedRows(); |
| | | const { data: { code, data, msg } } = await request.post('/outStock/generate/tasks', { items, outId: record?.id }); |
| | | let selctRecord = items.filter(item => selectedIds.includes(item?.id)); |
| | | //过滤,将库位添加至盘点单明细中 |
| | | const records = rowSelectedIds.map(map =>{ |
| | | return { |
| | | ...map, |
| | | items: selctRecord.filter(item => item.matnrCode == map.matnrCode) |
| | | } |
| | | }) |
| | | |
| | | const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records); |
| | | if (code == 200) { |
| | | refresh(); |
| | | redirect("/task") |
| | |
| | | } |
| | | return ( |
| | | <ConfirmButton |
| | | label="toolbar.allComfirm" |
| | | label="toolbar.confirmSelect" |
| | | variant="contained" |
| | | size="medium" |
| | | onConfirm={submit} |