feat(WEB): FCM 푸시 알림, 입금 등록, 견적 저장 개선

- 수주 상세 페이지에서 수주확정 시 FCM 푸시 알림 발송 추가
- FCM 프리셋 함수 추가: 계약완료, 발주완료 알림
- 입금 등록 시 입금일, 입금계좌, 입금자명, 입금금액 입력 가능
- 견적 저장 시 토스트 메시지 정상 표시 수정
- ShipmentCreate SelectItem key prop 경고 수정
- DevToolbar 문법 오류 수정
This commit is contained in:
2026-01-22 19:31:19 +09:00
parent 5a00828568
commit 92af11c787
12 changed files with 446 additions and 68 deletions

View File

@@ -6,37 +6,37 @@ import { getVendors } from './actions';
// ===== 필드 정의 =====
const fields: FieldDefinition[] = [
// 입금일 (readonly)
// 입금일
{
key: 'depositDate',
label: '입금일',
type: 'text',
readonly: true,
placeholder: '-',
type: 'date',
placeholder: '입금일을 선택해주세요',
disabled: (mode) => mode === 'view',
},
// 입금계좌 (readonly)
// 입금계좌
{
key: 'accountName',
label: '입금계좌',
type: 'text',
readonly: true,
placeholder: '-',
placeholder: '입금계좌를 입력해주세요',
disabled: (mode) => mode === 'view',
},
// 입금자명 (readonly)
// 입금자명
{
key: 'depositorName',
label: '입금자명',
type: 'text',
readonly: true,
placeholder: '-',
placeholder: '입금자명을 입력해주세요',
disabled: (mode) => mode === 'view',
},
// 입금금액 (readonly)
// 입금금액
{
key: 'depositAmount',
label: '입금금액',
type: 'text',
readonly: true,
placeholder: '-',
type: 'number',
placeholder: '입금금액을 입력해주세요',
disabled: (mode) => mode === 'view',
},
// 적요 (editable)
{
@@ -107,7 +107,7 @@ export const depositDetailConfig: DetailConfig = {
depositDate: record.depositDate || '',
accountName: record.accountName || '',
depositorName: record.depositorName || '',
depositAmount: record.depositAmount ? record.depositAmount.toLocaleString() : '0',
depositAmount: record.depositAmount || 0,
note: record.note || '',
vendorId: record.vendorId || '',
depositType: record.depositType || 'unset',
@@ -115,6 +115,10 @@ export const depositDetailConfig: DetailConfig = {
},
transformSubmitData: (formData: Record<string, unknown>): Partial<DepositRecord> => {
return {
depositDate: formData.depositDate as string,
accountName: formData.accountName as string,
depositorName: formData.depositorName as string,
depositAmount: formData.depositAmount ? Number(formData.depositAmount) : 0,
note: formData.note as string,
vendorId: formData.vendorId as string,
depositType: formData.depositType as DepositRecord['depositType'],