feat(WEB): FCM 푸시 알림 시스템 구현
- FCMProvider 컨텍스트 및 useFCM 훅 추가 - Capacitor FCM 플러그인 통합 - 알림 사운드 파일 추가 (default.wav, push_notification.wav) - Firebase 메시징 패키지 의존성 추가
This commit is contained in:
@@ -1,238 +0,0 @@
|
||||
import type {
|
||||
ComprehensiveAnalysisData,
|
||||
} from './types';
|
||||
|
||||
// 종합 경영 분석 목데이터
|
||||
export const comprehensiveAnalysisMockData: ComprehensiveAnalysisData = {
|
||||
// 오늘의 이슈
|
||||
todayIssue: {
|
||||
filterOptions: ['전체필터', '문서요청', '계약요청', '결재요청'],
|
||||
items: [
|
||||
{
|
||||
id: 'issue-1',
|
||||
category: '문서요청',
|
||||
description: '매입 XX일 후 완료처리/대물처리 처리',
|
||||
requiresApproval: true,
|
||||
time: '09:30',
|
||||
},
|
||||
{
|
||||
id: 'issue-2',
|
||||
category: '문서요청',
|
||||
description: '매입 XX 처리',
|
||||
requiresApproval: false,
|
||||
time: '10:15',
|
||||
},
|
||||
{
|
||||
id: 'issue-3',
|
||||
category: '문서요청',
|
||||
description: '문서요청 승인 / 미완료처리 중',
|
||||
requiresApproval: false,
|
||||
time: '11:00',
|
||||
},
|
||||
{
|
||||
id: 'issue-4',
|
||||
category: '계약요청',
|
||||
description: '문서의 후 XXXXXXXX처리',
|
||||
requiresApproval: true,
|
||||
time: '14:30',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 당월 예상 지출 내역
|
||||
monthlyExpense: {
|
||||
cards: [
|
||||
{ id: 'expense-1', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
{ id: 'expense-2', label: '노동 외상 매출금 비율', amount: 3123000 },
|
||||
{ id: 'expense-3', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
{ id: 'expense-4', label: '노동 외상 매출금 비율', amount: 3123000 },
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'expense-cp-1',
|
||||
type: 'warning',
|
||||
message: '이번 달 예상 지출은',
|
||||
highlight: 'XXX,XX원이 될 것으로 예상되어 이번 달의 결산이 약간 미흡합니다.',
|
||||
},
|
||||
{
|
||||
id: 'expense-cp-2',
|
||||
type: 'success',
|
||||
message: '이번 달 예상 지출은 0000000원에 비해 발생한 잔액이 부족합니다.',
|
||||
},
|
||||
{
|
||||
id: 'expense-cp-3',
|
||||
type: 'info',
|
||||
message: '이번 달 예상 지출은 xx xxxxx원으로 상환을 낙관할 수 있습니다.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 카드/가지급금 관리
|
||||
cardManagement: {
|
||||
cards: [
|
||||
{ id: 'card-1', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
{ id: 'card-2', label: '노동 외상 매출금 비율', amount: 3123000 },
|
||||
{ id: 'card-3', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
{ id: 'card-4', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'card-cp-1',
|
||||
type: 'warning',
|
||||
message: '김철민 외 카드 미결제/미수금/미환급/이월이 발생 하여',
|
||||
highlight: '대조가 필요합니다.',
|
||||
},
|
||||
{
|
||||
id: 'card-cp-2',
|
||||
type: 'info',
|
||||
message: '회사 가지급금 1,000만원 → 3% 초과/부족 발 →',
|
||||
highlight: '개선방안: 매출 신규영업과 대상',
|
||||
},
|
||||
{
|
||||
id: 'card-cp-3',
|
||||
type: 'success',
|
||||
message: '현재 미지급금 감소추세 → 목표대비 양호 →',
|
||||
highlight: '1개월 순영업성과',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 접대비 현황
|
||||
entertainment: {
|
||||
cards: [
|
||||
{ id: 'ent-1', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
{ id: 'ent-2', label: '노동 외상 매출금 비율', amount: 1123000 },
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'ent-cp-1',
|
||||
type: 'warning',
|
||||
message: '김철민 씨 사용액 1,000원에 중복지출로',
|
||||
highlight: '비용 반영 준비가 필요합니다.',
|
||||
},
|
||||
{
|
||||
id: 'ent-cp-2',
|
||||
type: 'info',
|
||||
message: '관리비 이번 달 2% X X원이 비용처리로 이재현 증분의 확인이 필요합니다.',
|
||||
},
|
||||
{
|
||||
id: 'ent-cp-3',
|
||||
type: 'error',
|
||||
message: '김철민 고객접대비가 목표대비',
|
||||
highlight: '5%초과로 허용 초과처리 되었습니다.',
|
||||
},
|
||||
{
|
||||
id: 'ent-cp-4',
|
||||
type: 'warning',
|
||||
message: '이채호 외 3명에 대한 XXXXXXXXX 비용처리 불가입니다.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 복리후생비 현황
|
||||
welfare: {
|
||||
cards: [
|
||||
{ id: 'wf-1', label: '노동 복리후생비 대비 지출', amount: 3123000 },
|
||||
{ id: 'wf-2', label: '노동 복리후생비 수당 내역', amount: 1123000 },
|
||||
{ id: 'wf-3', label: '방송일 복리후생비 지출 내역', amount: 30123000 },
|
||||
{ id: 'wf-4', label: '방송일 복리후생비 수당 내역', amount: 3123000 },
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'wf-cp-1',
|
||||
type: 'warning',
|
||||
message: '직원 월 복리후생비 비율이 정상 범위(5~20%)에서 벗어난 것이 발견됨',
|
||||
},
|
||||
{
|
||||
id: 'wf-cp-2',
|
||||
type: 'info',
|
||||
message: '복리후생비 월 직원혜택 비 지출에 관심(00백)원을 초과했습니다. 초과분은 근로소득 과세대상입니다.',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
// 미수금 현황
|
||||
receivable: {
|
||||
cards: [
|
||||
{
|
||||
id: 'rcv-1',
|
||||
label: '노동 외상 매출금 비율',
|
||||
amount: 30123000,
|
||||
subAmount: 8000000,
|
||||
subLabel: '미결',
|
||||
previousAmount: 5000000,
|
||||
previousLabel: '비용',
|
||||
},
|
||||
{
|
||||
id: 'rcv-2',
|
||||
label: '발행된 매출금 비율',
|
||||
amount: 30123000,
|
||||
subAmount: 8000000,
|
||||
subLabel: '미결',
|
||||
previousAmount: 5000000,
|
||||
previousLabel: '비용',
|
||||
},
|
||||
{
|
||||
id: 'rcv-3',
|
||||
label: '금일 매출원가 (외상제외)',
|
||||
amount: 3123000,
|
||||
subAmount: 800000,
|
||||
subLabel: '미결',
|
||||
previousAmount: 100000,
|
||||
previousLabel: '비용',
|
||||
},
|
||||
{
|
||||
id: 'rcv-4',
|
||||
label: '금일 수금원가 (외상제외)',
|
||||
amount: 3123000,
|
||||
subAmount: 500000,
|
||||
subLabel: '미결',
|
||||
previousAmount: 100000,
|
||||
previousLabel: '비용',
|
||||
},
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'rcv-cp-1',
|
||||
type: 'warning',
|
||||
message: '이부서 가장 큰의 미수금 3/21,500/20원 정도, 월수 초과가 발생합니다.',
|
||||
},
|
||||
{
|
||||
id: 'rcv-cp-2',
|
||||
type: 'error',
|
||||
message: '[주식회사]의 미수금 4,300만원으로 한계 미수금 초과입니다.',
|
||||
highlight: '거래 중단이 필요합니다.',
|
||||
},
|
||||
],
|
||||
hasDetailButton: true,
|
||||
detailButtonLabel: '거래처별 미수금 현황',
|
||||
detailButtonPath: '/accounting/receivables-status',
|
||||
},
|
||||
|
||||
// 채권추심 현황
|
||||
debtCollection: {
|
||||
cards: [
|
||||
{ id: 'debt-1', label: '노동 외상 매출금 비율', amount: 30123000 },
|
||||
{ id: 'debt-2', label: '노동 외상 매출금 비율', amount: 30123000 },
|
||||
{ id: 'debt-3', label: '노동 외상 매출금 비율', amount: 3123000 },
|
||||
{ id: 'debt-4', label: '노동 외상 매출금 비율', amount: 3123000 },
|
||||
],
|
||||
checkPoints: [
|
||||
{
|
||||
id: 'debt-cp-1',
|
||||
type: 'info',
|
||||
message: '[주식회사]의 건 직급상한 건수 첫째, 팔로 결제월이 약 3건 소요 예정입니다.',
|
||||
},
|
||||
{
|
||||
id: 'debt-cp-2',
|
||||
type: 'warning',
|
||||
message: '[주식회사]의 건 수 총 3건 중에, 현재 1건 보류상태입니다.',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
// 금액 포맷 함수
|
||||
export const formatAmount = (amount: number): string => {
|
||||
return new Intl.NumberFormat('ko-KR').format(amount) + '원';
|
||||
};
|
||||
Reference in New Issue
Block a user