| import React, { useState, useRef, useEffect, useMemo } from "react"; | 
| import { | 
|     Edit, | 
|     SimpleForm, | 
|     FormDataConsumer, | 
|     useTranslate, | 
|     TextInput, | 
|     NumberInput, | 
|     BooleanInput, | 
|     DateInput, | 
|     SelectInput, | 
|     ReferenceInput, | 
|     ReferenceArrayInput, | 
|     AutocompleteInput, | 
|     SaveButton, | 
|     Toolbar, | 
|     Labeled, | 
|     NumberField, | 
|     required, | 
|     useRecordContext, | 
|   | 
|     Form, | 
|     DeleteButton, | 
|     useGetOne, | 
|     EditBase, | 
| } from 'react-admin'; | 
| import { useWatch, useFormContext } from "react-hook-form"; | 
| import { Stack, Grid, Box, Typography, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'; | 
| import * as Common from '@/utils/common'; | 
| import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; | 
| import EditBaseAside from "../../components/EditBaseAside"; | 
| import CustomerTopToolBar from "../../components/EditTopToolBar"; | 
| import MemoInput from "../../components/MemoInput"; | 
| import StatusSelectInput from "../../components/StatusSelectInput"; | 
| import DialogCloseButton from "../../components/DialogCloseButton"; | 
| import { Visibility } from "@mui/icons-material"; | 
|   | 
| const FormToolbar = () => { | 
|     const { getValues } = useFormContext(); | 
|   | 
|     return ( | 
|         <Toolbar sx={{ justifyContent: 'space-between' }}> | 
|             <SaveButton /> | 
|             <DeleteButton mutationMode="optimistic" /> | 
|         </Toolbar> | 
|     ) | 
| } | 
|   | 
| const DeliveryItemEdit = (props) => { | 
|     const { open, setOpen, record } = props; | 
|     const translate = useTranslate(); | 
|   | 
|     const handleClose = (event, reason) => { | 
|         if (reason !== "backdropClick") { | 
|             setOpen(false); | 
|         } | 
|     }; | 
|     const { data, isPending, } = useGetOne('deliveryItem', { id: record?.id }); | 
|     if (data == null || data == undefined) { return } | 
|   | 
|     return ( | 
|         <> | 
|             <Dialog | 
|                 open={open} | 
|                 onClose={handleClose} | 
|                 aria-labelledby="form-dialog-title" | 
|                 fullWidth | 
|                 disableRestoreFocus | 
|                 maxWidth="lg"> | 
|                 <DialogTitle id="form-dialog-title" sx={{ | 
|                     position: 'sticky', | 
|                     top: 0, | 
|                     backgroundColor: 'background.paper', | 
|                     zIndex: 1000 | 
|                 }} | 
|                 > | 
|                     {translate('update.title')} | 
|                     <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> | 
|                         <DialogCloseButton onClose={handleClose} /> | 
|                     </Box> | 
|                 </DialogTitle> | 
|                 <DialogContent sx={{ mt: 2 }}> | 
|                     <EditBase | 
|                         resource={'deliveryItem'} | 
|                         id={record?.id} | 
|                         mutationMode={EDIT_MODE} | 
|                         // actions={<CustomerTopToolBar />} | 
|                         aside={<EditBaseAside />} | 
|                     > | 
|                         <Form | 
|                             shouldUnregister | 
|                             warnWhenUnsavedChanges | 
|                             toolbar={<FormToolbar />} | 
|                             mode="onTouched" | 
|                             defaultValues={{}} | 
|                         // validate={(values) => { }} | 
|                         > | 
|                             <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}> | 
|                                 <Grid item xs={16} md={10}> | 
|                                     <Typography variant="h6" gutterBottom> | 
|                                         {translate('common.edit.title.main')} | 
|                                     </Typography> | 
|                                     <Stack direction='row' gap={2} sx={{ display: 'none' }}> | 
|                                         <NumberInput | 
|                                             label="table.field.deliveryItem.deliveryId" | 
|                                             source="deliveryId" | 
|                                             readOnly | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.platItemId" | 
|                                             source="platItemId" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                     </Stack> | 
|                                     <Stack direction='row' gap={2}> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.matnrCode" | 
|                                             source="matnrCode" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.matnrName" | 
|                                             source="matnrName" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.fieldsIndex" | 
|                                             source="fieldsIndex" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                     </Stack> | 
|                                     <Stack direction='row' gap={2}> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.unit" | 
|                                             source="unit" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                         <NumberInput | 
|                                             label="table.field.deliveryItem.anfme" | 
|                                             source="anfme" | 
|                                             validate={required()} | 
|                                         /> | 
|                                         <NumberInput | 
|                                             label="table.field.deliveryItem.qty" | 
|                                             source="qty" | 
|                                             validate={required()} | 
|                                         /> | 
|                                     </Stack> | 
|                                     <Stack direction='row' gap={2}> | 
|                                         <NumberInput | 
|                                             label="table.field.deliveryItem.printQty" | 
|                                             source="printQty" | 
|                                             validate={required()} | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.splrName" | 
|                                             source="splrName" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.splrCode" | 
|                                             source="splrCode" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                         <TextInput | 
|                                             label="table.field.deliveryItem.splrBatch" | 
|                                             source="splrBatch" | 
|                                             parse={v => v} | 
|                                         /> | 
|                                     </Stack> | 
|                                 </Grid> | 
|                                 <Grid item xs={8} md={2}> | 
|                                     <Typography variant="h6" gutterBottom> | 
|                                         {translate('common.edit.title.common')} | 
|                                     </Typography> | 
|                                     <StatusSelectInput /> | 
|                                     <Box mt="2em" /> | 
|                                     <MemoInput /> | 
|                                 </Grid> | 
|                             </Grid> | 
|                             <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
|                                 <Toolbar sx={{ width: '100%', justifyContent: 'end' }}  > | 
|                                     <SaveButton type="button" mutationOptions={{ | 
|                                         onSuccess: () => { | 
|                                             setOpen(false) | 
|                                         } | 
|                                     }} /> | 
|                                 </Toolbar> | 
|                             </DialogActions> | 
|                         </Form> | 
|                     </EditBase > | 
|                 </DialogContent> | 
|             </Dialog> | 
|         </> | 
|   | 
|   | 
|     ) | 
| } | 
|   | 
| export default DeliveryItemEdit; |