|  |  | 
 |  |  | import React, { useState, useRef, useEffect, useMemo } from "react"; | 
 |  |  | import { | 
 |  |  |     CreateBase, | 
 |  |  |     useTranslate, | 
 |  |  |     TextInput, | 
 |  |  |     NumberInput, | 
 |  |  |     BooleanInput, | 
 |  |  |     DateInput, | 
 |  |  |     SaveButton, | 
 |  |  |     SelectInput, | 
 |  |  |     ReferenceInput, | 
 |  |  |     ReferenceArrayInput, | 
 |  |  |     AutocompleteInput, | 
 |  |  |     Toolbar, | 
 |  |  |     required, | 
 |  |  |     useDataProvider, | 
 |  |  |     useNotify, | 
 |  |  |     Form, | 
 |  |  |     useCreateController, | 
 |  |  | } from 'react-admin'; | 
 |  |  |   CreateBase, | 
 |  |  |   useTranslate, | 
 |  |  |   TextInput, | 
 |  |  |   NumberInput, | 
 |  |  |   BooleanInput, | 
 |  |  |   DateInput, | 
 |  |  |   SaveButton, | 
 |  |  |   SelectInput, | 
 |  |  |   ReferenceInput, | 
 |  |  |   ReferenceArrayInput, | 
 |  |  |   AutocompleteInput, | 
 |  |  |   Toolbar, | 
 |  |  |   required, | 
 |  |  |   useDataProvider, | 
 |  |  |   useNotify, | 
 |  |  |   Form, | 
 |  |  |   useCreateController, | 
 |  |  | } from "react-admin"; | 
 |  |  | import { | 
 |  |  |     Dialog, | 
 |  |  |     DialogActions, | 
 |  |  |     DialogContent, | 
 |  |  |     DialogTitle, | 
 |  |  |     Stack, | 
 |  |  |     Grid, | 
 |  |  |     Box, | 
 |  |  | } from '@mui/material'; | 
 |  |  |   Dialog, | 
 |  |  |   DialogActions, | 
 |  |  |   DialogContent, | 
 |  |  |   DialogTitle, | 
 |  |  |   Stack, | 
 |  |  |   Grid, | 
 |  |  |   Box, | 
 |  |  | } from "@mui/material"; | 
 |  |  | import DialogCloseButton from "../components/DialogCloseButton"; | 
 |  |  | import StatusSelectInput from "../components/StatusSelectInput"; | 
 |  |  | import MemoInput from "../components/MemoInput"; | 
 |  |  |  | 
 |  |  | const WarehouseAreasCreate = (props) => { | 
 |  |  |     const { open, setOpen } = props; | 
 |  |  |   const { open, setOpen } = props; | 
 |  |  |  | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |     const notify = useNotify(); | 
 |  |  |   const translate = useTranslate(); | 
 |  |  |   const notify = useNotify(); | 
 |  |  |  | 
 |  |  |     const handleClose = (event, reason) => { | 
 |  |  |         if (reason !== "backdropClick") { | 
 |  |  |             setOpen(false); | 
 |  |  |         } | 
 |  |  |     }; | 
 |  |  |   const handleClose = (event, reason) => { | 
 |  |  |     if (reason !== "backdropClick") { | 
 |  |  |       setOpen(false); | 
 |  |  |     } | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |     const handleSuccess = async (data) => { | 
 |  |  |         setOpen(false); | 
 |  |  |         notify('common.response.success'); | 
 |  |  |     }; | 
 |  |  |   const handleSuccess = async (data) => { | 
 |  |  |     setOpen(false); | 
 |  |  |     notify("common.response.success"); | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |     const handleError = async (error) => { | 
 |  |  |         notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); | 
 |  |  |     }; | 
 |  |  |   const handleError = async (error) => { | 
 |  |  |     notify(error.message || "common.response.fail", { | 
 |  |  |       type: "error", | 
 |  |  |       messageArgs: { _: error.message }, | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |     return ( | 
 |  |  |         <> | 
 |  |  |             <CreateBase | 
 |  |  |                 record={{}} | 
 |  |  |                 transform={(data) => { | 
 |  |  |                     return data; | 
 |  |  |                 }} | 
 |  |  |                 mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} | 
 |  |  |   return ( | 
 |  |  |     <> | 
 |  |  |       <CreateBase | 
 |  |  |         record={{}} | 
 |  |  |         transform={(data) => { | 
 |  |  |           return data; | 
 |  |  |         }} | 
 |  |  |         mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} | 
 |  |  |       > | 
 |  |  |         <Dialog | 
 |  |  |           open={open} | 
 |  |  |           onClose={handleClose} | 
 |  |  |           aria-labelledby="form-dialog-title" | 
 |  |  |           fullWidth | 
 |  |  |           disableRestoreFocus | 
 |  |  |           maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |         > | 
 |  |  |           <Form> | 
 |  |  |             <DialogTitle | 
 |  |  |               id="form-dialog-title" | 
 |  |  |               sx={{ | 
 |  |  |                 position: "sticky", | 
 |  |  |                 top: 0, | 
 |  |  |                 backgroundColor: "background.paper", | 
 |  |  |                 zIndex: 1000, | 
 |  |  |               }} | 
 |  |  |             > | 
 |  |  |                 <Dialog | 
 |  |  |                     open={open} | 
 |  |  |                     onClose={handleClose} | 
 |  |  |                     aria-labelledby="form-dialog-title" | 
 |  |  |                     fullWidth | 
 |  |  |                     disableRestoreFocus | 
 |  |  |                     maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |                 > | 
 |  |  |                     <Form> | 
 |  |  |                         <DialogTitle id="form-dialog-title" sx={{ | 
 |  |  |                             position: 'sticky', | 
 |  |  |                             top: 0, | 
 |  |  |                             backgroundColor: 'background.paper', | 
 |  |  |                             zIndex: 1000 | 
 |  |  |                         }} | 
 |  |  |                         > | 
 |  |  |                             {translate('create.title')} | 
 |  |  |                             <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> | 
 |  |  |                                 <DialogCloseButton onClose={handleClose} /> | 
 |  |  |                             </Box> | 
 |  |  |                         </DialogTitle> | 
 |  |  |                         <DialogContent sx={{ mt: 2 }}> | 
 |  |  |                             <Grid container rowSpacing={2} columnSpacing={2}> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <TextInput | 
 |  |  |                                         label="table.field.warehouseAreas.uuid" | 
 |  |  |                                         source="uuid" | 
 |  |  |                                         parse={v => v} | 
 |  |  |                                         autoFocus | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <TextInput | 
 |  |  |                                         label="table.field.warehouseAreas.name" | 
 |  |  |                                         source="name" | 
 |  |  |                                         parse={v => v} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <TextInput | 
 |  |  |                                         label="table.field.warehouseAreas.code" | 
 |  |  |                                         source="code" | 
 |  |  |                                         parse={v => v} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <ReferenceInput | 
 |  |  |                                         source="shipperId" | 
 |  |  |                                         reference="shipper" | 
 |  |  |                                     > | 
 |  |  |                                         <AutocompleteInput | 
 |  |  |                                             label="table.field.warehouseAreas.shipperId" | 
 |  |  |                                             optionText="name" | 
 |  |  |                                             filterToQuery={(val) => ({ name: val })} | 
 |  |  |                                         /> | 
 |  |  |                                     </ReferenceInput> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <NumberInput | 
 |  |  |                                         label="table.field.warehouseAreas.supplierId" | 
 |  |  |                                         source="supplierId" | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <SelectInput | 
 |  |  |                                         label="table.field.warehouseAreas.flagMinus" | 
 |  |  |                                         source="flagMinus" | 
 |  |  |                                         choices={[ | 
 |  |  |                                             { id: 0, name: '否' }, | 
 |  |  |                                             { id:  1, name: '是' }, | 
 |  |  |                                         ]} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <SelectInput | 
 |  |  |                                         label="table.field.warehouseAreas.flagLabelMange" | 
 |  |  |                                         source="flagLabelMange" | 
 |  |  |                                         choices={[ | 
 |  |  |                                             { id: 0, name: ' 否' }, | 
 |  |  |                                             { id:  1, name: ' 是' }, | 
 |  |  |                                         ]} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <SelectInput | 
 |  |  |                                         label="table.field.warehouseAreas.flagMix" | 
 |  |  |                                         source="flagMix" | 
 |  |  |                                         choices={[ | 
 |  |  |                                             { id: 0, name: '否' }, | 
 |  |  |                                             { id:  1, name: '是' }, | 
 |  |  |                                         ]} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |               {translate("create.title")} | 
 |  |  |               <Box | 
 |  |  |                 sx={{ position: "absolute", top: 8, right: 8, zIndex: 1001 }} | 
 |  |  |               > | 
 |  |  |                 <DialogCloseButton onClose={handleClose} /> | 
 |  |  |               </Box> | 
 |  |  |             </DialogTitle> | 
 |  |  |             <DialogContent sx={{ mt: 2 }}> | 
 |  |  |               <Grid container rowSpacing={2} columnSpacing={2}> | 
 |  |  |                 {/* <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <TextInput | 
 |  |  |                     label="table.field.warehouseAreas.uuid" | 
 |  |  |                     source="uuid" | 
 |  |  |                     parse={(v) => v} | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     autoFocus | 
 |  |  |                   /> | 
 |  |  |                 </Grid> */} | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <TextInput | 
 |  |  |                     label="table.field.warehouseAreas.name" | 
 |  |  |                     source="name" | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     parse={(v) => v} | 
 |  |  |                   /> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <TextInput | 
 |  |  |                     label="table.field.warehouseAreas.code" | 
 |  |  |                     source="code" | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     parse={(v) => v} | 
 |  |  |                   /> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <ReferenceInput source="shipperId" reference="companys" filter={{ type: 'shipper' }}> | 
 |  |  |                     <AutocompleteInput | 
 |  |  |                       label="table.field.warehouseAreas.shipperId" | 
 |  |  |                       optionText="name" | 
 |  |  |                       filterToQuery={(val) => ({ name: val })} | 
 |  |  |                     /> | 
 |  |  |                   </ReferenceInput> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <ReferenceInput source="supplierId" reference="companys" filter={{ type: 'supplier' }}> | 
 |  |  |                     <AutocompleteInput | 
 |  |  |                       label="table.field.warehouseAreas.supplierId" | 
 |  |  |                       optionText="name" | 
 |  |  |                       filterToQuery={(val) => ({ name: val })} | 
 |  |  |                     /> | 
 |  |  |                   </ReferenceInput> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <SelectInput | 
 |  |  |                     label="table.field.warehouseAreas.flagMinus" | 
 |  |  |                     source="flagMinus" | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     choices={[ | 
 |  |  |                       { id: 0, name: "否" }, | 
 |  |  |                       { id: 1, name: "是" }, | 
 |  |  |                     ]} | 
 |  |  |                   /> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <SelectInput | 
 |  |  |                     label="table.field.warehouseAreas.flagLabelMange" | 
 |  |  |                     source="flagLabelMange" | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     choices={[ | 
 |  |  |                       { id: 0, name: " 否" }, | 
 |  |  |                       { id: 1, name: " 是" }, | 
 |  |  |                     ]} | 
 |  |  |                   /> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <SelectInput | 
 |  |  |                     label="table.field.warehouseAreas.flagMix" | 
 |  |  |                     source="flagMix" | 
 |  |  |                     validate={[required()]} | 
 |  |  |                     choices={[ | 
 |  |  |                       { id: 0, name: "否" }, | 
 |  |  |                       { id: 1, name: "是" }, | 
 |  |  |                     ]} | 
 |  |  |                   /> | 
 |  |  |                 </Grid> | 
 |  |  |  | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <StatusSelectInput /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                                     <Stack direction="column" spacing={1} width={'100%'}> | 
 |  |  |                                         <MemoInput /> | 
 |  |  |                                     </Stack> | 
 |  |  |                                 </Grid> | 
 |  |  |                             </Grid> | 
 |  |  |                         </DialogContent> | 
 |  |  |                         <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
 |  |  |                             <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  > | 
 |  |  |                                 <SaveButton /> | 
 |  |  |                             </Toolbar> | 
 |  |  |                         </DialogActions> | 
 |  |  |                     </Form> | 
 |  |  |                 </Dialog> | 
 |  |  |             </CreateBase> | 
 |  |  |         </> | 
 |  |  |     ) | 
 |  |  | } | 
 |  |  |                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                   <StatusSelectInput /> | 
 |  |  |                 </Grid> | 
 |  |  |                 <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                   <Stack direction="column" spacing={1} width={"100%"}> | 
 |  |  |                     <MemoInput /> | 
 |  |  |                   </Stack> | 
 |  |  |                 </Grid> | 
 |  |  |               </Grid> | 
 |  |  |             </DialogContent> | 
 |  |  |             <DialogActions | 
 |  |  |               sx={{ | 
 |  |  |                 position: "sticky", | 
 |  |  |                 bottom: 0, | 
 |  |  |                 backgroundColor: "background.paper", | 
 |  |  |                 zIndex: 1000, | 
 |  |  |               }} | 
 |  |  |             > | 
 |  |  |               <Toolbar sx={{ width: "100%", justifyContent: "space-between" }}> | 
 |  |  |                 <SaveButton /> | 
 |  |  |               </Toolbar> | 
 |  |  |             </DialogActions> | 
 |  |  |           </Form> | 
 |  |  |         </Dialog> | 
 |  |  |       </CreateBase> | 
 |  |  |     </> | 
 |  |  |   ); | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | export default WarehouseAreasCreate; |