選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

249 行
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, setBackButtonPos }) => {
  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. React.useEffect(()=>{
  60. if (document.getElementById("applicationDetailsMainCard")) setBackButtonPos(`${document.getElementById("applicationDetailsMainCard")?.getBoundingClientRect().left / 2}px`)
  61. },[document.getElementById("applicationDetailsMainCard")])
  62. return (
  63. <MainCard
  64. id={"applicationDetailsMainCard"}
  65. border={false}
  66. content={false}
  67. >
  68. <Typography variant="h5" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}>
  69. Public Notice: Proofreading Reply
  70. </Typography>
  71. <form>
  72. <Grid container direction="column">
  73. <Grid item xs={12} md={12} lg={12}>
  74. <Grid container direction="row" justifyContent="space-between"
  75. alignItems="center">
  76. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  77. <Grid container alignItems={"center"}>
  78. <Grid item xs={12} md={3} lg={3}
  79. sx={{ display: 'flex', alignItems: 'center' }}>
  80. <FormLabel>App No.:</FormLabel>
  81. </Grid>
  82. <Grid item xs={12} md={9} lg={9}>
  83. <DisplayField name="appNo" />
  84. </Grid>
  85. </Grid>
  86. </Grid>
  87. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  88. <Grid container alignItems={"left"}>
  89. <Grid item xs={12} md={3} lg={3}
  90. sx={{ display: 'flex', alignItems: 'center' }}>
  91. <FormLabel>Status:</FormLabel>
  92. </Grid>
  93. <Grid item xs={12} md={9} lg={9} sx={{ display: 'flex', alignItems: 'center' }}>
  94. <FormControl variant="outlined">
  95. {StatusUtils.getStatusByText(data.appStatus)}
  96. </FormControl>
  97. </Grid>
  98. </Grid>
  99. </Grid>
  100. </Grid>
  101. <Grid container direction="row" justifyContent="space-between"
  102. alignItems="center">
  103. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  104. <Grid container alignItems={"center"}>
  105. <Grid item xs={12} md={3} lg={3}
  106. sx={{ display: 'flex', alignItems: 'center' }}>
  107. <FormLabel>Applicant:</FormLabel>
  108. </Grid>
  109. <Grid item xs={12} md={9} lg={9}>
  110. <FormControl variant="outlined" fullWidth disabled >
  111. {data.orgId === null ?
  112. <DisplayField name="contactPerson" />
  113. :
  114. <DisplayField name="applicant" />
  115. }
  116. </FormControl>
  117. </Grid>
  118. </Grid>
  119. </Grid>
  120. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  121. <Grid container alignItems={"center"}>
  122. <Grid item xs={12} md={3} lg={3}
  123. sx={{ display: 'flex', alignItems: 'center' }}>
  124. <FormLabel>Issue No:</FormLabel>
  125. </Grid>
  126. <Grid item xs={12} md={9} lg={9}>
  127. <DisplayField name="issueNoStr" />
  128. </Grid>
  129. </Grid>
  130. </Grid>
  131. </Grid>
  132. <Grid container direction="row" justifyContent="space-between"
  133. alignItems="center">
  134. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1 }}>
  135. <Grid container alignItems={"center"}>
  136. <Grid item xs={12} md={3} lg={3}
  137. sx={{ display: 'flex', alignItems: 'center' }}>
  138. <FormLabel>Contact Person:</FormLabel>
  139. </Grid>
  140. <Grid item xs={12} md={9} lg={9}>
  141. <DisplayField name="contactPerson" />
  142. </Grid>
  143. </Grid>
  144. </Grid>
  145. <Grid item xs={12} md={5} lg={5} sx={{ mb: 1, ml: 1 }}>
  146. <Grid container alignItems={"center"}>
  147. <Grid item xs={12} md={3} lg={3}
  148. sx={{ display: 'flex', alignItems: 'center' }}>
  149. <FormLabel>Issue Date:</FormLabel>
  150. </Grid>
  151. <Grid item xs={12} md={9} lg={9}>
  152. <DisplayField name="issueDateStr" />
  153. </Grid>
  154. </Grid>
  155. </Grid>
  156. </Grid>
  157. {/* <Grid container direction="row" justifyContent="space-between"
  158. alignItems="center">
  159. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>
  160. <Grid container alignItems="left">
  161. <Grid item xs={12} md={3} lg={3}
  162. sx={{ display: 'flex', alignItems: 'center' }}>
  163. <FormLabel>Remarks:</FormLabel>
  164. </Grid>
  165. <Grid item xs={12} md={9} lg={9}>
  166. <Stack direction="row">
  167. <DisplayField name="appRemarks" />
  168. </Stack>
  169. </Grid>
  170. </Grid>
  171. </Grid>
  172. </Grid> */}
  173. <Grid container direction="row" justifyContent="space-between"
  174. alignItems="center">
  175. <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>
  176. <Grid container alignItems={"center"}>
  177. <Grid item xs={12} md={12} lg={12} sx={{ display: 'flex', alignItems: 'center' }}>
  178. <Typography>Print file:</Typography>
  179. </Grid>
  180. </Grid>
  181. <FileList
  182. refId={params.id}
  183. refType={"proof"}
  184. dateHideable={true}
  185. disablePagination
  186. disableSelectionOnClick
  187. disableColumnMenu
  188. disableColumnSelector
  189. hideFooter
  190. />
  191. </Grid>
  192. <Grid item xs={12} md={4} lg={4} sx={{ mb: 1, }}>
  193. <Grid container alignItems={"center"}>
  194. <Grid item xs={12} md={12} lg={12}
  195. sx={{ display: 'flex', alignItems: 'center' }}>
  196. <Typography>Deadline for payment and reply:</Typography>
  197. </Grid>
  198. <Grid item xs={12} md={12} lg={12} sx={{ mb: 4, display: 'flex', alignItems: 'center' }}>
  199. <Typography>{DateUtils.dateStr(data.returnBeforeDate)} Before 2:00 PM</Typography>
  200. </Grid>
  201. <Grid item xs={12} md={3} lg={3}
  202. sx={{ mb: 1, display: 'flex', alignItems: 'center' }}>
  203. <Typography>Fee:</Typography>
  204. </Grid>
  205. <Grid item xs={12} md={9} lg={9} sx={{ mb: 1, display: 'flex', alignItems: 'center' }}>
  206. <Typography style={{ color: "blue", fontWeight: "bold", }}>{currencyFormat(data.fee)}</Typography>
  207. </Grid>
  208. <Grid item xs={12} md={12} lg={12} sx={{ mb: 4, display: 'flex', alignItems: 'center' }}>
  209. {
  210. formik.values.groupType == "A"
  211. ?
  212. <Typography>( {data.noOfPages} page x $6,552 )</Typography>
  213. :
  214. <Typography>( {data.length} cm x {data.colCount == 2 ? "$364 Double Column" : "$182 Single Column"} )</Typography>
  215. }
  216. </Grid>
  217. </Grid>
  218. </Grid>
  219. </Grid>
  220. </Grid>
  221. </Grid>
  222. </form>
  223. </MainCard>
  224. );
  225. };
  226. export default ApplicationDetailCard;