summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/risk-management/service.ts42
-rw-r--r--lib/risk-management/table/risks-dashboard.tsx6
-rw-r--r--lib/risk-management/table/risks-date-range-picker.tsx2
-rw-r--r--lib/risk-management/table/risks-mail-dialog.tsx15
-rw-r--r--lib/risk-management/table/risks-table-toolbar-actions.tsx14
-rw-r--r--lib/risk-management/table/risks-update-sheet.tsx12
-rw-r--r--lib/risk-management/table/user-combo-box.tsx2
7 files changed, 46 insertions, 47 deletions
diff --git a/lib/risk-management/service.ts b/lib/risk-management/service.ts
index a0efb892..62b18060 100644
--- a/lib/risk-management/service.ts
+++ b/lib/risk-management/service.ts
@@ -249,7 +249,7 @@ async function sendRiskEmail(
return { vendorList: selectRes };
});
if (vendorList.length === 0) {
- throw new Error('존재하지 않는 협력업체에요. 다시 한 번 확인해주세요.');
+ throw new Error('존재하지 않는 협력업체입니다. 다시 한 번 확인해주십시오.');
}
const { vendorName, vendorCode, taxId } = vendorList[0];
const businessNumber = /^\d{10}$/.test(taxId)
@@ -270,7 +270,7 @@ async function sendRiskEmail(
}));
});
if (!procurementManagerList || procurementManagerList.length === 0) {
- throw new Error('해당하는 구매 담당자가 존재하지 않아요.');
+ throw new Error('해당하는 구매 담당자가 존재하지 않습니다.');
}
const procurementManager = procurementManagerList[0];
@@ -289,7 +289,7 @@ async function sendRiskEmail(
}));
});
if (!riskManagerList || riskManagerList.length === 0) {
- throw new Error('해당하는 리스크 관리 담당자가 존재하지 않아요.');
+ throw new Error('해당하는 리스크 관리 담당자가 존재하지 않습니다.');
}
const riskManager = riskManagerList[0];
@@ -387,12 +387,12 @@ async function generateRiskEventsTemplate(): Promise<ArrayBuffer> {
const exampleData = [
{
- eventType: '리스크 항목을 입력하세요.',
- vendorName: '협력업체명을 입력하세요.',
- businessNumber: '사업자등록번호를 입력하세요.',
- provider: '신용평가사를 입력하세요.',
- content: '상세 내용을 입력하세요.',
- occuredAt: '발생일자를 YYYY-MM-DD형식으로 입력하세요.'
+ eventType: '리스크 항목을 입력하십시오.',
+ vendorName: '협력업체명을 입력하십시오.',
+ businessNumber: '사업자등록번호를 입력하십시오.',
+ provider: '신용평가사를 입력하십시오.',
+ content: '상세 내용을 입력하십시오.',
+ occuredAt: '발생일자를 YYYY-MM-DD형식으로 입력하십시오.'
},
];
@@ -455,7 +455,7 @@ async function importRiskEventsExcel(file: File): Promise<{
const worksheet = workbook.getWorksheet(1);
if (!worksheet) {
- return { errorMessage: '워크시트를 찾을 수 없어요.' };
+ return { errorMessage: '워크시트를 찾을 수 없습니다.' };
}
const errors: string[] = [];
const importDataList: {
@@ -471,7 +471,7 @@ async function importRiskEventsExcel(file: File): Promise<{
const rows = worksheet.getRows(2, worksheet.rowCount - 1);
if (!rows) {
- return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않아요.' };
+ return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않습니다.' };
}
for (const [index, row] of rows.entries()) {
@@ -513,20 +513,20 @@ async function importRiskEventsExcel(file: File): Promise<{
}
if (!rowData.eventType || !rowData.vendorName || !rowData.businessNumber || !rowData.provider || !rowData.occuredAt) {
- errors.push(`행 ${rowIndex}: 필수 필드(항목, 협력업체명, 사업자등록번호, 신용평가사, 발생일자)가 누락되었어요.`);
+ errors.push(`행 ${rowIndex}: 필수 필드(항목, 협력업체명, 사업자등록번호, 신용평가사, 발생일자)가 누락되었습니다.`);
continue;
}
rowData.businessNumber = rowData.businessNumber.replace(/\D/g, '');
if (rowData.businessNumber.length !== 10) {
- errors.push(`행 ${rowIndex}: 사업자등록번호는 숫자 10자리여야 해요.`);
+ errors.push(`행 ${rowIndex}: 사업자등록번호는 숫자 10자리여야 합니다.`);
continue;
}
const datePattern = /^\d{4}-\d{2}-\d{2}$/;
if (!datePattern.test(rowData.occuredAt)) {
- errors.push(`행 ${rowIndex}: 발생일자는 YYYY-MM-DD 형식이어야 해요.`);
+ errors.push(`행 ${rowIndex}: 발생일자는 YYYY-MM-DD 형식이어야 합니다.`);
continue;
}
@@ -537,7 +537,7 @@ async function importRiskEventsExcel(file: File): Promise<{
dateObj.getMonth() + 1 !== month ||
dateObj.getDate() !== day
) {
- errors.push(`행 ${rowIndex}: 발생일자가 올바른 날짜가 아니에요.`);
+ errors.push(`행 ${rowIndex}: 발생일자가 올바른 날짜가 아닙니다.`);
continue;
}
@@ -550,7 +550,7 @@ async function importRiskEventsExcel(file: File): Promise<{
});
if (vendorList.length === 0) {
- errors.push(`행 ${rowIndex}: 협력업체로 등록되지 않은 사업자등록번호에요. 다시 한 번 확인해주세요.`);
+ errors.push(`행 ${rowIndex}: 협력업체로 등록되지 않은 사업자등록번호입니다. 다시 한 번 확인해주십시오.`);
continue;
}
@@ -559,7 +559,7 @@ async function importRiskEventsExcel(file: File): Promise<{
importDataList.push(rowData);
} catch (error) {
- errors.push(`행 ${rowIndex}: 데이터 처리 중 오류가 발생했어요 - ${error}`);
+ errors.push(`행 ${rowIndex}: 데이터 처리 중 오류가 발생했습니다 - ${error}`);
}
}
@@ -589,12 +589,12 @@ async function importRiskEventsExcel(file: File): Promise<{
return {
errorFile,
- errorMessage: `${errors.length}개의 오류가 발견되었어요. 오류 파일을 확인하세요.`
+ errorMessage: `${errors.length}개의 오류가 발견되었습니다. 오류 파일을 확인하십시오.`
};
}
if (importDataList.length === 0) {
- return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않아요. 파일을 다시 한 번 확인해주세요.' };
+ return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않습니다. 파일을 다시 한 번 확인해주십시오.' };
}
const currentUserId = await getCurrentUserId();
@@ -614,10 +614,10 @@ async function importRiskEventsExcel(file: File): Promise<{
});
}
- return { successMessage: `Excel 파일이 성공적으로 업로드되었어요. ${importDataList.length}개의 리스크 이벤트가 추가되었어요.` };
+ return { successMessage: `Excel 파일이 성공적으로 업로드되었습니다. ${importDataList.length}개의 리스크 이벤트가 추가되었습니다.` };
} catch (error) {
console.error('Error in Importing Regular Evaluation Criteria from Excel:', error);
- return { errorMessage: 'Excel 파일 처리 중 오류가 발생했어요.' };
+ return { errorMessage: 'Excel 파일 처리 중 오류가 발생했습니다.' };
}
}
diff --git a/lib/risk-management/table/risks-dashboard.tsx b/lib/risk-management/table/risks-dashboard.tsx
index 1f26d48a..f0ac3753 100644
--- a/lib/risk-management/table/risks-dashboard.tsx
+++ b/lib/risk-management/table/risks-dashboard.tsx
@@ -99,7 +99,7 @@ function RisksDashboard(props: RisksDashboardProps) {
flags: [],
page: 1,
perPage: 10,
- sort: [{ id: 'createdAt', desc: true }],
+ sort: [{ id: 'occuredAt', desc: true }],
};
const { count } = await getRisksViewCount(searchParams as any);
@@ -114,7 +114,7 @@ function RisksDashboard(props: RisksDashboardProps) {
setCounts(newCounts);
} catch (error) {
- console.error('리스크 데이터 개수 조회에 실패했어요:', error);
+ console.error('리스크 데이터 개수 조회에 실패했습니다:', error);
const resetCounts: CountData = {};
targetValues.forEach(value => {
resetCounts[value] = 0;
@@ -196,7 +196,7 @@ function RisksDashboard(props: RisksDashboardProps) {
<CardContent>
{chartData.filter(item => item.count > 0).length === 0 ? (
<div className="flex items-center justify-center h-[300px] text-gray-500">
- 주요 리스크가 존재하지 않아요.
+ 주요 리스크가 존재하지 않습니다.
</div>
) : (
<ChartContainer config={chartConfig} className="h-[300px]">
diff --git a/lib/risk-management/table/risks-date-range-picker.tsx b/lib/risk-management/table/risks-date-range-picker.tsx
index 96acff6c..8cb192a9 100644
--- a/lib/risk-management/table/risks-date-range-picker.tsx
+++ b/lib/risk-management/table/risks-date-range-picker.tsx
@@ -34,7 +34,7 @@ interface RisksDateRangePickerProps extends ComponentPropsWithoutRef<typeof Popo
function RisksDateRangePicker(props: RisksDateRangePickerProps) {
const {
defaultDateRange,
- placeholder = '날짜를 선택하세요.',
+ placeholder = '날짜를 선택하십시오.',
triggerVariant = 'outline',
triggerSize = 'default',
triggerClassName,
diff --git a/lib/risk-management/table/risks-mail-dialog.tsx b/lib/risk-management/table/risks-mail-dialog.tsx
index 02c470ce..d6743a0c 100644
--- a/lib/risk-management/table/risks-mail-dialog.tsx
+++ b/lib/risk-management/table/risks-mail-dialog.tsx
@@ -74,18 +74,17 @@ import { useEffect, useMemo, useState, useTransition } from 'react';
import UserComboBox from './user-combo-box';
import { z } from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';
-import { se } from 'date-fns/locale';
// ----------------------------------------------------------------------------------------------------
/* TYPES */
const risksMailFormSchema = z.object({
- managerId: z.number({ required_error: '구매 담당자를 반드시 선택해야 해요.' }),
- adminComment: z.string().min(1, { message: '구매 담당자 의견을 반드시 작성해야 해요.' }),
+ managerId: z.number({ required_error: '구매 담당자를 반드시 선택해야 합니다.' }),
+ adminComment: z.string().min(1, { message: '구매 담당자 의견을 반드시 작성해야 합니다.' }),
attachment: z
.instanceof(File)
.refine((file) => file.size <= 10485760, {
- message: '파일 크기는 10MB를 초과할 수 없어요.',
+ message: '파일 크기는 10MB를 초과할 수 없습니다.',
})
.optional(),
});
@@ -225,7 +224,7 @@ function RisksMailDialog(props: RisksMailDialogProps) {
startTransition(async () => {
try {
if (!selectedVendorId) {
- throw Error('선택된 협력업체가 존재하지 않아요.');
+ throw Error('선택된 협력업체가 존재하지 않습니다.');
}
const newRiskEventData = {
@@ -343,7 +342,7 @@ function RisksMailDialog(props: RisksMailDialogProps) {
<Card className="w-full">
<CardHeader>
<CardTitle>리스크 정보</CardTitle>
- <CardDescription>메일로 전송할 리스크 정보를 선택하세요.</CardDescription>
+ <CardDescription>메일로 전송할 리스크 정보를 선택하십시오.</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
{Object.entries(
@@ -449,7 +448,7 @@ function RisksMailDialog(props: RisksMailDialogProps) {
<FormItem>
<FormControl>
<Textarea
- placeholder="관리 담당자 의견을 입력하세요."
+ placeholder="관리 담당자 의견을 입력하십시오."
{...field}
value={field.value ?? ''}
/>
@@ -541,7 +540,7 @@ function RisksMailDialog(props: RisksMailDialogProps) {
취소
</Button>
<Button type="submit" disabled={isPending || isLoadingManagerList}>
- {isLoadingManagerList ? '로딩 중...' : isPending ? '저장 중...' : '메일 발송'}
+ {isLoadingManagerList ? '로딩 중...' : isPending ? '발송 중...' : '메일 발송'}
</Button>
</DialogFooter>
</form>
diff --git a/lib/risk-management/table/risks-table-toolbar-actions.tsx b/lib/risk-management/table/risks-table-toolbar-actions.tsx
index 2d4ba2d4..a55634b5 100644
--- a/lib/risk-management/table/risks-table-toolbar-actions.tsx
+++ b/lib/risk-management/table/risks-table-toolbar-actions.tsx
@@ -36,11 +36,11 @@ function RisksTableToolbarActions(props: RisksTableToolbarActionsProps) {
async function onFileChange(event: ChangeEvent<HTMLInputElement>) {
const file = event.target.files?.[0];
if (!file) {
- toast.error('가져올 파일을 선택해주세요.');
+ toast.error('가져올 파일을 선택해주십시오.');
return;
}
if (!file.name.endsWith('.xlsx') && !file.name.endsWith('.xls')) {
- toast.error('.xlsx 또는 .xls 확장자인 Excel 파일만 업로드 가능해요.');
+ toast.error('.xlsx 또는 .xls 확장자인 Excel 파일만 업로드 가능합니다.');
return;
}
event.target.value = '';
@@ -60,7 +60,7 @@ function RisksTableToolbarActions(props: RisksTableToolbarActionsProps) {
URL.revokeObjectURL(url);
}
} else {
- toast.success(successMessage || 'Excel 파일이 성공적으로 업로드되었어요.');
+ toast.success(successMessage || 'Excel 파일이 성공적으로 업로드되었습니다.');
}
} catch (error) {
toast.error('Excel 파일을 업로드하는 중 오류가 발생했습니다.');
@@ -77,10 +77,10 @@ function RisksTableToolbarActions(props: RisksTableToolbarActionsProps) {
filename: '협력업체_리스크_관리',
excludeColumns: ['id', 'actions'],
});
- toast.success('Excel 파일이 다운로드되었어요.');
+ toast.success('Excel 파일이 다운로드되었습니다.');
} catch (error) {
console.error('Error in Exporting to Excel: ', error);
- toast.error('Excel 파일 내보내기 중 오류가 발생했어요.');
+ toast.error('Excel 파일 내보내기 중 오류가 발생했습니다.');
}
};
@@ -97,10 +97,10 @@ function RisksTableToolbarActions(props: RisksTableToolbarActionsProps) {
link.download = "협력업체_리스크_템플릿.xlsx";
link.click();
URL.revokeObjectURL(url);
- toast.success('템플릿 파일이 다운로드되었어요.');
+ toast.success('템플릿 파일이 다운로드되었습니다.');
} catch (error) {
console.error('Error in Template Download: ', error);
- toast.error('템플릿 다운로드 중 오류가 발생했어요.');
+ toast.error('템플릿 다운로드 중 오류가 발생했습니다.');
}
};
diff --git a/lib/risk-management/table/risks-update-sheet.tsx b/lib/risk-management/table/risks-update-sheet.tsx
index 727a7634..f4caba63 100644
--- a/lib/risk-management/table/risks-update-sheet.tsx
+++ b/lib/risk-management/table/risks-update-sheet.tsx
@@ -122,7 +122,7 @@ function RisksUpdateSheet(props: RisksUpdateSheetProps) {
}
} catch (error) {
console.error('Error in Loading Risk Event for Updating:', error);
- toast.error(error instanceof Error ? error.message : '편집할 데이터를 불러오는 데 실패했어요.');
+ toast.error(error instanceof Error ? error.message : '편집할 데이터를 불러오는 데 실패했습니다.');
} finally {
setIsLoadingManagerList(false);
}
@@ -143,13 +143,13 @@ function RisksUpdateSheet(props: RisksUpdateSheetProps) {
adminComment: !data.eventStatus ? null : data.adminComment || null,
};
await modifyRiskEvents(riskData.id, newRiskEventData);
- toast.success('리스크 이벤트가 수정되었어요.');
+ toast.success('리스크 이벤트가 수정되었습니다.');
onSuccess();
onOpenChange(false);
} catch (error) {
console.error('Error in Saving Risk Event:', error);
toast.error(
- error instanceof Error ? error.message : '리스크 이벤트 저장 중 오류가 발생했어요.',
+ error instanceof Error ? error.message : '리스크 이벤트 저장 중 오류가 발생했습니다.',
);
}
})
@@ -167,7 +167,7 @@ function RisksUpdateSheet(props: RisksUpdateSheetProps) {
리스크 정보 관리
</SheetTitle>
<SheetDescription>
- 리스크 정보를 수정할 수 있어요.
+ 리스크 정보를 수정할 수 있습니다.
</SheetDescription>
</SheetHeader>
<Form {...form}>
@@ -270,7 +270,7 @@ function RisksUpdateSheet(props: RisksUpdateSheetProps) {
<FormLabel>상세 내용</FormLabel>
<FormControl>
<Textarea
- placeholder="상세 내용을 입력하세요."
+ placeholder="상세 내용을 입력하십시오."
{...field}
value={field.value ?? ''}
/>
@@ -364,7 +364,7 @@ function RisksUpdateSheet(props: RisksUpdateSheetProps) {
<FormItem>
<FormControl>
<Textarea
- placeholder="관리 담당자 의견을 입력하세요."
+ placeholder="관리 담당자 의견을 입력하십시오."
{...field}
value={field.value ?? ''}
/>
diff --git a/lib/risk-management/table/user-combo-box.tsx b/lib/risk-management/table/user-combo-box.tsx
index e319b538..30ffb11a 100644
--- a/lib/risk-management/table/user-combo-box.tsx
+++ b/lib/risk-management/table/user-combo-box.tsx
@@ -82,7 +82,7 @@ function UserComboBox(props: UserComboBoxProps) {
value={inputValue}
onValueChange={setInputValue}
/>
- <CommandEmpty>검색 결과가 존재하지 않아요.</CommandEmpty>
+ <CommandEmpty>검색 결과가 존재하지 않습니다.</CommandEmpty>
<CommandGroup className="max-h-[200px] overflow-y-auto">
{users.map((user) => (
<CommandItem