diff --git a/src/entities/alarm/ui/alarm-item.tsx b/src/entities/alarm/ui/alarm-item.tsx index f572abb..9fb9a79 100644 --- a/src/entities/alarm/ui/alarm-item.tsx +++ b/src/entities/alarm/ui/alarm-item.tsx @@ -5,6 +5,7 @@ import moment from 'moment'; import { useAppAlarmMarkMutation } from '../api/use-app-alarm-mark-mutation'; import { AppAlarmMarkParams, AppAlarmMarkResponse } from '../model/types'; import { useStore } from '@/shared/model/store'; +import { useEffect, useState } from 'react'; export interface AlarmItemProps { appNotificationSequence?: number; @@ -13,6 +14,7 @@ export interface AlarmItemProps { appNotificationTitle?: string; appNotificationContent?: string; appNotificationLink?: string; + appNotificationCategories: Array; }; export const AlarmItem = ({ @@ -21,13 +23,22 @@ export const AlarmItem = ({ notificationReceivedDate, appNotificationTitle, appNotificationContent, - appNotificationLink + appNotificationLink, + appNotificationCategories }: AlarmItemProps) => { const { navigate } = useNavigate(); let userInfo = useStore.getState().UserStore.userInfo; const {mutateAsync: appAlarmMark} = useAppAlarmMarkMutation(); + + const [appNotificationCategoryName, setAppNotificationCategoryName] = useState(''); + const getCategoryName = () => { + let myCategory = appNotificationCategories.filter((value, index) => { + return value.code1 === appNotificationCategory; + }); + return myCategory[0].desc1; + }; const onClickToNavigate = () => { let path = PATHS.support.notice.detail + appNotificationSequence; let pathState = {}; @@ -39,21 +50,27 @@ export const AlarmItem = ({ console.log('appNotificationContent : [' + appNotificationContent + ']'); console.log('appNotificationLink : [' + appNotificationLink + ']'); - if(appNotificationCategory === '10'){ + if(appNotificationLink){ + path = appNotificationLink; + /* + if(appNotificationCategory === '10'){ + + } + else if(appNotificationCategory === '20'){ - } - else if(appNotificationCategory === '20'){ + } + else if(appNotificationCategory === '30'){ - } - else if(appNotificationCategory === '30'){ + } + else if(appNotificationCategory === '40'){ + } + else if(appNotificationCategory === '60'){ + + } + */ } - else if(appNotificationCategory === '40'){ - - } - else if(appNotificationCategory === '60'){ - - } + navigate(path, { state: pathState }); @@ -73,22 +90,26 @@ export const AlarmItem = ({ } }; + useEffect(() => { + setAppNotificationCategoryName(getCategoryName()); + }, [appNotificationCategory]); + return ( -
+
callAppAlarmMark() } + >
{ appNotificationTitle }
- { appNotificationCategory } + { appNotificationCategoryName } { moment(notificationReceivedDate).format('YYYY.MM.DD HH:mm:ss') }
-
callAppAlarmMark() } - > +
{
diff --git a/src/entities/alarm/ui/alarm-list.tsx b/src/entities/alarm/ui/alarm-list.tsx index eb2851a..419d915 100644 --- a/src/entities/alarm/ui/alarm-list.tsx +++ b/src/entities/alarm/ui/alarm-list.tsx @@ -12,10 +12,12 @@ import { DefaultRequestPagination } from '@/entities/common/model/types'; export interface AlarmListProps { appNotificationCategory: string; + appNotificationCategories: Array; }; export const AlarmList = ({ - appNotificationCategory + appNotificationCategory, + appNotificationCategories }: AlarmListProps) => { const { navigate } = useNavigate(); const { t } = useTranslation(); @@ -108,6 +110,7 @@ export const AlarmList = ({ appNotificationTitle={ resultList[i]?.appNotificationTitle } appNotificationContent={ resultList[i]?.appNotificationContent } appNotificationLink={ resultList[i]?.appNotificationLink } + appNotificationCategories={ appNotificationCategories } > ); } diff --git a/src/entities/transaction/model/types.ts b/src/entities/transaction/model/types.ts index c145342..4c47279 100644 --- a/src/entities/transaction/model/types.ts +++ b/src/entities/transaction/model/types.ts @@ -481,7 +481,7 @@ export interface BillingInfo { }; export interface MerchantInfo { - shopName?: string; + companyName?: string; gid?: string; aid?: string; } diff --git a/src/entities/transaction/ui/list-item.tsx b/src/entities/transaction/ui/list-item.tsx index 3ebaaed..fcad408 100644 --- a/src/entities/transaction/ui/list-item.tsx +++ b/src/entities/transaction/ui/list-item.tsx @@ -231,7 +231,7 @@ export const ListItem = ({
  • ·  상호 - { merchantInfo?.shopName } + { merchantInfo?.companyName }
  • ·  GID diff --git a/src/entities/vat-return/api/use-vat-return-breakdown-mutation.ts b/src/entities/vat-return/api/use-vat-return-breakdown-mutation.ts new file mode 100644 index 0000000..b276396 --- /dev/null +++ b/src/entities/vat-return/api/use-vat-return-breakdown-mutation.ts @@ -0,0 +1,29 @@ +import axios from 'axios'; +import { API_URL_VAT_RETURN } from '@/shared/api/api-url-vat-return'; +import { resultify } from '@/shared/lib/resultify'; +import { NiceAxiosError } from '@/shared/@types/error'; +import { + VatReturnBreakdownResponse, + VatReturnBreakdownParams, +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const vatReturnBreakdown = (params: VatReturnBreakdownParams) => { + return resultify( + axios.post(API_URL_VAT_RETURN.vatReturnBreakdown(), params), + ); +}; + +export const useVatReturnBreakdownMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: VatReturnBreakdownParams) => vatReturnBreakdown(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/vat-return/model/types.ts b/src/entities/vat-return/model/types.ts index f0e7153..04c8076 100644 --- a/src/entities/vat-return/model/types.ts +++ b/src/entities/vat-return/model/types.ts @@ -32,7 +32,19 @@ export interface VatReturnListParams { targetType?: VatReturnTargetType; page?: DefaultRequestPagination; }; - +export interface VatReturnBreakdownParams { + taxInvoiceNumber: string; +}; +export interface VatReturnBreakdownResponse { + breakdown: Array; +}; +export interface Breakdown { + transactionDate: string; + totalAmount: number; + supplyAmount: number; + vatAmount: number; + transactionCount: number; +}; export interface VatReturnListResponse extends DefaulResponsePagination { content: Array; diff --git a/src/entities/vat-return/ui/list-detail-bottom-sheet.tsx b/src/entities/vat-return/ui/list-detail-bottom-sheet.tsx index 8293ef8..4eea771 100644 --- a/src/entities/vat-return/ui/list-detail-bottom-sheet.tsx +++ b/src/entities/vat-return/ui/list-detail-bottom-sheet.tsx @@ -1,13 +1,16 @@ import { IMAGE_ROOT } from "@/shared/constants/common"; +import { Breakdown } from "../model/types"; export interface VatReturnListDetailBottomSheetProps { bottomSheetOn: boolean; setBottomSheetOn: (bottomSheetOn: boolean) => void; + breakdown: Array }; export const VatReturnListDetailBottomSheet = ({ bottomSheetOn, - setBottomSheetOn + setBottomSheetOn, + breakdown }: VatReturnListDetailBottomSheetProps) => { const onClickToClose = () => { diff --git a/src/pages/alarm/list/list-page.tsx b/src/pages/alarm/list/list-page.tsx index 902d300..84b766f 100644 --- a/src/pages/alarm/list/list-page.tsx +++ b/src/pages/alarm/list/list-page.tsx @@ -23,6 +23,7 @@ export const ListPage = () => { let newAppNotificationCategories = appNotificationCategories.filter((value, index) => { return value.code1 !== '****' && value.code2 === '*'; }); + console.log(newAppNotificationCategories) setAppNotificationCategories(newAppNotificationCategories); } }; @@ -51,6 +52,7 @@ export const ListPage = () => {
  • diff --git a/src/pages/vat-return/detail-page.tsx b/src/pages/vat-return/detail-page.tsx index 3f02c25..b7ec850 100644 --- a/src/pages/vat-return/detail-page.tsx +++ b/src/pages/vat-return/detail-page.tsx @@ -5,6 +5,9 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useVatReturnDetailMutation } from '@/entities/vat-return/api/use-vat-return-detail-mutation'; import { HeaderType } from '@/entities/common/model/types'; import { + Breakdown, + VatReturnBreakdownParams, + VatReturnBreakdownResponse, VatReturnDetailParams, VatReturnDetailResponse, VatReturnTaxInvoiceParams, @@ -22,6 +25,7 @@ import { IssueSection } from '@/entities/vat-return/ui/section/issue-section'; import { AmountSection } from '@/entities/vat-return/ui/section/amount-section'; import { useVatReturnTaxInvoiceMutation } from '@/entities/vat-return/api/use-vat-return-tax-invoice-mutation'; import { VatReturnListDetailBottomSheet } from '@/entities/vat-return/ui/list-detail-bottom-sheet'; +import { useVatReturnBreakdownMutation } from '@/entities/vat-return/api/use-vat-return-breakdown-mutation'; export const DetailPage = () => { const { navigate } = useNavigate(); @@ -33,6 +37,7 @@ export const DetailPage = () => { const [openAmount, setOpenAmount] = useState(false); const [bottomSheetOn, setBottomSheetOn] = useState(false); const [detail, setDetail] = useState({}); + const [breakdown, setBreakdown] = useState>([]); useSetHeaderTitle('세금계산서 상세'); useSetHeaderType(HeaderType.RightClose); @@ -43,6 +48,7 @@ export const DetailPage = () => { const { mutateAsync: vatReturnTaxInvoice } = useVatReturnTaxInvoiceMutation(); const { mutateAsync: vatReturnDetail } = useVatReturnDetailMutation(); + const { mutateAsync: vatReturnBreakdown } = useVatReturnBreakdownMutation(); const callTaxInvoice = () => { let params: VatReturnDetailParams = { @@ -52,6 +58,14 @@ export const DetailPage = () => { setDetail(rs); }); }; + const callVatReturnBreakdown = () => { + let params: VatReturnBreakdownParams = { + taxInvoiceNumber: taxInvoiceNumber, + }; + vatReturnBreakdown(params).then((rs: VatReturnBreakdownResponse) => { + setBreakdown(rs.breakdown); + }); + }; const onClickToOpenBottomSheet = () => { setBottomSheetOn(true); @@ -59,6 +73,7 @@ export const DetailPage = () => { useEffect(() => { callTaxInvoice(); + // callVatReturnBreakdown(); }, []); return ( @@ -98,6 +113,7 @@ export const DetailPage = () => { } diff --git a/src/shared/api/api-url-vat-return.ts b/src/shared/api/api-url-vat-return.ts index bb60671..a8afc35 100644 --- a/src/shared/api/api-url-vat-return.ts +++ b/src/shared/api/api-url-vat-return.ts @@ -20,4 +20,8 @@ export const API_URL_VAT_RETURN = { // POST: 세금계산서 상세 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/detail`; }, + vatReturnBreakdown: () => { + // POST: 세금계산서 세부내역 조회 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/breakdown`; + } }; \ No newline at end of file