Convert transaction constants to i18n-compatible getter functions

- Convert all hardcoded constant arrays to functions accepting TFunction
- Add transaction.constants namespace with 40+ translation keys
- Update contant.ts: All exports now use get* prefix (e.g., getCashReceiptPurposeTypeBtnGroup)
- Replace ko/en properties with single name property using t() function

Updated constants:
- getAllTransactionMoidTidOptionsGroup(t)
- getAllTransactionStatusCodeBtnGroup(t)
- getAllTransactionServiceCodeOptionsGroup(t)
- getAllTransactionStatusCode(t)
- getCashReceiptPurposeTypeBtnGroup(t)
- getCashReceiptTransactionTypeBtnGroup(t)
- getCashReceiptProcessResultBtnGroup(t)
- getEscrowSearchTypeOptionsGroup(t)
- getEscrowDeliveryStatusBtnGroup(t)
- getEscrowSettlementStatusBtnGroup(t)
- getBillingSearchTypeOptionsGroup(t)
- getBillingRequestStatusBtnGroup(t)
- getBillingProcessResultBtnGroup(t)
- getBillingPaymentMethodBtnGroup(t)

Updated components (9 files):
- Filter components: all-transaction, cash-receipt, billing, escrow
- List pages: billing, cash-receipt, escrow
- UI components: list-item, important-info-section

All constants now properly support Korean/English language switching.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-10-30 16:36:30 +09:00
parent e067fc8d4f
commit 29f69c248c
12 changed files with 271 additions and 163 deletions

View File

@@ -1,4 +1,5 @@
import { import { TFunction } from 'i18next';
import {
AllTransactionMoidTid, AllTransactionMoidTid,
AllTransactionSearchCl, AllTransactionSearchCl,
AllTransactionServiceCode, AllTransactionServiceCode,
@@ -6,7 +7,7 @@ import {
CashReceiptPurposeType, CashReceiptPurposeType,
CashReceiptTransactionType, CashReceiptTransactionType,
CashReceiptProcessResult, CashReceiptProcessResult,
BillingPaymentMethod, BillingPaymentMethod,
BillingProcessResult, BillingProcessResult,
BillingRequestStatus, BillingRequestStatus,
BillingSearchType, BillingSearchType,
@@ -15,121 +16,121 @@ import {
EscrowSettlementStatus EscrowSettlementStatus
} from '@/entities/transaction/model/types'; } from '@/entities/transaction/model/types';
export const AllTransactionMoidTidOptionsGroup = [ export const getAllTransactionMoidTidOptionsGroup = (t: TFunction) => [
{name: '주문번호', value: AllTransactionMoidTid.MOID}, {name: t('transaction.constants.orderNumber'), value: AllTransactionMoidTid.MOID},
{name: 'TID', value: AllTransactionMoidTid.TID}, {name: t('transaction.constants.tid'), value: AllTransactionMoidTid.TID},
]; ];
export const AllTransactionStatusCodeBtnGroup = [ export const getAllTransactionStatusCodeBtnGroup = (t: TFunction) => [
{name: '전체', value: AllTransactionStatusCode.ALL}, {name: t('transaction.constants.all'), value: AllTransactionStatusCode.ALL},
{name: '승인/입금완료', value: AllTransactionStatusCode.APPROVAL}, {name: t('transaction.constants.approvalComplete'), value: AllTransactionStatusCode.APPROVAL},
{name: '전취소/취소', value: AllTransactionStatusCode.CANCEL}, {name: t('transaction.constants.totalCancel'), value: AllTransactionStatusCode.CANCEL},
{name: '후취소/환불', value: AllTransactionStatusCode.REFUND} {name: t('transaction.constants.refund'), value: AllTransactionStatusCode.REFUND}
];
export const AllTransactionServiceCodeOptionsGroup = [
{name: '전체', value: AllTransactionServiceCode.ALL},
{name: '신용카드', value: AllTransactionServiceCode.CREDIT_CARD},
{name: '가상계좌', value: AllTransactionServiceCode.VIRTUAL_ACCOUNT},
{name: '계좌이체', value: AllTransactionServiceCode.ACCOUNT_TRANSFER},
{name: '계좌간편결제', value: AllTransactionServiceCode.ACCOUNT_SIMPLE_TRANSFER},
{name: '휴대폰', value: AllTransactionServiceCode.MOBILE_PAYMENT},
{name: 'SSG 머니', value: AllTransactionServiceCode.SSGMONEY},
{name: 'SSG 은행계좌', value: AllTransactionServiceCode.SSGBANK},
{name: '문화상품권', value: AllTransactionServiceCode.CULT},
{name: '티머니페이', value: AllTransactionServiceCode.TMONEY},
]; ];
export const AllTracsactionStatusCode = [ export const getAllTransactionServiceCodeOptionsGroup = (t: TFunction) => [
{name: t('transaction.constants.all'), value: AllTransactionServiceCode.ALL},
{name: t('transaction.constants.creditCard'), value: AllTransactionServiceCode.CREDIT_CARD},
{name: t('transaction.constants.virtualAccount'), value: AllTransactionServiceCode.VIRTUAL_ACCOUNT},
{name: t('transaction.constants.accountTransfer'), value: AllTransactionServiceCode.ACCOUNT_TRANSFER},
{name: t('transaction.constants.accountSimpleTransfer'), value: AllTransactionServiceCode.ACCOUNT_SIMPLE_TRANSFER},
{name: t('transaction.constants.mobilePayment'), value: AllTransactionServiceCode.MOBILE_PAYMENT},
{name: t('transaction.constants.ssgMoney'), value: AllTransactionServiceCode.SSGMONEY},
{name: t('transaction.constants.ssgBank'), value: AllTransactionServiceCode.SSGBANK},
{name: t('transaction.constants.cultureLand'), value: AllTransactionServiceCode.CULT},
{name: t('transaction.constants.tmoneyPay'), value: AllTransactionServiceCode.TMONEY},
];
export const getAllTransactionStatusCode = (t: TFunction) => [
{ {
serviceCode: '', serviceCode: '',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인/입금완료', en: 'Approval'}, {code: '0', name: t('transaction.constants.approvalComplete')},
{code: '1', ko: '전취소/취소', en: 'Total Cancellation'}, {code: '1', name: t('transaction.constants.totalCancel')},
{code: '2', ko: '후취소/환불', en: 'Cancellation'} {code: '2', name: t('transaction.constants.refund')}
] ]
}, },
{ {
serviceCode: '01', serviceCode: '01',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '전취소', en: 'Total Cancellation'}, {code: '1', name: t('transaction.constants.totalCancelShort')},
{code: '2', ko: '후취소', en: 'Cancellation'} {code: '2', name: t('transaction.constants.cancelShort')}
] ]
}, },
{ {
serviceCode: '02', serviceCode: '02',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '03', serviceCode: '03',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '입금', en: 'Payment Complete'}, {code: '0', name: t('transaction.constants.deposit')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
{code: '3', ko: '입금대기', en: 'Waiting Payment'}, {code: '3', name: t('transaction.constants.waitingDeposit')},
{code: '4', ko: '채번취소', en: 'Cancellation Issue'}, {code: '4', name: t('transaction.constants.issueCancel')},
] ]
}, },
{ {
serviceCode: '05', serviceCode: '05',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '14', serviceCode: '14',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '21', serviceCode: '21',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '24', serviceCode: '24',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '26', serviceCode: '26',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '취소', en: 'Cancellation'}, {code: '1', name: t('transaction.constants.cancel')},
{code: '2', ko: '환불', en: 'Refund'}, {code: '2', name: t('transaction.constants.refund')},
] ]
}, },
{ {
serviceCode: '31', serviceCode: '31',
list: [ list: [
{code: '', ko: '전체', en: 'All'}, {code: '', name: t('transaction.constants.all')},
{code: '0', ko: '승인', en: 'Approval'}, {code: '0', name: t('transaction.constants.approval')},
{code: '1', ko: '전취소', en: 'Total Cancellation'}, {code: '1', name: t('transaction.constants.totalCancelShort')},
{code: '2', ko: '후취소', en: 'Cancellation'}, {code: '2', name: t('transaction.constants.cancelShort')},
] ]
}, },
]; ];
@@ -140,63 +141,72 @@ export const AllTransactionCardBankCodeOptionsGroup = {
export const CashReceiptPurposeTypeBtnGroup = [ export const getCashReceiptPurposeTypeBtnGroup = (t: TFunction) => [
{name: '전체', value: CashReceiptPurposeType.ALL}, {name: t('transaction.constants.all'), value: CashReceiptPurposeType.ALL},
{name: '소득공제', value: CashReceiptPurposeType.INCOME_DEDUCTION}, {name: t('transaction.handWrittenIssuance.incomeDeduction'), value: CashReceiptPurposeType.INCOME_DEDUCTION},
{name: '지출증빙', value: CashReceiptPurposeType.EXPENSE_PROOF}, {name: t('transaction.handWrittenIssuance.expenseProof'), value: CashReceiptPurposeType.EXPENSE_PROOF},
]; ];
export const CashReceiptTransactionTypeBtnGroup = [
{name: '전체', value: CashReceiptTransactionType.ALL}, export const getCashReceiptTransactionTypeBtnGroup = (t: TFunction) => [
{name: '승인', value: CashReceiptTransactionType.APPROVAL}, {name: t('transaction.constants.all'), value: CashReceiptTransactionType.ALL},
{name: '취소', value: CashReceiptTransactionType.CANCEL}, {name: t('transaction.constants.approval'), value: CashReceiptTransactionType.APPROVAL},
{name: t('transaction.constants.cancel'), value: CashReceiptTransactionType.CANCEL},
]; ];
export const CashReceiptProcessResultBtnGroup = [
{name: '전체', value: CashReceiptProcessResult.ALL}, export const getCashReceiptProcessResultBtnGroup = (t: TFunction) => [
{name: '요청', value: CashReceiptProcessResult.REQUEST}, {name: t('transaction.constants.all'), value: CashReceiptProcessResult.ALL},
{name: '요청취소', value: CashReceiptProcessResult.REQUEST_CANCEL}, {name: t('transaction.constants.request'), value: CashReceiptProcessResult.REQUEST},
{name: '요청완료', value: CashReceiptProcessResult.REQUEST_COMPLETE}, {name: t('transaction.constants.requestCancel'), value: CashReceiptProcessResult.REQUEST_CANCEL},
{name: '발급완료', value: CashReceiptProcessResult.ISSUE_COMPLETE}, {name: t('transaction.constants.requestComplete'), value: CashReceiptProcessResult.REQUEST_COMPLETE},
{name: '요청실패', value: CashReceiptProcessResult.REQUEST_FAIL}, {name: t('transaction.constants.issueComplete'), value: CashReceiptProcessResult.ISSUE_COMPLETE},
{name: '발급실패', value: CashReceiptProcessResult.ISSUE_FAIL}, {name: t('transaction.constants.requestFail'), value: CashReceiptProcessResult.REQUEST_FAIL},
{name: t('transaction.constants.issueFail'), value: CashReceiptProcessResult.ISSUE_FAIL},
]; ];
export const EscrowSearchTypeOptionsGroup = [
{name: '주문번호', value: EscrowSearchType.ORDER_NUMBER }, export const getEscrowSearchTypeOptionsGroup = (t: TFunction) => [
{name: 'TID', value: EscrowSearchType.TID } {name: t('transaction.constants.orderNumber'), value: EscrowSearchType.ORDER_NUMBER },
{name: t('transaction.constants.tid'), value: EscrowSearchType.TID }
]; ];
export const EscrowDeliveryStatusBtnGroup = [
{name: '전체', value: EscrowDeliveryStatus.ALL}, export const getEscrowDeliveryStatusBtnGroup = (t: TFunction) => [
{name: '결제완료', value: EscrowDeliveryStatus.PAY_COMPLETE}, {name: t('transaction.constants.all'), value: EscrowDeliveryStatus.ALL},
{name: '배송등록', value: EscrowDeliveryStatus.DELIVERY_INSERT}, {name: t('transaction.constants.paymentComplete'), value: EscrowDeliveryStatus.PAY_COMPLETE},
{name: '배송완료', value: EscrowDeliveryStatus.DELIVERY_COMPLETE}, {name: t('transaction.constants.deliveryRegistration'), value: EscrowDeliveryStatus.DELIVERY_INSERT},
{name: '구매확인', value: EscrowDeliveryStatus.PURCHASE_CONFIRM}, {name: t('transaction.constants.deliveryComplete'), value: EscrowDeliveryStatus.DELIVERY_COMPLETE},
{name: '구매거절', value: EscrowDeliveryStatus.PURCHASE_REJECT}, {name: t('transaction.constants.purchaseConfirm'), value: EscrowDeliveryStatus.PURCHASE_CONFIRM},
{name: '환불처리', value: EscrowDeliveryStatus.RETURN_PROCESSING}, {name: t('transaction.constants.purchaseReject'), value: EscrowDeliveryStatus.PURCHASE_REJECT},
{name: '지급완료', value: EscrowDeliveryStatus.DEPOSIT_COMPLETE}, {name: t('transaction.constants.refundProcessing'), value: EscrowDeliveryStatus.RETURN_PROCESSING},
{name: t('transaction.constants.depositComplete'), value: EscrowDeliveryStatus.DEPOSIT_COMPLETE},
]; ];
export const EscrowSettlementStatusBtnGroup = [
{name: '전체', value: EscrowSettlementStatus.ALL}, export const getEscrowSettlementStatusBtnGroup = (t: TFunction) => [
{name: '신용카드', value: EscrowSettlementStatus.CREDIT_CARD}, {name: t('transaction.constants.all'), value: EscrowSettlementStatus.ALL},
{name: '가상계좌', value: EscrowSettlementStatus.REAL_ACCOUNT}, {name: t('transaction.constants.creditCard'), value: EscrowSettlementStatus.CREDIT_CARD},
{name: '계좌이체', value: EscrowSettlementStatus.ACCOUNT_TRANSFER}, {name: t('transaction.constants.virtualAccount'), value: EscrowSettlementStatus.REAL_ACCOUNT},
{name: t('transaction.constants.accountTransfer'), value: EscrowSettlementStatus.ACCOUNT_TRANSFER},
]; ];
export const BillingSearchTypeOptionsGroup = [
{name: '주문번호', value: BillingSearchType.ORDER_NUMBER }, export const getBillingSearchTypeOptionsGroup = (t: TFunction) => [
{name: 'TID', value: BillingSearchType.TID } {name: t('transaction.constants.orderNumber'), value: BillingSearchType.ORDER_NUMBER },
{name: t('transaction.constants.tid'), value: BillingSearchType.TID }
]; ];
export const BillingRequestStatusBtnGroup = [
{name: '전체', value: BillingRequestStatus.ALL}, export const getBillingRequestStatusBtnGroup = (t: TFunction) => [
{name: '진행중', value: BillingRequestStatus.IN_PROGRESS}, {name: t('transaction.constants.all'), value: BillingRequestStatus.ALL},
{name: '성공', value: BillingRequestStatus.SUCCESS}, {name: t('transaction.constants.inProgress'), value: BillingRequestStatus.IN_PROGRESS},
{name: '요청취소', value: BillingRequestStatus.REQUEST_CANCEL}, {name: t('transaction.constants.success'), value: BillingRequestStatus.SUCCESS},
{name: t('transaction.constants.requestCancel'), value: BillingRequestStatus.REQUEST_CANCEL},
]; ];
export const BillingProcessResultBtnGroup = [
{name: '전체', value: BillingProcessResult.ALL}, export const getBillingProcessResultBtnGroup = (t: TFunction) => [
{name: '성공', value: BillingProcessResult.SUCCESS}, {name: t('transaction.constants.all'), value: BillingProcessResult.ALL},
{name: '실패', value: BillingProcessResult.FAILURE}, {name: t('transaction.constants.success'), value: BillingProcessResult.SUCCESS},
{name: t('transaction.constants.failure'), value: BillingProcessResult.FAILURE},
]; ];
export const BillingPaymentMethodBtnGroup = [
{name: '전체', value: BillingPaymentMethod.ALL}, export const getBillingPaymentMethodBtnGroup = (t: TFunction) => [
{name: '신용카드', value: BillingPaymentMethod.CREDIT_CARD}, {name: t('transaction.constants.all'), value: BillingPaymentMethod.ALL},
{name: '가상계좌', value: BillingPaymentMethod.VIRTUAL_ACCOUNT}, {name: t('transaction.constants.creditCard'), value: BillingPaymentMethod.CREDIT_CARD},
{name: '휴대폰', value: BillingPaymentMethod.MOBILE_PAYMENT}, {name: t('transaction.constants.virtualAccount'), value: BillingPaymentMethod.VIRTUAL_ACCOUNT},
{name: t('transaction.constants.mobilePayment'), value: BillingPaymentMethod.MOBILE_PAYMENT},
]; ];

View File

@@ -9,8 +9,8 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
import { import {
AllTransactionMoidTidOptionsGroup, getAllTransactionMoidTidOptionsGroup,
AllTracsactionStatusCode, getAllTransactionStatusCode,
} from '@/entities/transaction/model/contant'; } from '@/entities/transaction/model/contant';
import { import {
AllTransactionFilterProps, AllTransactionFilterProps,
@@ -80,6 +80,9 @@ export const AllTransactionFilter = ({
const [statusCodeBtns, setStatusCodeBtns] = useState<Array<Record<string, string>>>(); const [statusCodeBtns, setStatusCodeBtns] = useState<Array<Record<string, string>>>();
const moidTidOptionsGroup = getAllTransactionMoidTidOptionsGroup(t);
const allTransactionStatusCode = getAllTransactionStatusCode(t);
const onClickToClose = () => { const onClickToClose = () => {
setFilterOn(false); setFilterOn(false);
}; };
@@ -155,12 +158,12 @@ export const AllTransactionFilter = ({
}; };
const onChangeServiceCode = (val: string) => { const onChangeServiceCode = (val: string) => {
let list = AllTracsactionStatusCode.filter((value, index) => { let list = allTransactionStatusCode.filter((value, index) => {
return val === value.serviceCode; return val === value.serviceCode;
})[0]?.list; })[0]?.list;
let btns = list?.map((value, index) => { let btns = list?.map((value, index) => {
return { return {
name: value.ko, name: value.name,
value: value.code value: value.code
} }
}); });
@@ -211,7 +214,7 @@ export const AllTransactionFilter = ({
title={t('filter.orderNumberTid')} title={t('filter.orderNumberTid')}
selectValue={ filterMoidTidType } selectValue={ filterMoidTidType }
selectSetter={ setFilterMoidTidType } selectSetter={ setFilterMoidTidType }
selectOptions={ AllTransactionMoidTidOptionsGroup } selectOptions={ moidTidOptionsGroup }
inputValue={ filterMoidTidValue } inputValue={ filterMoidTidValue }
inputSetter={ setFilterMoidTidValue } inputSetter={ setFilterMoidTidValue }
></FilterSelectInput> ></FilterSelectInput>

View File

@@ -9,10 +9,10 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
import { import {
BillingSearchTypeOptionsGroup, getBillingSearchTypeOptionsGroup,
BillingRequestStatusBtnGroup, getBillingRequestStatusBtnGroup,
BillingProcessResultBtnGroup, getBillingProcessResultBtnGroup,
BillingPaymentMethodBtnGroup getBillingPaymentMethodBtnGroup
} from '@/entities/transaction/model/contant'; } from '@/entities/transaction/model/contant';
import { import {
BillingFilterProps, BillingFilterProps,
@@ -68,6 +68,11 @@ export const BillingFilter = ({
const midOptions = useStore.getState().UserStore.selectOptionsMids; const midOptions = useStore.getState().UserStore.selectOptionsMids;
const searchTypeOptionsGroup = getBillingSearchTypeOptionsGroup(t);
const requestStatusBtnGroup = getBillingRequestStatusBtnGroup(t);
const processResultBtnGroup = getBillingProcessResultBtnGroup(t);
const paymentMethodBtnGroup = getBillingPaymentMethodBtnGroup(t);
const onClickToClose = () => { const onClickToClose = () => {
setFilterOn(false); setFilterOn(false);
}; };
@@ -131,7 +136,7 @@ export const BillingFilter = ({
title={t('filter.orderNumberTid')} title={t('filter.orderNumberTid')}
selectValue={ filterSearchType } selectValue={ filterSearchType }
selectSetter={ setFilterSearchType } selectSetter={ setFilterSearchType }
selectOptions={ BillingSearchTypeOptionsGroup } selectOptions={ searchTypeOptionsGroup }
inputValue={ searchKeyword } inputValue={ searchKeyword }
inputSetter={ setFilterSearchKeyword } inputSetter={ setFilterSearchKeyword }
></FilterSelectInput> ></FilterSelectInput>
@@ -146,19 +151,19 @@ export const BillingFilter = ({
<FilterButtonGroups <FilterButtonGroups
title={t('filter.requestStatus')} title={t('filter.requestStatus')}
activeValue={ filterRequestStatus } activeValue={ filterRequestStatus }
btnGroups={ BillingRequestStatusBtnGroup } btnGroups={ requestStatusBtnGroup }
setter={ setFilterRequestStatus } setter={ setFilterRequestStatus }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterButtonGroups <FilterButtonGroups
title={t('filter.processingResult')} title={t('filter.processingResult')}
activeValue={ filterProcessResult } activeValue={ filterProcessResult }
btnGroups={ BillingProcessResultBtnGroup } btnGroups={ processResultBtnGroup }
setter={ setFilterProcessResult } setter={ setFilterProcessResult }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterButtonGroups <FilterButtonGroups
title={t('filter.paymentMethod')} title={t('filter.paymentMethod')}
activeValue={ filterPaymentMethod } activeValue={ filterPaymentMethod }
btnGroups={ BillingPaymentMethodBtnGroup } btnGroups={ paymentMethodBtnGroup }
setter={ setFilterPaymentMethod } setter={ setFilterPaymentMethod }
></FilterButtonGroups> ></FilterButtonGroups>

View File

@@ -8,9 +8,9 @@ import { FilterSelectInput } from '@/shared/ui/filter/select-input';
import { FilterCalendar } from '@/shared/ui/filter/calendar'; import { FilterCalendar } from '@/shared/ui/filter/calendar';
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { import {
CashReceiptPurposeTypeBtnGroup, getCashReceiptPurposeTypeBtnGroup,
CashReceiptTransactionTypeBtnGroup, getCashReceiptTransactionTypeBtnGroup,
CashReceiptProcessResultBtnGroup getCashReceiptProcessResultBtnGroup
} from '@/entities/transaction/model/contant'; } from '@/entities/transaction/model/contant';
import { import {
CashReceiptFilterProps, CashReceiptFilterProps,
@@ -64,6 +64,10 @@ export const CashReceiptFilter = ({
const midOptions = useStore.getState().UserStore.selectOptionsMids; const midOptions = useStore.getState().UserStore.selectOptionsMids;
const purposeTypeBtnGroup = getCashReceiptPurposeTypeBtnGroup(t);
const transactionTypeBtnGroup = getCashReceiptTransactionTypeBtnGroup(t);
const processResultBtnGroup = getCashReceiptProcessResultBtnGroup(t);
const onClickToClose = () => { const onClickToClose = () => {
setFilterOn(false); setFilterOn(false);
}; };
@@ -130,19 +134,19 @@ export const CashReceiptFilter = ({
<FilterButtonGroups <FilterButtonGroups
title={t('filter.purpose')} title={t('filter.purpose')}
activeValue={ filterPurposeType } activeValue={ filterPurposeType }
btnGroups={ CashReceiptPurposeTypeBtnGroup } btnGroups={ purposeTypeBtnGroup }
setter={ setFilterPurposeType } setter={ setFilterPurposeType }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterButtonGroups <FilterButtonGroups
title={t('filter.transactionCategory')} title={t('filter.transactionCategory')}
activeValue={ filterTransactionType } activeValue={ filterTransactionType }
btnGroups={ CashReceiptTransactionTypeBtnGroup } btnGroups={ transactionTypeBtnGroup }
setter={ setFilterTransactionType } setter={ setFilterTransactionType }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterButtonGroups <FilterButtonGroups
title={t('filter.progressStatus')} title={t('filter.progressStatus')}
activeValue={ filterProcessResult } activeValue={ filterProcessResult }
btnGroups={ CashReceiptProcessResultBtnGroup } btnGroups={ processResultBtnGroup }
setter={ setFilterProcessResult } setter={ setFilterProcessResult }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterSelectInput <FilterSelectInput

View File

@@ -9,9 +9,9 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
import { import {
EscrowDeliveryStatusBtnGroup, getEscrowDeliveryStatusBtnGroup,
EscrowSettlementStatusBtnGroup, getEscrowSettlementStatusBtnGroup,
EscrowSearchTypeOptionsGroup getEscrowSearchTypeOptionsGroup
} from '@/entities/transaction/model/contant'; } from '@/entities/transaction/model/contant';
import { import {
EscrowFilterProps, EscrowFilterProps,
@@ -62,7 +62,11 @@ export const EscrowFilter = ({
const [filterMaxAmount, setFilterMaxAmount] = useState<number | undefined>(maxAmount); const [filterMaxAmount, setFilterMaxAmount] = useState<number | undefined>(maxAmount);
const midOptions = useStore.getState().UserStore.selectOptionsMids; const midOptions = useStore.getState().UserStore.selectOptionsMids;
const searchTypeOptionsGroup = getEscrowSearchTypeOptionsGroup(t);
const deliveryStatusBtnGroup = getEscrowDeliveryStatusBtnGroup(t);
const settlementStatusBtnGroup = getEscrowSettlementStatusBtnGroup(t);
const onClickToClose = () => { const onClickToClose = () => {
setFilterOn(false); setFilterOn(false);
}; };
@@ -125,7 +129,7 @@ export const EscrowFilter = ({
title={t('filter.orderNumberTid')} title={t('filter.orderNumberTid')}
selectValue={ filterSearchType } selectValue={ filterSearchType }
selectSetter={ setSearchType } selectSetter={ setSearchType }
selectOptions={ EscrowSearchTypeOptionsGroup } selectOptions={ searchTypeOptionsGroup }
inputValue={ searchKeyword } inputValue={ searchKeyword }
inputSetter={ setSearchKeyword } inputSetter={ setSearchKeyword }
></FilterSelectInput> ></FilterSelectInput>
@@ -140,13 +144,13 @@ export const EscrowFilter = ({
<FilterButtonGroups <FilterButtonGroups
title={t('filter.deliveryStatus')} title={t('filter.deliveryStatus')}
activeValue={ filterDeliveryStatus } activeValue={ filterDeliveryStatus }
btnGroups={ EscrowDeliveryStatusBtnGroup } btnGroups={ deliveryStatusBtnGroup }
setter={ setFilterDeliveryStatus } setter={ setFilterDeliveryStatus }
></FilterButtonGroups> ></FilterButtonGroups>
<FilterButtonGroups <FilterButtonGroups
title={t('filter.paymentMethod')} title={t('filter.paymentMethod')}
activeValue={ filterSettlementStatus } activeValue={ filterSettlementStatus }
btnGroups={ EscrowSettlementStatusBtnGroup } btnGroups={ settlementStatusBtnGroup }
setter={ setFilterSettlementStatus } setter={ setFilterSettlementStatus }
></FilterButtonGroups> ></FilterButtonGroups>

View File

@@ -4,7 +4,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { ListItemProps, TransactionCategory } from '../model/types'; import { ListItemProps, TransactionCategory } from '../model/types';
import moment from 'moment'; import moment from 'moment';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { AllTracsactionStatusCode } from '../model/contant'; import { getAllTransactionStatusCode } from '../model/contant';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
export const ListItem = ({ export const ListItem = ({
@@ -129,15 +129,16 @@ export const ListItem = ({
const getStatusName = () => { const getStatusName = () => {
let str; let str;
if(transactionCategory === TransactionCategory.AllTransaction){ if(transactionCategory === TransactionCategory.AllTransaction){
Loop1: const allTransactionStatusCode = getAllTransactionStatusCode(t);
for(let i=0;i<AllTracsactionStatusCode.length;i++){ Loop1:
if(serviceCode === AllTracsactionStatusCode[i]?.serviceCode){ for(let i=0;i<allTransactionStatusCode.length;i++){
let list = AllTracsactionStatusCode[i]?.list; if(serviceCode === allTransactionStatusCode[i]?.serviceCode){
let list = allTransactionStatusCode[i]?.list;
if(!!list){ if(!!list){
Loop2: Loop2:
for(let j=0;j<list.length;j++){ for(let j=0;j<list.length;j++){
if(list[j]?.code === statusCode){ if(list[j]?.code === statusCode){
str = list[j]?.ko; str = list[j]?.name;
break Loop1; break Loop1;
} }
} }

View File

@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
import { NumericFormat } from 'react-number-format'; import { NumericFormat } from 'react-number-format';
import { InfoSectionProps, TransactionCategory } from '../../model/types'; import { InfoSectionProps, TransactionCategory } from '../../model/types';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { AllTracsactionStatusCode } from '../../model/contant'; import { getAllTransactionStatusCode } from '../../model/contant';
export const ImportantInfoSection = ({ export const ImportantInfoSection = ({
transactionCategory, transactionCategory,
@@ -29,15 +29,16 @@ export const ImportantInfoSection = ({
const getStatusName = (serviceCode: string, statusCode: string) => { const getStatusName = (serviceCode: string, statusCode: string) => {
let str; let str;
if(transactionCategory === TransactionCategory.AllTransaction){ if(transactionCategory === TransactionCategory.AllTransaction){
Loop1: const allTransactionStatusCode = getAllTransactionStatusCode(t);
for(let i=0;i<AllTracsactionStatusCode.length;i++){ Loop1:
if(serviceCode === AllTracsactionStatusCode[i]?.serviceCode){ for(let i=0;i<allTransactionStatusCode.length;i++){
let list = AllTracsactionStatusCode[i]?.list; if(serviceCode === allTransactionStatusCode[i]?.serviceCode){
let list = allTransactionStatusCode[i]?.list;
if(!!list){ if(!!list){
Loop2: Loop2:
for(let j=0;j<list.length;j++){ for(let j=0;j<list.length;j++){
if(list[j]?.code === statusCode){ if(list[j]?.code === statusCode){
str = list[j]?.ko; str = list[j]?.name;
break Loop1; break Loop1;
} }
} }

View File

@@ -514,6 +514,46 @@
"customerName": "Customer Name", "customerName": "Customer Name",
"transactionConfirmation": "Transaction Confirmation" "transactionConfirmation": "Transaction Confirmation"
}, },
"constants": {
"all": "All",
"orderNumber": "Order Number",
"tid": "TID",
"approval": "Approval",
"approvalComplete": "Approval/Payment Complete",
"cancel": "Cancel",
"cancelShort": "Cancellation",
"totalCancel": "Total Cancellation/Cancel",
"totalCancelShort": "Total Cancellation",
"refund": "Refund",
"deposit": "Deposit",
"waitingDeposit": "Waiting Deposit",
"issueCancel": "Issue Cancel",
"creditCard": "Credit Card",
"virtualAccount": "Virtual Account",
"accountTransfer": "Account Transfer",
"accountSimpleTransfer": "Account Simple Payment",
"mobilePayment": "Mobile Payment",
"ssgMoney": "SSG Money",
"ssgBank": "SSG Bank Account",
"cultureLand": "Culture Gift Certificate",
"tmoneyPay": "Tmoney Pay",
"request": "Request",
"requestCancel": "Request Cancel",
"requestComplete": "Request Complete",
"issueComplete": "Issue Complete",
"requestFail": "Request Failed",
"issueFail": "Issue Failed",
"paymentComplete": "Payment Complete",
"deliveryRegistration": "Delivery Registration",
"deliveryComplete": "Delivery Complete",
"purchaseConfirm": "Purchase Confirm",
"purchaseReject": "Purchase Reject",
"refundProcessing": "Refund Processing",
"depositComplete": "Deposit Complete",
"inProgress": "In Progress",
"success": "Success",
"failure": "Failure"
},
"handWrittenIssuance": { "handWrittenIssuance": {
"step1Title": "Enter Issue Information", "step1Title": "Enter Issue Information",
"step2Title": "Enter Issue Amount", "step2Title": "Enter Issue Amount",

View File

@@ -518,6 +518,46 @@
"customerName": "고객명", "customerName": "고객명",
"transactionConfirmation": "거래 확인서" "transactionConfirmation": "거래 확인서"
}, },
"constants": {
"all": "전체",
"orderNumber": "주문번호",
"tid": "TID",
"approval": "승인",
"approvalComplete": "승인/입금완료",
"cancel": "취소",
"cancelShort": "후취소",
"totalCancel": "전취소/취소",
"totalCancelShort": "전취소",
"refund": "환불",
"deposit": "입금",
"waitingDeposit": "입금대기",
"issueCancel": "채번취소",
"creditCard": "신용카드",
"virtualAccount": "가상계좌",
"accountTransfer": "계좌이체",
"accountSimpleTransfer": "계좌간편결제",
"mobilePayment": "휴대폰",
"ssgMoney": "SSG 머니",
"ssgBank": "SSG 은행계좌",
"cultureLand": "문화상품권",
"tmoneyPay": "티머니페이",
"request": "요청",
"requestCancel": "요청취소",
"requestComplete": "요청완료",
"issueComplete": "발급완료",
"requestFail": "요청실패",
"issueFail": "발급실패",
"paymentComplete": "결제완료",
"deliveryRegistration": "배송등록",
"deliveryComplete": "배송완료",
"purchaseConfirm": "구매확인",
"purchaseReject": "구매거절",
"refundProcessing": "환불처리",
"depositComplete": "지급완료",
"inProgress": "진행중",
"success": "성공",
"failure": "실패"
},
"handWrittenIssuance": { "handWrittenIssuance": {
"step1Title": "발행 정보 입력", "step1Title": "발행 정보 입력",
"step2Title": "발행 금액 입력", "step2Title": "발행 금액 입력",

View File

@@ -21,7 +21,7 @@ import { useDownloadExcelMutation } from '@/entities/transaction/api/use-downloa
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { BillingFilter } from '@/entities/transaction/ui/filter/billing-filter'; import { BillingFilter } from '@/entities/transaction/ui/filter/billing-filter';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box'; import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
import { BillingRequestStatusBtnGroup } from '@/entities/transaction/model/contant'; import { getBillingRequestStatusBtnGroup } from '@/entities/transaction/model/contant';
import { SortTypeKeys, HeaderType, DefaultRequestPagination } from '@/entities/common/model/types'; import { SortTypeKeys, HeaderType, DefaultRequestPagination } from '@/entities/common/model/types';
import { import {
useSetOnBack, useSetOnBack,
@@ -203,8 +203,8 @@ export const BillingListPage = () => {
<div className="excrow"> <div className="excrow">
<div className="full-menu-keywords no-padding"> <div className="full-menu-keywords no-padding">
{ {
BillingRequestStatusBtnGroup.map((value, index) => ( getBillingRequestStatusBtnGroup(t).map((value: any, index: number) => (
<span <span
key={ `key-service-code=${ index }` } key={ `key-service-code=${ index }` }
className={ `keyword-tag ${(requestStatus === value.value)? 'active': ''}` } className={ `keyword-tag ${(requestStatus === value.value)? 'active': ''}` }
onClick={ () => onClickToRequestStatus(value.value) } onClick={ () => onClickToRequestStatus(value.value) }

View File

@@ -30,7 +30,7 @@ import {
useSetHeaderType, useSetHeaderType,
useSetFooterMode useSetFooterMode
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
import { CashReceiptTransactionTypeBtnGroup } from '@/entities/transaction/model/contant'; import { getCashReceiptTransactionTypeBtnGroup } from '@/entities/transaction/model/contant';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { useCashReceiptSummaryMutation } from '@/entities/transaction/api/use-cash-receipt-summary-mutation'; import { useCashReceiptSummaryMutation } from '@/entities/transaction/api/use-cash-receipt-summary-mutation';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
@@ -256,7 +256,7 @@ export const CashReceiptListPage = () => {
<div> <div>
<div className="full-menu-keywords no-padding"> <div className="full-menu-keywords no-padding">
{ {
CashReceiptTransactionTypeBtnGroup.map((value, index) => ( getCashReceiptTransactionTypeBtnGroup(t).map((value: any, index: number) => (
<span <span
key={`key-service-code=${index}`} key={`key-service-code=${index}`}
className={`keyword-tag ${(transactionType === value.value) ? 'active' : ''}`} className={`keyword-tag ${(transactionType === value.value) ? 'active' : ''}`}

View File

@@ -19,7 +19,7 @@ import { useEscrowListMutation } from '@/entities/transaction/api/use-escrow-lis
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation'; import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { EscrowFilter } from '@/entities/transaction/ui/filter/escrow-filter'; import { EscrowFilter } from '@/entities/transaction/ui/filter/escrow-filter';
import { EscrowDeliveryStatusBtnGroup } from '@/entities/transaction/model/contant'; import { getEscrowDeliveryStatusBtnGroup } from '@/entities/transaction/model/contant';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box'; import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
import { SortTypeKeys, HeaderType, DefaultRequestPagination } from '@/entities/common/model/types'; import { SortTypeKeys, HeaderType, DefaultRequestPagination } from '@/entities/common/model/types';
import { import {
@@ -207,8 +207,8 @@ export const EscrowListPage = () => {
<div className="excrow"> <div className="excrow">
<div className="full-menu-keywords no-padding"> <div className="full-menu-keywords no-padding">
{ {
EscrowDeliveryStatusBtnGroup.map((value, index) => ( getEscrowDeliveryStatusBtnGroup(t).map((value: any, index: number) => (
<span <span
key={ `key-service-code=${ index }` } key={ `key-service-code=${ index }` }
className={ `keyword-tag ${(deliveryStatus === value.value)? 'active': ''}` } className={ `keyword-tag ${(deliveryStatus === value.value)? 'active': ''}` }
onClick={ () => onClickToDeliveryStatus(value.value) } onClick={ () => onClickToDeliveryStatus(value.value) }