Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

245 linhas
12 KiB

  1. // material-ui
  2. import {
  3. FormControl,
  4. Grid,
  5. Typography,
  6. FormLabel,
  7. TextField,
  8. } from '@mui/material';
  9. import { useFormik } from 'formik';
  10. import * as React from "react";
  11. import * as DateUtils from "utils/DateUtils"
  12. import { useParams } from "react-router-dom";
  13. import Loadable from 'components/Loadable';
  14. const MainCard = Loadable(React.lazy(() => import('components/MainCard')));
  15. import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils";
  16. import FileList from "components/FileList"
  17. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  18. const ApplicationDetailCard = ({ formData, }) => {
  19. const params = useParams();
  20. const [data, setData] = React.useState({});
  21. //const [proofId, setProofId] = React.useState();
  22. React.useEffect(() => {
  23. if (formData) {
  24. setData(formData);
  25. //setProofId(formData.id);
  26. }
  27. }, [formData]);
  28. const formik = useFormik({
  29. enableReinitialize: true,
  30. initialValues: data,
  31. });
  32. const DisplayField = ({ name, width }) => {
  33. return <TextField
  34. fullWidth
  35. disabled
  36. size="small"
  37. onChange={formik.handleChange}
  38. id={name}
  39. name={name}
  40. value={formik.values[name]}
  41. variant="outlined"
  42. sx={
  43. {
  44. "& .MuiInputBase-input.Mui-disabled": {
  45. WebkitTextFillColor: "#000000",
  46. background: "#f8f8f8",
  47. },
  48. width: width ? width : '100%'
  49. }
  50. }
  51. />;
  52. }
  53. function currencyFormat(num) {
  54. let val = num ? num : 0;
  55. return val.toLocaleString('en-US', {
  56. minimumFractionDigits: 2
  57. });
  58. }
  59. return (
  60. <MainCard elevation={0}
  61. border={false}
  62. content={false}
  63. >
  64. <Typography variant="h5" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}>
  65. Public Notice: Proofreading Reply
  66. </Typography>
  67. <form>
  68. <Grid container direction="column">
  69. <Grid item xs={12} md={12} lg={12}>
  70. <Grid container direction="row" justifyContent="space-between"
  71. alignItems="center">
  72. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  73. <Grid container alignItems={"center"}>
  74. <Grid item xs={12} md={3} lg={3}
  75. sx={{ display: 'flex', alignItems: 'center' }}>
  76. <FormLabel>App No.:</FormLabel>
  77. </Grid>
  78. <Grid item xs={12} md={9} lg={9}>
  79. <DisplayField name="appNo" />
  80. </Grid>
  81. </Grid>
  82. </Grid>
  83. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  84. <Grid container alignItems={"left"}>
  85. <Grid item xs={12} md={3} lg={3}
  86. sx={{ display: 'flex', alignItems: 'center' }}>
  87. <FormLabel>Status:</FormLabel>
  88. </Grid>
  89. <Grid item xs={12} md={9} lg={9} sx={{ display: 'flex', alignItems: 'center' }}>
  90. <FormControl variant="outlined">
  91. {StatusUtils.getStatusByText(data.appStatus)}
  92. </FormControl>
  93. </Grid>
  94. </Grid>
  95. </Grid>
  96. </Grid>
  97. <Grid container direction="row" justifyContent="space-between"
  98. alignItems="center">
  99. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  100. <Grid container alignItems={"center"}>
  101. <Grid item xs={12} md={3} lg={3}
  102. sx={{ display: 'flex', alignItems: 'center' }}>
  103. <FormLabel>Applicant:</FormLabel>
  104. </Grid>
  105. <Grid item xs={12} md={9} lg={9}>
  106. <FormControl variant="outlined" fullWidth disabled >
  107. {data.orgId === null ?
  108. <DisplayField name="contactPerson" />
  109. :
  110. <DisplayField name="applicant" />
  111. }
  112. </FormControl>
  113. </Grid>
  114. </Grid>
  115. </Grid>
  116. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  117. <Grid container alignItems={"center"}>
  118. <Grid item xs={12} md={3} lg={3}
  119. sx={{ display: 'flex', alignItems: 'center' }}>
  120. <FormLabel>Issue No:</FormLabel>
  121. </Grid>
  122. <Grid item xs={12} md={9} lg={9}>
  123. <DisplayField name="issueNoStr" />
  124. </Grid>
  125. </Grid>
  126. </Grid>
  127. </Grid>
  128. <Grid container direction="row" justifyContent="space-between"
  129. alignItems="center">
  130. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  131. <Grid container alignItems={"center"}>
  132. <Grid item xs={12} md={3} lg={3}
  133. sx={{ display: 'flex', alignItems: 'center' }}>
  134. <FormLabel>Contact Person:</FormLabel>
  135. </Grid>
  136. <Grid item xs={12} md={9} lg={9}>
  137. <DisplayField name="contactPerson" />
  138. </Grid>
  139. </Grid>
  140. </Grid>
  141. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  142. <Grid container alignItems={"center"}>
  143. <Grid item xs={12} md={3} lg={3}
  144. sx={{ display: 'flex', alignItems: 'center' }}>
  145. <FormLabel>Issue Date:</FormLabel>
  146. </Grid>
  147. <Grid item xs={12} md={9} lg={9}>
  148. <DisplayField name="issueDateStr" />
  149. </Grid>
  150. </Grid>
  151. </Grid>
  152. </Grid>
  153. {/* <Grid container direction="row" justifyContent="space-between"
  154. alignItems="center">
  155. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>
  156. <Grid container alignItems="left">
  157. <Grid item xs={12} md={3} lg={3}
  158. sx={{ display: 'flex', alignItems: 'center' }}>
  159. <FormLabel>Remarks:</FormLabel>
  160. </Grid>
  161. <Grid item xs={12} md={9} lg={9}>
  162. <Stack direction="row">
  163. <DisplayField name="appRemarks" />
  164. </Stack>
  165. </Grid>
  166. </Grid>
  167. </Grid>
  168. </Grid> */}
  169. <Grid container direction="row" justifyContent="space-between"
  170. alignItems="center">
  171. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>
  172. <Grid container alignItems={"center"}>
  173. <Grid item xs={12} md={12} lg={12} sx={{ display: 'flex', alignItems: 'center' }}>
  174. <Typography>Print file:</Typography>
  175. </Grid>
  176. </Grid>
  177. <FileList
  178. refId={params.id}
  179. refType={"proof"}
  180. dateHideable={true}
  181. disablePagination
  182. disableSelectionOnClick
  183. disableColumnMenu
  184. disableColumnSelector
  185. hideFooter
  186. />
  187. </Grid>
  188. <Grid item xs={12} md={4} lg={4} sx={{ mb: 1, }}>
  189. <Grid container alignItems={"center"}>
  190. <Grid item xs={12} md={12} lg={12}
  191. sx={{ display: 'flex', alignItems: 'center' }}>
  192. <Typography>Deadline for payment and reply:</Typography>
  193. </Grid>
  194. <Grid item xs={12} md={12} lg={12} sx={{ mb: 4, display: 'flex', alignItems: 'center' }}>
  195. <Typography>{DateUtils.dateStr(data.returnBeforeDate)} Before 2:00 PM</Typography>
  196. </Grid>
  197. <Grid item xs={12} md={3} lg={3}
  198. sx={{ mb: 1, display: 'flex', alignItems: 'center' }}>
  199. <Typography>Fee:</Typography>
  200. </Grid>
  201. <Grid item xs={12} md={9} lg={9} sx={{ mb: 1, display: 'flex', alignItems: 'center' }}>
  202. <Typography style={{ color: "blue", fontWeight: "bold", }}>{currencyFormat(data.fee)}</Typography>
  203. </Grid>
  204. <Grid item xs={12} md={12} lg={12} sx={{ mb: 4, display: 'flex', alignItems: 'center' }}>
  205. {
  206. formik.values.groupType == "A"
  207. ?
  208. <Typography>( {data.noOfPages} page x $6,552 )</Typography>
  209. :
  210. <Typography>( {data.length} cm x {data.colCount == 2 ? "$364 Double Column" : "$182 Single Column"} )</Typography>
  211. }
  212. </Grid>
  213. </Grid>
  214. </Grid>
  215. </Grid>
  216. </Grid>
  217. </Grid>
  218. </form>
  219. </MainCard>
  220. );
  221. };
  222. export default ApplicationDetailCard;