diff --git a/src/entities/vat-return/api/use-vat-reference-request-mutation.ts b/src/entities/vat-return/api/use-vat-reference-request-mutation.ts new file mode 100644 index 0000000..18b2cb8 --- /dev/null +++ b/src/entities/vat-return/api/use-vat-reference-request-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 { CBDCAxiosError } from '@/shared/@types/error'; +import { + VatReturnReferenceRequestResponse, + VatReturnReferenceRequestParams, +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const vatReturnReferenceRequest = (params: VatReturnReferenceRequestParams) => { + return resultify( + axios.post(API_URL_VAT_RETURN.vatReturnReferenceRequest(), params), + ); +}; + +export const useVatReturnReferenceRequestMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: VatReturnReferenceRequestParams) => vatReturnReferenceRequest(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/vat-return/api/use-vat-return-tax-invoice-mutation.ts b/src/entities/vat-return/api/use-vat-return-tax-invoice-mutation.ts new file mode 100644 index 0000000..1c9e159 --- /dev/null +++ b/src/entities/vat-return/api/use-vat-return-tax-invoice-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 { CBDCAxiosError } from '@/shared/@types/error'; +import { + VatReturnTaxInvoiceResponse, + VatReturnTaxInvoiceParams, +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const vatReturnTaxInvoice = (params: VatReturnTaxInvoiceParams) => { + return resultify( + axios.post(API_URL_VAT_RETURN.vatReturnTaxInvoice(), params), + ); +}; + +export const useVatReturnTaxInvoiceMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: VatReturnTaxInvoiceParams) => vatReturnTaxInvoice(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/vat-return/model/types.ts b/src/entities/vat-return/model/types.ts index 803830c..27881a8 100644 --- a/src/entities/vat-return/model/types.ts +++ b/src/entities/vat-return/model/types.ts @@ -82,4 +82,68 @@ export interface VatReturnDetailResponse { supplierBusinessRegistrationNumber?: string; supplierCompanyName?: string; supplierCeoName?: string; +}; +export enum TaxType { + +}; +export interface VatReturnReferenceRequestParams { + mid: string; + startMonth: string; + endMonth: string; + taxType: string, + requestorName: string; + contactNumber: string; + email: string; +}; +export interface VatReturnReferenceRequestResponse { + requestId: number; + mid: string; + requestPeriod: string; + taxTypeDescription: string; + requestDateTime: string; + requestStatus: string; + requestorName: string; + contactNumber: string; + email: string; +}; + +export interface VatReturnTaxInvoiceParams { + taxInvoiceNumber: string; +} +export interface VatReturnTaxInvoiceResponse { + supplierInfo: SupplierInfo; + recipientInfo: RecipientInfo; + issueDate: string; + supplyAmount: number; + taxAmount: number; + totalAmount: number; + transactionDetails: TransactionDetails; +}; + +export interface SupplierInfo { + businessRegistrationNumber: string; + companyName: string; + ceoName: string; + address: string; + businessType: string; + businessItem: string; +}; +export interface RecipientInfo { + businessRegistrationNumber: string; + companyName: string; + ceoName: string; + address: string; + businessType: string; + businessItem: string; + email: string; +}; +export interface TransactionDetails { + transactionPeriod: string; + itemName: string; + specification: string; + quantity: number; + unitPrice: number; + supplyAmount: number; + taxAmount: number; + remarks: string; }; \ No newline at end of file diff --git a/src/entities/vat-return/ui/list-wrap.tsx b/src/entities/vat-return/ui/list-wrap.tsx index d3c0e08..624b4ad 100644 --- a/src/entities/vat-return/ui/list-wrap.tsx +++ b/src/entities/vat-return/ui/list-wrap.tsx @@ -129,9 +129,6 @@ export const ListWrap = () => {
{ getListDateGroup() }
-
- -
{ - + const midOptions = useStore.getState().UserStore.selectOptionsMids; + const [success, setSuccess] = useState(false); const [successPageOn, setSuccessPageOn] = useState(false); const [failPageOn, setFailPageOn] = useState(false); - const [mid, setMid] = useState('nictest00m'); + const [mid, setMid] = useState(''); const [startDate, setStartDate] = useState(moment().format('YYYY.MM.DD')); const [endDate, setEndDate] = useState(moment().format('YYYY.MM.DD')); const [payTax, setPayTax] = useState(VatReturnPayTax.Tax); const [email, setEmail] = useState(''); - const midOptions = useStore.getState().UserStore.selectOptionsMids; + const { mutateAsync: vatReturnReferenceRequest } = useVatReturnReferenceRequestMutation(); + let EmailOptions = [ {name: 'focp212@naver.com', value: 'focp212@naver.com'} ]; const onClickToResquest = () => { - if(success){ + let params: VatReturnReferenceRequestParams = { + mid: mid, + startMonth: startDate, + endMonth: endDate, + taxType: payTax, + requestorName: '', + contactNumber: '', + email: email + } + vatReturnReferenceRequest(params).then((rs: VatReturnReferenceRequestResponse) => { setSuccessPageOn(true); - } - else{ + }).catch((error) => { setFailPageOn(true); - } + }); }; return ( diff --git a/src/pages/home/home-page.tsx b/src/pages/home/home-page.tsx index 8844472..91d3220 100644 --- a/src/pages/home/home-page.tsx +++ b/src/pages/home/home-page.tsx @@ -15,6 +15,8 @@ import { useSetFooterMode, useSetFooterCurrentPage } from '@/widgets/sub-layout/use-sub-layout'; +import { useStore } from '@/shared/model/store'; +import { UserFavorite } from '@/entities/user/model/types'; export let homeReloadKey = 1; export const setHomeReloadKey = () => { @@ -22,6 +24,7 @@ export const setHomeReloadKey = () => { }; export const HomePage = () => { + const { isNativeEnvironment, openBiometricRegistrationPopup, @@ -38,7 +41,7 @@ export const HomePage = () => { const [bottomBannerOn, setBottomBannerOn] = useState(false); const [authRegisterOn, setAuthRegisterOn] = useState(false); - const [loginSuccess, setLoginSuccess] = useState(true); + const [favoriteItems, setFavoriteItems] = useState>([]); const checkBottomBannerOpen = () => { if(!!bannerToday){ @@ -64,6 +67,9 @@ export const HomePage = () => { useEffect(() => { checkBottomBannerOpen(); checkAuthRegisterOpen(); + + let userFavorite = useStore.getState().UserStore.userFavorite; + setFavoriteItems(userFavorite); }, []); const setBottomBannerEffect = (mode: boolean) => { @@ -86,15 +92,11 @@ export const HomePage = () => { {/**/}
- { loginSuccess && - <> - - - - } + +
diff --git a/src/shared/api/api-url-vat-return.ts b/src/shared/api/api-url-vat-return.ts index 9f47870..bb60671 100644 --- a/src/shared/api/api-url-vat-return.ts +++ b/src/shared/api/api-url-vat-return.ts @@ -4,6 +4,14 @@ import { } from './../constants/url'; export const API_URL_VAT_RETURN = { + vatReturnTaxInvoice: () => { + // POST: 세금계산서 조회 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/tax-invoice`; + }, + vatReturnReferenceRequest: () => { + // POST: 부가세 참고자료 신청 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/reference-request`; + }, vatReturnList: () => { // POST: 세금계산서 목록 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/list`;