FPSMS-frontend
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

125 satır
3.1 KiB

  1. "use client";
  2. import { StockInLineEntry, EscalationInput } from "@/app/api/po/actions";
  3. import {
  4. Box,
  5. Card,
  6. CardContent,
  7. Grid,
  8. Stack,
  9. TextField,
  10. Tooltip,
  11. Typography,
  12. } from "@mui/material";
  13. import { useFormContext } from "react-hook-form";
  14. import { useTranslation } from "react-i18next";
  15. import StyledDataGrid from "../StyledDataGrid";
  16. import { useCallback, useEffect, useMemo } from "react";
  17. import {
  18. GridColDef,
  19. GridRowIdGetter,
  20. GridRowModel,
  21. useGridApiContext,
  22. GridRenderCellParams,
  23. GridRenderEditCellParams,
  24. useGridApiRef,
  25. } from "@mui/x-data-grid";
  26. import InputDataGrid from "../InputDataGrid";
  27. import { TableRow } from "../InputDataGrid/InputDataGrid";
  28. import TwoLineCell from "./TwoLineCell";
  29. import QcSelect from "./QcSelect";
  30. import { QcItemWithChecks } from "@/app/api/qc";
  31. import { GridEditInputCell } from "@mui/x-data-grid";
  32. import { StockInLine } from "@/app/api/po";
  33. import { stockInLineStatusMap } from "@/app/utils/formatUtil";
  34. interface Props {
  35. itemDetail: StockInLine;
  36. // qc: QcItemWithChecks[];
  37. disabled: boolean;
  38. }
  39. type EntryError =
  40. | {
  41. [field in keyof StockInLineEntry]?: string;
  42. }
  43. | undefined;
  44. const RejectForm: React.FC<Props> = ({
  45. // qc,
  46. itemDetail,
  47. disabled,
  48. }) => {
  49. const { t } = useTranslation("purchaseOrder");
  50. const apiRef = useGridApiRef();
  51. const {
  52. register,
  53. formState: { errors, defaultValues, touchedFields },
  54. watch,
  55. control,
  56. setValue,
  57. getValues,
  58. reset,
  59. resetField,
  60. setError,
  61. clearErrors,
  62. } = useFormContext<EscalationInput>();
  63. console.log(itemDetail);
  64. // const status = "rejected"
  65. const acceptedQty = watch("acceptedQty") || 0;
  66. console.log(disabled);
  67. useEffect(() => {
  68. console.log("triggered");
  69. setValue("status", "rejected");
  70. }, []);
  71. return (
  72. <Grid container justifyContent="flex-start" alignItems="flex-start">
  73. <Grid item xs={12}>
  74. <Typography variant="h6" display="block" marginBlockEnd={1}>
  75. {t(`Reject`)}
  76. </Typography>
  77. </Grid>
  78. <Grid item xs={12}>
  79. <Typography variant="h6" display="block" marginBlockEnd={1}>
  80. {t(`to be processed`)}: {itemDetail.acceptedQty - acceptedQty}
  81. </Typography>
  82. </Grid>
  83. <Grid
  84. container
  85. justifyContent="flex-start"
  86. alignItems="flex-start"
  87. spacing={2}
  88. sx={{ mt: 0.5 }}
  89. >
  90. <Grid item xs={6}>
  91. <TextField
  92. label={t("acceptedQty")}
  93. fullWidth
  94. {...register("acceptedQty", {
  95. required: "acceptedQty required!",
  96. min: 0,
  97. valueAsNumber: true,
  98. max: itemDetail.acceptedQty,
  99. })}
  100. disabled={disabled}
  101. defaultValue={itemDetail.acceptedQty}
  102. error={Boolean(errors.acceptedQty)}
  103. helperText={errors.acceptedQty?.message}
  104. />
  105. </Grid>
  106. </Grid>
  107. <Grid
  108. container
  109. justifyContent="flex-start"
  110. alignItems="flex-start"
  111. spacing={2}
  112. sx={{ mt: 0.5 }}
  113. ></Grid>
  114. </Grid>
  115. );
  116. };
  117. export default RejectForm;