diff --git a/src/entities/transaction/api/use-cash-receipt-excel-download-mutation.ts b/src/entities/transaction/api/use-cash-receipt-excel-download-mutation.ts new file mode 100644 index 0000000..5dae046 --- /dev/null +++ b/src/entities/transaction/api/use-cash-receipt-excel-download-mutation.ts @@ -0,0 +1,39 @@ +import axios from 'axios'; +import { API_URL_TRANSACTION } from '@/shared/api/api-url-transaction'; +import { resultify } from '@/shared/lib/resultify'; +import { NiceAxiosError } from '@/shared/@types/error'; +import { + CashReceiptExcelDownloadParams, + CashReceiptExcelDownloadResponse +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; +import { getHeaderUserAgent } from '@/shared/constants/url'; + +export const cashReceiptExcelDownload = (params: CashReceiptExcelDownloadParams) => { + let headerOptions = { + menuId: 32, + apiType: 'DOWNLOAD' + }; + let options = { + headers: { + 'X-User-Agent': getHeaderUserAgent(headerOptions) + } + }; + return resultify( + axios.post(API_URL_TRANSACTION.cashReceiptReceiptDownload(), params, options), + ); +}; + +export const useCashReceiptExcelDownloadMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: CashReceiptExcelDownloadParams) => cashReceiptExcelDownload(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/transaction/model/types.ts b/src/entities/transaction/model/types.ts index a7e2f82..f3d10f3 100644 --- a/src/entities/transaction/model/types.ts +++ b/src/entities/transaction/model/types.ts @@ -292,6 +292,22 @@ export interface CashReceiptReceiptDownloadResponse { customerInfo: CustomerInfo; productInfo: ProductInfo; }; + +export enum CashReceiptDateType { + ISSUE_DATE = 'ISSUE_DATE', + CANCEL_DATE = 'CANCEL_DATE' +}; +export interface CashReceiptExcelDownloadParams { + email: string; + mid: string; + startDate: string; + endDate: string; + dateType: CashReceiptDateType; + purposeType: CashReceiptPurposeType; + transactionType: CashReceiptTransactionType; + processResult: CashReceiptProcessResult; +}; +export interface CashReceiptExcelDownloadResponse {}; export interface EscrowListParams { mid?: string; searchType?: string; diff --git a/src/entities/transaction/ui/section/amount-info-section.tsx b/src/entities/transaction/ui/section/amount-info-section.tsx index 2574342..d86f6de 100644 --- a/src/entities/transaction/ui/section/amount-info-section.tsx +++ b/src/entities/transaction/ui/section/amount-info-section.tsx @@ -428,7 +428,7 @@ export const AmountInfoSection = ({ }
{ (transactionCategory === TransactionCategory.CashReceipt) && - // !!canDownloadReceipt && + !!canDownloadReceipt &&