|  |  |  | 
|---|
|  |  |  | ListContextProvider, | 
|---|
|  |  |  | useList, | 
|---|
|  |  |  | Toolbar, | 
|---|
|  |  |  | SingleFieldList, | 
|---|
|  |  |  | } from 'react-admin'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; | 
|---|
|  |  |  | import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog } from '@mui/material'; | 
|---|
|  |  |  | import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog, Chip, ListItem, Paper } from '@mui/material'; | 
|---|
|  |  |  | import { styled } from '@mui/material/styles'; | 
|---|
|  |  |  | import DialogCloseButton from "../../components/DialogCloseButton"; | 
|---|
|  |  |  | import request from '@/utils/request'; | 
|---|
|  |  |  | 
|---|
|  |  |  | <NumberField source="waveId" label="table.field.waveItem.waveId" /> | 
|---|
|  |  |  | <TextField source="waveCode" label="table.field.waveItem.waveCode" /> | 
|---|
|  |  |  | <TextField source="orderCode" label="table.field.waveItem.orderCode" /> | 
|---|
|  |  |  | {/* <TextField source="maktx" label="table.field.waveItem.matnrName" /> */} | 
|---|
|  |  |  | <NumberField source="matnrId" label="table.field.waveItem.matnrId" /> | 
|---|
|  |  |  | <TextField source="matnrCode" label="table.field.waveItem.matnrCode" /> | 
|---|
|  |  |  | <TextField source="batch" label="table.field.waveItem.batch" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <NumberField source="anfme" label="table.field.waveItem.anfme" /> | 
|---|
|  |  |  | <NumberField source="workQty" label="table.field.waveItem.workQty" /> | 
|---|
|  |  |  | <NumberField source="qty" label="table.field.waveItem.qty" /> | 
|---|
|  |  |  | <NumberField source="stockQty" label="table.field.waveItem.stockQty" /> | 
|---|
|  |  |  | <WrapperField cellClassName="opt" label="table.field.waveItem.stockLocs"> | 
|---|
|  |  |  | <ArrayField source="stockLocs" stockLocs="table.field.waveItem.stockLocs"> | 
|---|
|  |  |  | <SingleFieldList linkType={false}> | 
|---|
|  |  |  | <ChilpField source="" size="small"></ChilpField> | 
|---|
|  |  |  | </SingleFieldList> | 
|---|
|  |  |  | </ArrayField> | 
|---|
|  |  |  | {/* <NumberField source="anfme" label="table.field.waveItem.stockLocs" /> */} | 
|---|
|  |  |  | {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> | 
|---|
|  |  |  | <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */} | 
|---|
|  |  |  | <TagsField /> | 
|---|
|  |  |  | </WrapperField> | 
|---|
|  |  |  | </StyledDatagrid> | 
|---|
|  |  |  | </ListContextProvider> | 
|---|
|  |  |  | </DialogContent> | 
|---|
|  |  |  | <DialogActions> | 
|---|
|  |  |  | <Toolbar sx={{ width: '100%', justifyContent: 'end' }} > | 
|---|
|  |  |  | <GenerateTaskButton record={[record?.id]} /> | 
|---|
|  |  |  | <GenerateTaskButton record={record?.id} dataSource={data} setOpen={setOpen}/> | 
|---|
|  |  |  | </Toolbar> | 
|---|
|  |  |  | </DialogActions> | 
|---|
|  |  |  | </Dialog> | 
|---|
|  |  |  | 
|---|
|  |  |  | const refresh = useRefresh(); | 
|---|
|  |  |  | const notify = useNotify(); | 
|---|
|  |  |  | const redirect = useRedirect(); | 
|---|
|  |  |  | const translate = useTranslate(); | 
|---|
|  |  |  | const { locs, setLocs } = useState([]); | 
|---|
|  |  |  | const generateTask = async () => { | 
|---|
|  |  |  | const res = await request.post(`/wave/public/task`, { ids: record?.record }); | 
|---|
|  |  |  | if (res?.data?.code === 200) { | 
|---|
|  |  |  | notify(res.data.msg); | 
|---|
|  |  |  | redirect("/task") | 
|---|
|  |  |  | record?.dataSource.map(item => { | 
|---|
|  |  |  | const loc = JSON.parse(item.stockLocs); | 
|---|
|  |  |  | if (loc != undefined && loc.length > 0) { | 
|---|
|  |  |  | setLocs(...loc) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | if (locs == undefined || locs.length < 1) { | 
|---|
|  |  |  | notify(translate('request.error.stock')) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | notify(res.data.msg); | 
|---|
|  |  |  | const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource }); | 
|---|
|  |  |  | if (res?.data?.code === 200) { | 
|---|
|  |  |  | record.setOpen(false) | 
|---|
|  |  |  | notify(res.data.msg); | 
|---|
|  |  |  | redirect("/task") | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | notify(res.data.msg); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | refresh(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | refresh(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return (<Button variant="contained" label={"ra.action.save"} onClick={generateTask}></Button>) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const TagsField = () => { | 
|---|
|  |  |  | const record = useRecordContext(); | 
|---|
|  |  |  | const translate = useTranslate(); | 
|---|
|  |  |  | const locs = JSON.parse(record.stockLocs); | 
|---|
|  |  |  | if (locs == undefined || locs.length < 1) { | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <> | 
|---|
|  |  |  | <ListItem> | 
|---|
|  |  |  | <Chip color="error" label={translate("common.action.stockError")} variant="outlined" /> | 
|---|
|  |  |  | </ListItem> | 
|---|
|  |  |  | </> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <> | 
|---|
|  |  |  | {locs.map((data) => { | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <ListItem key={data?.id}> | 
|---|
|  |  |  | <Chip label={data?.locCode} /> | 
|---|
|  |  |  | </ListItem> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | })} | 
|---|
|  |  |  | </> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|