2 커밋

20개의 변경된 파일38개의 추가작업 그리고 47개의 파일을 삭제
통합 보기
  1. +5
    -5
      next.config.js
  2. +0
    -12
      src/app/api/settings/item/actions.ts
  3. +1
    -1
      src/components/DoSave/index.ts
  4. +1
    -1
      src/components/InventorySearch/InventorySearch.tsx
  5. +4
    -3
      src/components/LoginPage/LoginForm.tsx
  6. +4
    -4
      src/components/MailSetting/TimesheetMailDetails.tsx
  7. +2
    -2
      src/components/PickOrderDetail/ApprovalForm.tsx
  8. +1
    -1
      src/components/PickOrderDetail/QcContent.tsx
  9. +2
    -2
      src/components/PickOrderDetail/QcForm.tsx
  10. +1
    -1
      src/components/PickOrderSearch/ConsolidatePickOrderItemSum.tsx
  11. +1
    -1
      src/components/PickOrderSearch/ConsolidatePickOrderSum.tsx
  12. +2
    -2
      src/components/PickOrderSearch/ConsolidatedPickOrders.tsx
  13. +1
    -1
      src/components/PickOrderSearch/PickOrderSearch.tsx
  14. +1
    -1
      src/components/PickOrderSearch/PickOrderSearchWrapper.tsx
  15. +2
    -2
      src/components/PickOrderSearch/PickOrders.tsx
  16. +1
    -1
      src/components/ProductionProcess/DefectsSection.tsx
  17. +2
    -2
      src/components/RoughScheduleSetting/RoughScheduleSetting.tsx
  18. +3
    -2
      src/components/SearchBox/MultiSelect.tsx
  19. +3
    -2
      src/components/SearchBox/SearchBox.tsx
  20. +1
    -1
      src/components/UserSearch/UserSearch.tsx

+ 5
- 5
next.config.js 파일 보기

@@ -9,11 +9,11 @@ const withPWA = require("next-pwa")({
}); });


const nextConfig = { const nextConfig = {
// eslint: {
// // Warning: This allows production builds to successfully complete even if
// // your project has ESLint errors.
// ignoreDuringBuilds: true,
// },
eslint: {
// Warning: This allows production builds to successfully complete even if
// your project has ESLint errors.
ignoreDuringBuilds: true,
},
}; };


module.exports = withPWA(nextConfig); module.exports = withPWA(nextConfig);

+ 0
- 12
src/app/api/settings/item/actions.ts 파일 보기

@@ -37,17 +37,6 @@ export type CreateItemInputs = {
}; };


export const saveItem = async (data: CreateItemInputs) => { export const saveItem = async (data: CreateItemInputs) => {
<<<<<<< HEAD
// try {
const item = await serverFetchJson<CreateItemResponse<CreateItemInputs>>(`${BASE_API_URL}/items/new`, {
method: "POST",
body: JSON.stringify(data),
headers: { "Content-Type": "application/json" },
});
revalidateTag("items");
return item
};
=======
// try { // try {
const item = await serverFetchJson<CreateItemResponse<CreateItemInputs>>( const item = await serverFetchJson<CreateItemResponse<CreateItemInputs>>(
`${BASE_API_URL}/items/new`, `${BASE_API_URL}/items/new`,
@@ -60,4 +49,3 @@ export const saveItem = async (data: CreateItemInputs) => {
revalidateTag("items"); revalidateTag("items");
return item; return item;
}; };
>>>>>>> 5c6e25f78f79bd44c563ec67c6ec9d59f2a7baed

+ 1
- 1
src/components/DoSave/index.ts 파일 보기

@@ -1 +1 @@
export default from "./DoSaveWrapper"
// export default from "./DoSaveWrapper"

+ 1
- 1
src/components/InventorySearch/InventorySearch.tsx 파일 보기

@@ -153,7 +153,7 @@ const InventorySearch: React.FC<Props> = ({ inventories }) => {
pagingController={{ pagingController={{
pageNum: 0, pageNum: 0,
pageSize: 0, pageSize: 0,
totalCount: 0,
// totalCount: 0,
}} }}
/> />
</> </>


+ 4
- 3
src/components/LoginPage/LoginForm.tsx 파일 보기

@@ -24,6 +24,7 @@ type LoginFields = {
type SessionWithAbilities = type SessionWithAbilities =
| ({ | ({
abilities: string[]; abilities: string[];
accessToken?: string;
} & Session) } & Session)
| null; | null;


@@ -73,9 +74,9 @@ const LoginForm: React.FC = () => {
// set auth to local storage // set auth to local storage
const session = (await getSession()) as SessionWithAbilities; const session = (await getSession()) as SessionWithAbilities;
// @ts-ignore // @ts-ignore
window.localStorage.setItem("accessToken", session?.accessToken);
setAccessToken(session?.accessToken);
SetupAxiosInterceptors(session?.accessToken);
window.localStorage.setItem("accessToken", session?.accessToken ?? "");
setAccessToken(session?.accessToken ?? null);
SetupAxiosInterceptors(session?.accessToken ?? null);
// console.log(session) // console.log(session)
window.localStorage.setItem( window.localStorage.setItem(
"abilities", "abilities",


+ 4
- 4
src/components/MailSetting/TimesheetMailDetails.tsx 파일 보기

@@ -34,7 +34,7 @@ const TimesheetMailDetails: React.FC<Props> = ({ isActive }) => {
{t("Timesheet Template")} {t("Timesheet Template")}
</Typography> </Typography>
<Grid container spacing={2} columns={{ xs: 6, sm: 12 }}> <Grid container spacing={2} columns={{ xs: 6, sm: 12 }}>
<Grid item xs={8}>
{/* <Grid item xs={8}>
<TextField <TextField
label={t("Cc")} label={t("Cc")}
fullWidth fullWidth
@@ -57,7 +57,7 @@ const TimesheetMailDetails: React.FC<Props> = ({ isActive }) => {
})} })}
error={Boolean(errors.template?.subject)} error={Boolean(errors.template?.subject)}
/> />
</Grid>
</Grid> */}
<Grid item xs={8}> <Grid item xs={8}>
<TextField <TextField
label={t("Required Params")} label={t("Required Params")}
@@ -67,7 +67,7 @@ const TimesheetMailDetails: React.FC<Props> = ({ isActive }) => {
// error={Boolean(errors.template?.template)} // error={Boolean(errors.template?.template)}
/> />
</Grid> </Grid>
<Grid item xs={12}>
{/* <Grid item xs={12}>
<Controller <Controller
control={control} control={control}
name="template.template" name="template.template"
@@ -83,7 +83,7 @@ const TimesheetMailDetails: React.FC<Props> = ({ isActive }) => {
validate: (value) => value?.includes("${date}"), validate: (value) => value?.includes("${date}"),
}} }}
/> />
</Grid>
</Grid> */}
</Grid> </Grid>
</Box> </Box>
</CardContent> </CardContent>


+ 2
- 2
src/components/PickOrderDetail/ApprovalForm.tsx 파일 보기

@@ -5,14 +5,14 @@ import {
PickOrderQcInput, PickOrderQcInput,
updateStockOutLine, updateStockOutLine,
UpdateStockOutLine, UpdateStockOutLine,
} from "@/app/api/pickorder/actions";
} from "@/app/api/pickOrder/actions";
import { FormProvider, SubmitHandler, useForm } from "react-hook-form"; import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
import QcContent from "./QcContent"; import QcContent from "./QcContent";
import { Box, Button, Modal, ModalProps, Stack } from "@mui/material"; import { Box, Button, Modal, ModalProps, Stack } from "@mui/material";
import { useCallback } from "react"; import { useCallback } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Check } from "@mui/icons-material"; import { Check } from "@mui/icons-material";
import { StockOutLine } from "@/app/api/pickorder";
import { StockOutLine } from "@/app/api/pickOrder";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { INPUT_DATE_FORMAT, OUTPUT_TIME_FORMAT } from "@/app/utils/formatUtil"; import { INPUT_DATE_FORMAT, OUTPUT_TIME_FORMAT } from "@/app/utils/formatUtil";
import ApprovalContent from "./ApprovalContent"; import ApprovalContent from "./ApprovalContent";


+ 1
- 1
src/components/PickOrderDetail/QcContent.tsx 파일 보기

@@ -36,7 +36,7 @@ import { NEXT_PUBLIC_API_URL } from "@/config/api";
import axiosInstance from "@/app/(main)/axios/axiosInstance"; import axiosInstance from "@/app/(main)/axios/axiosInstance";
import TwoLineCell from "../PoDetail/TwoLineCell"; import TwoLineCell from "../PoDetail/TwoLineCell";
import QcSelect from "../PoDetail/QcSelect"; import QcSelect from "../PoDetail/QcSelect";
import { PickOrderQcInput } from "@/app/api/pickorder/actions";
import { PickOrderQcInput } from "@/app/api/pickOrder/actions";


interface Props { interface Props {
qcDefaultValues: PickOrderQcInput; qcDefaultValues: PickOrderQcInput;


+ 2
- 2
src/components/PickOrderDetail/QcForm.tsx 파일 보기

@@ -4,14 +4,14 @@ import {
PickOrderQcInput, PickOrderQcInput,
updateStockOutLine, updateStockOutLine,
UpdateStockOutLine, UpdateStockOutLine,
} from "@/app/api/pickorder/actions";
} from "@/app/api/pickOrder/actions";
import { FormProvider, SubmitHandler, useForm } from "react-hook-form"; import { FormProvider, SubmitHandler, useForm } from "react-hook-form";
import QcContent from "./QcContent"; import QcContent from "./QcContent";
import { Box, Button, Modal, ModalProps, Stack } from "@mui/material"; import { Box, Button, Modal, ModalProps, Stack } from "@mui/material";
import { useCallback } from "react"; import { useCallback } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Check } from "@mui/icons-material"; import { Check } from "@mui/icons-material";
import { StockOutLine } from "@/app/api/pickorder";
import { StockOutLine } from "@/app/api/pickOrder";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { INPUT_DATE_FORMAT, OUTPUT_TIME_FORMAT } from "@/app/utils/formatUtil"; import { INPUT_DATE_FORMAT, OUTPUT_TIME_FORMAT } from "@/app/utils/formatUtil";




+ 1
- 1
src/components/PickOrderSearch/ConsolidatePickOrderItemSum.tsx 파일 보기

@@ -12,7 +12,7 @@ import {
} from "react"; } from "react";
import { GridColDef } from "@mui/x-data-grid"; import { GridColDef } from "@mui/x-data-grid";
import { CircularProgress, Grid, Typography } from "@mui/material"; import { CircularProgress, Grid, Typography } from "@mui/material";
import { ByItemsSummary } from "@/app/api/pickorder";
import { ByItemsSummary } from "@/app/api/pickOrder";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";


dayjs.extend(arraySupport); dayjs.extend(arraySupport);


+ 1
- 1
src/components/PickOrderSearch/ConsolidatePickOrderSum.tsx 파일 보기

@@ -12,7 +12,7 @@ import {
} from "react"; } from "react";
import { GridColDef, GridInputRowSelectionModel } from "@mui/x-data-grid"; import { GridColDef, GridInputRowSelectionModel } from "@mui/x-data-grid";
import { Box, CircularProgress, Grid, Typography } from "@mui/material"; import { Box, CircularProgress, Grid, Typography } from "@mui/material";
import { PickOrderResult } from "@/app/api/pickorder";
import { PickOrderResult } from "@/app/api/pickOrder";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";


dayjs.extend(arraySupport); dayjs.extend(arraySupport);


+ 2
- 2
src/components/PickOrderSearch/ConsolidatedPickOrders.tsx 파일 보기

@@ -29,7 +29,7 @@ import {
ConsoPickOrderResult, ConsoPickOrderResult,
PickOrderLine, PickOrderLine,
PickOrderResult, PickOrderResult,
} from "@/app/api/pickorder";
} from "@/app/api/pickOrder";
import { useRouter, useSearchParams } from "next/navigation"; import { useRouter, useSearchParams } from "next/navigation";
import ConsolidatePickOrderItemSum from "./ConsolidatePickOrderItemSum"; import ConsolidatePickOrderItemSum from "./ConsolidatePickOrderItemSum";
import ConsolidatePickOrderSum from "./ConsolidatePickOrderSum"; import ConsolidatePickOrderSum from "./ConsolidatePickOrderSum";
@@ -39,7 +39,7 @@ import {
fetchConsoPickOrderClient, fetchConsoPickOrderClient,
releasePickOrder, releasePickOrder,
ReleasePickOrderInputs, ReleasePickOrderInputs,
} from "@/app/api/pickorder/actions";
} from "@/app/api/pickOrder/actions";
import { EditNote } from "@mui/icons-material"; import { EditNote } from "@mui/icons-material";
import { fetchNameList, NameList } from "@/app/api/user/actions"; import { fetchNameList, NameList } from "@/app/api/user/actions";
import { useField } from "@mui/x-date-pickers/internals"; import { useField } from "@mui/x-date-pickers/internals";


+ 1
- 1
src/components/PickOrderSearch/PickOrderSearch.tsx 파일 보기

@@ -1,5 +1,5 @@
"use client"; "use client";
import { PickOrderResult } from "@/app/api/pickorder";
import { PickOrderResult } from "@/app/api/pickOrder";
import { SearchParams } from "@/app/utils/fetchUtil"; import { SearchParams } from "@/app/utils/fetchUtil";
import { useCallback, useMemo, useState } from "react"; import { useCallback, useMemo, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";


+ 1
- 1
src/components/PickOrderSearch/PickOrderSearchWrapper.tsx 파일 보기

@@ -1,4 +1,4 @@
import { fetchPickOrders } from "@/app/api/pickorder";
import { fetchPickOrders } from "@/app/api/pickOrder";
import GeneralLoading from "../General/GeneralLoading"; import GeneralLoading from "../General/GeneralLoading";
import PickOrderSearch from "./PickOrderSearch"; import PickOrderSearch from "./PickOrderSearch";




+ 2
- 2
src/components/PickOrderSearch/PickOrders.tsx 파일 보기

@@ -1,6 +1,6 @@
import { Button, CircularProgress, Grid } from "@mui/material"; import { Button, CircularProgress, Grid } from "@mui/material";
import SearchResults, { Column } from "../SearchResults/SearchResults"; import SearchResults, { Column } from "../SearchResults/SearchResults";
import { PickOrderResult } from "@/app/api/pickorder";
import { PickOrderResult } from "@/app/api/pickOrder";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useCallback, useEffect, useMemo, useState } from "react"; import { useCallback, useEffect, useMemo, useState } from "react";
import { isEmpty, upperCase, upperFirst } from "lodash"; import { isEmpty, upperCase, upperFirst } from "lodash";
@@ -8,7 +8,7 @@ import { arrayToDateString } from "@/app/utils/formatUtil";
import { import {
consolidatePickOrder, consolidatePickOrder,
fetchPickOrderClient, fetchPickOrderClient,
} from "@/app/api/pickorder/actions";
} from "@/app/api/pickOrder/actions";
import useUploadContext from "../UploadProvider/useUploadContext"; import useUploadContext from "../UploadProvider/useUploadContext";


interface Props { interface Props {


+ 1
- 1
src/components/ProductionProcess/DefectsSection.tsx 파일 보기

@@ -37,7 +37,7 @@ const DefectsSection: React.FC<DefectsSectionProps> = ({
if (defectToAdd) { if (defectToAdd) {
// Check for duplicate code (skip if code is empty) // Check for duplicate code (skip if code is empty)
const isDuplicate = const isDuplicate =
defectToAdd.code && defects.some((d) => d.code === defectToAdd.code);
defectToAdd.code && defects.some((d) => d.code === defectToAdd!.code);
if (!isDuplicate) { if (!isDuplicate) {
const updatedDefects = [...defects, defectToAdd]; const updatedDefects = [...defects, defectToAdd];
onDefectsChange(updatedDefects); onDefectsChange(updatedDefects);


+ 2
- 2
src/components/RoughScheduleSetting/RoughScheduleSetting.tsx 파일 보기

@@ -63,10 +63,10 @@ const RSSOverview: React.FC<Props> = ({ items }) => {


const searchCriteria: Criterion<SearchParamNames>[] = useMemo(() => { const searchCriteria: Criterion<SearchParamNames>[] = useMemo(() => {
const searchCriteria: Criterion<SearchParamNames>[] = [ const searchCriteria: Criterion<SearchParamNames>[] = [
{ label: t("Finished Goods Name"), paramName: "fgName", type: "text" },
{ label: t("Finished Goods Name"), paramName: "name", type: "text" },
{ {
label: t("Exclude Date"), label: t("Exclude Date"),
paramName: "excludeDate",
paramName: "shelfLife",
type: "select", type: "select",
options: ["qcChecks"], options: ["qcChecks"],
// selectedValues: filterObj, // selectedValues: filterObj,


+ 3
- 2
src/components/SearchBox/MultiSelect.tsx 파일 보기

@@ -18,6 +18,7 @@ interface MultiSelectProps {
options: Option[]; options: Option[];
selectedValues: number[]; selectedValues: number[];
onChange: (values: number[]) => void; onChange: (values: number[]) => void;
isReset?: boolean;
} }


const MultiSelect: React.FC<MultiSelectProps> = ({ const MultiSelect: React.FC<MultiSelectProps> = ({
@@ -49,13 +50,13 @@ const MultiSelect: React.FC<MultiSelectProps> = ({
<Select <Select
multiple multiple
value={displayValues} value={displayValues}
onChange={handleChange}
onChange={handleChange as any}
renderValue={(selected) => ( renderValue={(selected) => (
<Box sx={{ display: "flex", flexWrap: "wrap" }}> <Box sx={{ display: "flex", flexWrap: "wrap" }}>
{(selected as number[]).map((value) => ( {(selected as number[]).map((value) => (
<Chip <Chip
key={value} key={value}
label={options.find((item) => item.value == value).label}
label={options.find((item) => item.value == value)?.label ?? ""}
sx={{ margin: 0.5 }} sx={{ margin: 0.5 }}
/> />
))} ))}


+ 3
- 2
src/components/SearchBox/SearchBox.tsx 파일 보기

@@ -227,7 +227,8 @@ function SearchBox<T extends string>({
value={inputs[c.paramName]} value={inputs[c.paramName]}
/> />
)} )}
{c.type === "multi-select" && (
{/* eslint-disable-next-line @typescript-eslint/no-unused-vars */}
{/* {c.type === "multi-select" && (
<MultiSelect <MultiSelect
label={t(c.label)} label={t(c.label)}
options={c?.options} options={c?.options}
@@ -235,7 +236,7 @@ function SearchBox<T extends string>({
onChange={c.handleSelectionChange} onChange={c.handleSelectionChange}
isReset={isReset} isReset={isReset}
/> />
)}
)} */}
{c.type === "select" && ( {c.type === "select" && (
<FormControl fullWidth> <FormControl fullWidth>
<InputLabel>{t(c.label)}</InputLabel> <InputLabel>{t(c.label)}</InputLabel>


+ 1
- 1
src/components/UserSearch/UserSearch.tsx 파일 보기

@@ -88,7 +88,7 @@ const UserSearch: React.FC<Props> = ({ users }) => {
<SearchResults<UserResult> <SearchResults<UserResult>
items={filteredUser} items={filteredUser}
columns={columns} columns={columns}
pagingController={{ pageNum: 1, pageSize: 10, totalCount: 100 }}
pagingController={{ pageNum: 1, pageSize: 10 }}
/> />
</> </>
); );


불러오는 중...
취소
저장