api 추가
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
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 {
|
||||
VatReturnTaxInvoiceSendEmailResponse,
|
||||
VatReturnTaxInvoiceSendEmailParams,
|
||||
} from '../model/types';
|
||||
import {
|
||||
useMutation,
|
||||
UseMutationOptions
|
||||
} from '@tanstack/react-query';
|
||||
import { getHeaderUserAgent } from '@/shared/constants/url';
|
||||
|
||||
export const vatReturnTaxInvoiceSendEmail = (params: VatReturnTaxInvoiceSendEmailParams) => {
|
||||
let headerOptions = {
|
||||
menuId: 48,
|
||||
apiType: 'DOWNLOAD'
|
||||
};
|
||||
let options = {
|
||||
headers: {
|
||||
'X-User-Agent': getHeaderUserAgent(headerOptions)
|
||||
}
|
||||
};
|
||||
return resultify(
|
||||
axios.post<VatReturnTaxInvoiceSendEmailResponse>(API_URL_VAT_RETURN.vatReturnTaxInvoiceSendEmail(), params, options),
|
||||
);
|
||||
};
|
||||
|
||||
export const useVatReturnTaxInvoiceSendEmailMutation = (options?: UseMutationOptions<VatReturnTaxInvoiceSendEmailResponse, NiceAxiosError, VatReturnTaxInvoiceSendEmailParams>) => {
|
||||
const mutation = useMutation<VatReturnTaxInvoiceSendEmailResponse, NiceAxiosError, VatReturnTaxInvoiceSendEmailParams>({
|
||||
...options,
|
||||
mutationFn: (params: VatReturnTaxInvoiceSendEmailParams) => vatReturnTaxInvoiceSendEmail(params),
|
||||
});
|
||||
|
||||
return {
|
||||
...mutation,
|
||||
};
|
||||
};
|
||||
@@ -174,4 +174,12 @@ export interface VatReturnDownloadExcelParams {
|
||||
receiptType: VatReturnReceiptType;
|
||||
targetType: VatReturnTargetType;
|
||||
};
|
||||
export interface VatReturnDownloadExcelResponse {};
|
||||
export interface VatReturnDownloadExcelResponse {};
|
||||
|
||||
export interface VatReturnTaxInvoiceSendEmailParams {
|
||||
taxInvoiceNumber: string;
|
||||
email: string;
|
||||
};
|
||||
export interface VatReturnTaxInvoiceSendEmailResponse {
|
||||
message?: string;
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
import moment from 'moment';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { RecipientInfo, SupplierInfo, TransactionDetails, VatReturnDetailResponse, VatReturnTaxInvoiceParams, VatReturnTaxInvoiceResponse } from '../../model/types';
|
||||
import { RecipientInfo, SupplierInfo, TransactionDetails, VatReturnDetailResponse, VatReturnTaxInvoiceParams, VatReturnTaxInvoiceResponse, VatReturnTaxInvoiceSendEmailParams, VatReturnTaxInvoiceSendEmailResponse } from '../../model/types';
|
||||
import { SectionTitleArrow } from '@/entities/common/ui/section-title-arrow';
|
||||
import SlideDown from 'react-slidedown';
|
||||
import 'react-slidedown/lib/slidedown.css';
|
||||
@@ -8,6 +8,8 @@ import { useState } from 'react';
|
||||
import { DownloadBottomSheet, DownloadSelectedMode } from '@/entities/common/ui/download-bottom-sheet';
|
||||
import { useVatReturnTaxInvoiceMutation } from '../../api/use-vat-return-tax-invoice-mutation';
|
||||
import { TaxInvoiceSample } from '@/entities/common/ui/tax-invoice-sample';
|
||||
import { useVatReturnTaxInvoiceSendEmailMutation } from '../../api/use-vat-return-tax-invoice-send-email-mutation';
|
||||
import { snackBar } from '@/shared/lib';
|
||||
|
||||
export interface AmountSectionProps {
|
||||
taxInvoiceNumber: string;
|
||||
@@ -33,6 +35,7 @@ export const AmountSection = ({
|
||||
const [transactionDetails, setTransactionDetails] = useState<TransactionDetails>();
|
||||
|
||||
const { mutateAsync: vatReturnTaxInvoice } = useVatReturnTaxInvoiceMutation();
|
||||
const { mutateAsync: vatReturnTaxInvoiceSendEmail } = useVatReturnTaxInvoiceSendEmailMutation();
|
||||
|
||||
const openSection = () => {
|
||||
const status = !isOpen;
|
||||
@@ -46,7 +49,19 @@ export const AmountSection = ({
|
||||
if(selectedMode === DownloadSelectedMode.EMAIL
|
||||
&& !!userEmail
|
||||
){
|
||||
// 추가 API 필요
|
||||
let params: VatReturnTaxInvoiceSendEmailParams = {
|
||||
taxInvoiceNumber: taxInvoiceNumber,
|
||||
email: userEmail
|
||||
};
|
||||
vatReturnTaxInvoiceSendEmail(params).then((rs: VatReturnTaxInvoiceSendEmailResponse) => {
|
||||
console.log(rs);
|
||||
snackBar('이메일로 세금계산서 요청이 완료되었습니다.');
|
||||
}).catch((e: any) => {
|
||||
if(e.response?.data?.error?.message){
|
||||
snackBar(e.response?.data?.error?.message);
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
else if(selectedMode === DownloadSelectedMode.IMAGE){
|
||||
|
||||
|
||||
Reference in New Issue
Block a user