import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; 
 | 
import { 
 | 
  List, 
 | 
  DatagridConfigurable, 
 | 
  SearchInput, 
 | 
  TopToolbar, 
 | 
  SelectColumnsButton, 
 | 
  EditButton, 
 | 
  FilterButton, 
 | 
  BulkDeleteButton, 
 | 
  WrapperField, 
 | 
  useTranslate, 
 | 
  TextField, 
 | 
  NumberField, 
 | 
  DateField, 
 | 
  BooleanField, 
 | 
  TextInput, 
 | 
  SelectInput, 
 | 
  NumberInput, 
 | 
  DeleteButton, 
 | 
  useGetRecordId, 
 | 
  Button, 
 | 
  useGetOne 
 | 
} from 'react-admin'; 
 | 
import { Box, Typography, Card, Stack } from '@mui/material'; 
 | 
import { styled } from '@mui/material/styles'; 
 | 
import PurchaseItemCreate from "./PurchaseItemCreate"; 
 | 
import EmptyData from "../../components/EmptyData"; 
 | 
import MyCreateButton from "../../components/MyCreateButton"; 
 | 
import MyExportButton from '../../components/MyExportButton'; 
 | 
import PageDrawer from "../../components/PageDrawer"; 
 | 
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; 
 | 
import PurchaseItemEdit from "./PurchaseItemEdit"; 
 | 
  
 | 
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ 
 | 
  '& .css-1vooibu-MuiSvgIcon-root': { 
 | 
    height: '.9em' 
 | 
  }, 
 | 
  '& .RaDatagrid-row': { 
 | 
    cursor: 'auto' 
 | 
  }, 
 | 
  '& .column-name': { 
 | 
  }, 
 | 
  '& .opt': { 
 | 
    width: 200 
 | 
  }, 
 | 
  '& .MuiTableCell-root': { 
 | 
    whiteSpace: 'nowrap', 
 | 
    overflow: 'visible', 
 | 
    textOverflow: 'unset' 
 | 
  } 
 | 
})); 
 | 
  
 | 
const filters = [ 
 | 
  <SearchInput source="condition" alwaysOn />, 
 | 
  <NumberInput source="purchaseId" label="table.field.purchaseItem.purchaseId" />, 
 | 
  <TextInput source="platItemId" label="table.field.purchaseItem.platItemId" />, 
 | 
  <TextInput source="matnrCode" label="table.field.purchaseItem.matnrCode" />, 
 | 
  <TextInput source="matnrName" label="table.field.purchaseItem.matnrName" />, 
 | 
  <TextInput source="unit" label="table.field.purchaseItem.unit" />, 
 | 
  <NumberInput source="anfme" label="table.field.purchaseItem.anfme" />, 
 | 
  <NumberInput source="qty" label="table.field.purchaseItem.qty" />, 
 | 
  <NumberInput source="nromQty" label="table.field.purchaseItem.nromQty" />, 
 | 
  <NumberInput source="asnQty" label="table.field.purchaseItem.asnQty" />, 
 | 
  <NumberInput source="printQty" label="table.field.purchaseItem.printQty" />, 
 | 
  <TextInput source="splrName" label="table.field.purchaseItem.splrName" />, 
 | 
  <TextInput source="splrCode" label="table.field.purchaseItem.splrCode" />, 
 | 
  <TextInput source="splrBatch" label="table.field.purchaseItem.splrBatch" />, 
 | 
  <TextInput label="common.field.memo" source="memo" />, 
 | 
  <SelectInput 
 | 
    label="common.field.status" 
 | 
    source="status" 
 | 
    choices={[ 
 | 
      { id: '1', name: 'common.enums.statusTrue' }, 
 | 
      { id: '0', name: 'common.enums.statusFalse' }, 
 | 
    ]} 
 | 
    resettable 
 | 
  />, 
 | 
] 
 | 
  
 | 
const PurchaseItemList = () => { 
 | 
  const translate = useTranslate(); 
 | 
  const [createDialog, setCreateDialog] = useState(false); 
 | 
  const [drawerVal, setDrawerVal] = useState(false); 
 | 
  const [editDialog, setEditDialog] = useState(false); 
 | 
  const [select, setSelect] = useState({}); 
 | 
  const poId = useGetRecordId(); 
 | 
  const { data: purchase, isPending, error } = useGetOne('purchase', { id: poId }); 
 | 
  
 | 
  return ( 
 | 
    <> 
 | 
      <Box display="flex"> 
 | 
        <List 
 | 
          resource="purchaseItem" 
 | 
          sx={{ 
 | 
            flexGrow: 1, 
 | 
            transition: (theme) => 
 | 
              theme.transitions.create(['all'], { 
 | 
                duration: theme.transitions.duration.enteringScreen, 
 | 
              }), 
 | 
            marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, 
 | 
          }} 
 | 
          title={"menu.purchaseItem"} 
 | 
          empty={false} 
 | 
          filters={filters} 
 | 
          filter={{ purchaseId: poId }} 
 | 
          sort={{ field: "create_time", order: "desc" }} 
 | 
          actions={( 
 | 
            <TopToolbar> 
 | 
              <FilterButton /> 
 | 
              {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} 
 | 
              <SelectColumnsButton preferenceKey='purchaseItem' /> 
 | 
              {/* <MyExportButton /> */} 
 | 
            </TopToolbar> 
 | 
          )} 
 | 
          perPage={DEFAULT_PAGE_SIZE} 
 | 
        > 
 | 
          <StyledDatagrid 
 | 
            preferenceKey='purchaseItem' 
 | 
            bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} 
 | 
            rowClick={ 
 | 
              false 
 | 
            //   (id, resource, record) => { 
 | 
            //   setSelect(record) 
 | 
            //   setEditDialog(true) 
 | 
            // } 
 | 
          } 
 | 
            omit={['id', 'createTime', 'purchaseId', 'platItemId','asnQty', 'printQty',  'createBy', 'memo','splrCode','createBy$','statusBool']} 
 | 
          > 
 | 
            <NumberField source="id" /> 
 | 
            <NumberField source="purchaseId" label="table.field.purchaseItem.purchaseId" /> 
 | 
            <TextField source="platItemId" label="table.field.purchaseItem.platItemId" /> 
 | 
            <TextField source="matnrCode" label="table.field.purchaseItem.matnrCode" /> 
 | 
            <TextField source="matnrName" label="table.field.purchaseItem.matnrName" /> 
 | 
            <TextField source="unit" label="table.field.purchaseItem.unit" /> 
 | 
            <NumberField source="anfme" label="table.field.purchaseItem.anfme" /> 
 | 
            <NumberField source="qty" label="table.field.purchaseItem.qty" /> 
 | 
            <NumberField source="nromQty" label="table.field.purchaseItem.nromQty" /> 
 | 
            <NumberField source="asnQty" label="table.field.purchaseItem.asnQty" /> 
 | 
            <NumberField source="printQty" label="table.field.purchaseItem.printQty" /> 
 | 
            <TextField source="splrName" label="table.field.purchaseItem.splrName" /> 
 | 
            <TextField source="splrCode" label="table.field.purchaseItem.splrCode" /> 
 | 
            <TextField source="splrBatch" label="table.field.purchaseItem.splrBatch" /> 
 | 
            <TextField source="updateBy$" label="common.field.updateBy" reference="user" /> 
 | 
            <DateField source="updateTime" label="common.field.updateTime" showTime /> 
 | 
            <TextField source="createBy$" label="common.field.createBy" /> 
 | 
            <DateField source="createTime" label="common.field.createTime" showTime /> 
 | 
            <BooleanField source="statusBool" label="common.field.status" sortable={false} /> 
 | 
            <TextField source="memo" label="common.field.memo" sortable={false} /> 
 | 
            {/* <WrapperField cellClassName="opt" label="common.field.opt"> 
 | 
              <Button label="ra.action.edit" onClick={(id, resource, record) => { 
 | 
                setEditDialog(true) 
 | 
                setSelect(record) 
 | 
              }} /> 
 | 
              <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> 
 | 
            </WrapperField> */} 
 | 
          </StyledDatagrid> 
 | 
        </List> 
 | 
        <PurchaseItemEdit 
 | 
          open={editDialog} 
 | 
          setOpen={setEditDialog} 
 | 
          record={select} 
 | 
        /> 
 | 
        <PurchaseItemCreate 
 | 
          open={createDialog} 
 | 
          setOpen={setCreateDialog} 
 | 
          row={{ poId }} 
 | 
        /> 
 | 
        <PageDrawer 
 | 
          title='PurchaseItem Detail' 
 | 
          drawerVal={drawerVal} 
 | 
          setDrawerVal={setDrawerVal} 
 | 
        > 
 | 
        </PageDrawer> 
 | 
      </Box></> 
 | 
  ) 
 | 
} 
 | 
  
 | 
export default PurchaseItemList; 
 |