현금영수증 완료

This commit is contained in:
focp212@naver.com
2025-10-25 21:48:10 +09:00
parent 2f13c29d1b
commit 9cffa264e7
12 changed files with 167 additions and 51 deletions

View File

@@ -3,7 +3,7 @@ import { SortTypeKeys } from "./types";
export const DEFAULT_PAGE_PARAM = {
cursor: null,
size: 0,
size: 20,
sortType: SortTypeKeys.LATEST,
limit: 0
};

View File

@@ -176,6 +176,7 @@ export interface CashReceiptListItem {
transactionTime?: string;
customerName?: string;
issueNumber?: string;
tid?: string;
approvalNumber?: string;
amount?: number;
processResult?: string;
@@ -310,10 +311,10 @@ export interface AllTransactionDetailParams {
tid?: string;
};
export interface CashReceiptDetailParams {
approvalNumber?: string;
tid?: string;
};
export interface EscrowDetailParams {
issueNumber?: number;
tid?: string;
};
export interface BillingDetailParams {
billKey?: string;
@@ -333,6 +334,12 @@ export interface AmountInfo {
multiCouponAmount?: number;
receiptAmount?: number;
cupDepositAmount?: number;
amount?: number;
supplyAmount?: number;
vat?: number;
serviceAmount?: number;
taxFreeAmount?: number;
};
export interface ImportantInfo {
moid?: string;
@@ -478,6 +485,7 @@ export interface MerchantInfo {
}
export interface DetailResponse {
amountDetail?: AmountInfo;
amountInfo?: AmountInfo;
importantInfo?: ImportantInfo;
paymentInfo?: PaymentInfo;
@@ -501,6 +509,7 @@ export interface InfoSectionProps extends DetailResponse {
serviceCode?: string;
purposeType?: CashReceiptPurposeType | string;
onClickToOpenInfo?: (info: InfoSectionKeys) => void;
canDownloadReceipt?: boolean;
}
@@ -675,7 +684,7 @@ export interface BillingFilterProps extends FilterProps {
};
export interface CashReceiptPurposeUpdateParams {
approvalNumber: string;
tid: string;
newPurpose: string;
};
export interface CashReceiptPurposeUpdateResponse {

View File

@@ -9,16 +9,11 @@ import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
import {
AllTransactionMoidTidOptionsGroup,
AllTransactionStatusCodeBtnGroup,
AllTransactionServiceCodeOptionsGroup,
AllTransactionCardBankCodeOptionsGroup,
AllTracsactionStatusCode,
} from '@/entities/transaction/model/contant';
import {
AllTransactionFilterProps,
AllTransactionSearchCl,
AllTransactionStatusCode,
AllTransactionServiceCode,
AllTransactionMoidTid
} from '../../model/types';
import {

View File

@@ -58,14 +58,14 @@ export const ListItem = ({
else if(transactionCategory === TransactionCategory.CashReceipt){
navigate(PATHS.transaction.cashReceipt.detail, {
state: {
approvalNumber: approvalNumber
tid: tid
}
});
}
else if(transactionCategory === TransactionCategory.Escrow){
navigate(PATHS.transaction.escrow.detail, {
state: {
issueNumber: issueNumber
tid: tid
}
});
}

View File

@@ -12,7 +12,8 @@ export const AmountInfoSection = ({
isOpen,
tid,
serviceCode,
onClickToOpenInfo
onClickToOpenInfo,
canDownloadReceipt
}: InfoSectionProps) => {
const { mutateAsync: downloadConfirmation } = useDownloadConfirmationMutation();
let newAmountInfo: Record<string, any> | undefined = amountInfo;
@@ -186,7 +187,7 @@ export const AmountInfoSection = ({
<div className="txn-num-group">
<div className="txn-amount">
<div className="value">
{
{ (transactionCategory === TransactionCategory.AllTransaction) &&
(serviceCode === '01' || serviceCode === '02' || serviceCode === '03' || serviceCode === '26') &&
<NumericFormat
value={ amountInfo?.transactionRequestAmount }
@@ -194,11 +195,18 @@ export const AmountInfoSection = ({
displayType="text"
></NumericFormat>
}
{
{ (transactionCategory === TransactionCategory.AllTransaction) &&
(serviceCode === '05' || serviceCode === '14' || serviceCode === '21'
|| serviceCode === '24' || serviceCode === '31') &&
<NumericFormat
value={ amountInfo?.transactionAmount }
value={ amountInfo?.transactionAmount}
thousandSeparator
displayType="text"
></NumericFormat>
}
{ (transactionCategory === TransactionCategory.CashReceipt) &&
<NumericFormat
value={ amountInfo?.amount}
thousandSeparator
displayType="text"
></NumericFormat>
@@ -222,7 +230,48 @@ export const AmountInfoSection = ({
subLi()
}
{ (transactionCategory === TransactionCategory.CashReceipt) &&
<></>
<>
<li className="amount-item">
<span className="label">·&nbsp;&nbsp;</span>
<span className="value">
<NumericFormat
value={ amountInfo?.supplyAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</span>
</li>
<li className="amount-item">
<span className="label">·&nbsp;&nbsp;VAT</span>
<span className="value">
<NumericFormat
value={ amountInfo?.vat }
thousandSeparator
displayType="text"
></NumericFormat>
</span>
</li>
<li className="amount-item">
<span className="label">·&nbsp;&nbsp;</span>
<span className="value">
<NumericFormat
value={ amountInfo?.serviceAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</span>
</li>
<li className="amount-item">
<span className="label">·&nbsp;&nbsp;</span>
<span className="value">
<NumericFormat
value={ amountInfo?.taxFreeAmount }
thousandSeparator
displayType="text"
></NumericFormat>
</span>
</li>
</>
}
{ (transactionCategory === TransactionCategory.Escrow) &&
<></>
@@ -231,21 +280,24 @@ export const AmountInfoSection = ({
</div>
}
</SlideDown>
<div className="txn-mid">
<span className="value">{ amountInfo?.mid }</span>
</div>
{
((transactionCategory === TransactionCategory.CashReceipt) ||
(transactionCategory === TransactionCategory.Escrow) ||
(transactionCategory === TransactionCategory.Billing)) &&
<div className="txn-doc">
{ (transactionCategory === TransactionCategory.AllTransaction) &&
<div className="txn-mid">
<span className="value">{ amountInfo?.mid }</span>
</div>
}
<div className="txn-doc">
{
((transactionCategory === TransactionCategory.CashReceipt) ||
(transactionCategory === TransactionCategory.Escrow) ||
(transactionCategory === TransactionCategory.Billing)) &&
!!canDownloadReceipt &&
<button
className="doc-btn"
type="button"
onClick={ () => onClickToDownloadConfirmation() }
> </button>
</div>
}
}
</div>
</div>
</>
);

View File

@@ -84,7 +84,11 @@ export const AmountSection = ({
<span className="value">{ detail.mid }</span>
</div>
<div className="txn-mid">
<span className="value">{ moment(detail.issueDate).format('YYYY.MM.DD') }</span>
<span className="value">
{ !!detail.issueDate &&
moment(detail.issueDate).format('YYYY.MM.DD')
}
</span>
</div>
<div className="txn-doc">
<button

View File

@@ -20,11 +20,23 @@ export const IssueSection = ({
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ moment(detail.targetBusinessStartDate).format('YYYY.MM.DD') } ~ { moment(detail.targetBusinessEndDate).format('YYYY.MM.DD') }</span>
<span className="v">
{ !!detail.targetBusinessStartDate && !!detail.targetBusinessEndDate &&
moment(detail.targetBusinessStartDate).format('YYYY.MM.DD')
+
' ~ '
+
moment(detail.targetBusinessEndDate).format('YYYY.MM.DD')
}
</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ moment(detail.issueDate).format('YYYY.MM.DD') }</span>
<span className="v">
{ !!detail.issueDate &&
moment(detail.issueDate).format('YYYY.MM.DD')
}
</span>
</li>
<li className="kv-row">
<span className="k"></span>