- 지급대행 입금확인서 다운로드 활성화 조건 수정
- 일부 확인 스낵바 문자열 다국어화 적용
This commit is contained in:
@@ -29,6 +29,7 @@ export interface PayoutListItem {
|
|||||||
companyName?: string;
|
companyName?: string;
|
||||||
status?: PayoutDisbursementStatus;
|
status?: PayoutDisbursementStatus;
|
||||||
amount?: number;
|
amount?: number;
|
||||||
|
depositAmount?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface ExtensionPayoutRequestParams {
|
export interface ExtensionPayoutRequestParams {
|
||||||
@@ -93,4 +94,12 @@ export interface ExtensionPayoutDetailDownloadCertificateParams extends Extensio
|
|||||||
email: string;
|
email: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface ExtensionPayoutDetailDownloadCertificateResponse { };
|
export interface ExtensionPayoutDetailDownloadCertificateResponse {
|
||||||
|
depositDateTime?: string;
|
||||||
|
depositBank?: string;
|
||||||
|
depositAccount?: string;
|
||||||
|
amount?: number;
|
||||||
|
depositRemark?: string;
|
||||||
|
depositId?: string;
|
||||||
|
message?: string;
|
||||||
|
};
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ export interface DetailData {
|
|||||||
requestId?: string;
|
requestId?: string;
|
||||||
subReqId?: string;
|
subReqId?: string;
|
||||||
detailOn: boolean;
|
detailOn: boolean;
|
||||||
|
depositAmount?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================================
|
// ========================================
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ export const ListDateGroup = ({
|
|||||||
settlementDate={ items[i]?.settlementDate }
|
settlementDate={ items[i]?.settlementDate }
|
||||||
companyName={ items[i]?. companyName }
|
companyName={ items[i]?. companyName }
|
||||||
status={ items[i]?.status }
|
status={ items[i]?.status }
|
||||||
|
depositAmount={ items[i]?.depositAmount }
|
||||||
|
|
||||||
orderStatus={ items[i]?.orderStatus }
|
orderStatus={ items[i]?.orderStatus }
|
||||||
orderTime={ items[i]?.orderTime }
|
orderTime={ items[i]?.orderTime }
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ export const ListItem = ({
|
|||||||
authResult, failReason, requestTime,
|
authResult, failReason, requestTime,
|
||||||
resendEnabled,
|
resendEnabled,
|
||||||
onResendClick,
|
onResendClick,
|
||||||
setDetailData
|
setDetailData,
|
||||||
|
depositAmount
|
||||||
}: ListItemProps) => {
|
}: ListItemProps) => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
@@ -222,7 +223,8 @@ export const ListItem = ({
|
|||||||
setDetailData({
|
setDetailData({
|
||||||
mid: mid,
|
mid: mid,
|
||||||
tid: tid,
|
tid: tid,
|
||||||
detailOn: true
|
detailOn: true,
|
||||||
|
depositAmount: depositAmount
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,19 +12,22 @@ import { showAlert } from '@/widgets/show-alert';
|
|||||||
import { checkGrant } from '@/shared/lib/check-grant';
|
import { checkGrant } from '@/shared/lib/check-grant';
|
||||||
import { snackBar } from '@/shared/lib';
|
import { snackBar } from '@/shared/lib';
|
||||||
import { DepositReceiptSample } from '@/entities/common/ui/deposit-receipt-sample';
|
import { DepositReceiptSample } from '@/entities/common/ui/deposit-receipt-sample';
|
||||||
|
import { DepositInfo } from '@/entities/transaction/model/types';
|
||||||
|
|
||||||
export interface PayoutDetailProps {
|
export interface PayoutDetailProps {
|
||||||
detailOn: boolean;
|
detailOn: boolean;
|
||||||
setDetailOn: (detailOn: boolean) => void;
|
setDetailOn: (detailOn: boolean) => void;
|
||||||
mid: string;
|
mid: string;
|
||||||
tid: string;
|
tid: string;
|
||||||
|
depositAmount?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const PayoutDetail = ({
|
export const PayoutDetail = ({
|
||||||
detailOn,
|
detailOn,
|
||||||
setDetailOn,
|
setDetailOn,
|
||||||
mid,
|
mid,
|
||||||
tid
|
tid,
|
||||||
|
depositAmount
|
||||||
}: PayoutDetailProps) => {
|
}: PayoutDetailProps) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
@@ -32,6 +35,7 @@ export const PayoutDetail = ({
|
|||||||
|
|
||||||
const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false);
|
const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false);
|
||||||
const [depositReceiptSampleOn, setDepositReceiptSampleOn] = useState<boolean>(false);
|
const [depositReceiptSampleOn, setDepositReceiptSampleOn] = useState<boolean>(false);
|
||||||
|
const [depositReceiptData, setDepositReceiptData] = useState<ExtensionPayoutDetailDownloadCertificateResponse>();
|
||||||
|
|
||||||
const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation();
|
const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation();
|
||||||
const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation();
|
const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation();
|
||||||
@@ -70,12 +74,13 @@ export const PayoutDetail = ({
|
|||||||
requestType: selectedMode,
|
requestType: selectedMode,
|
||||||
email: ''
|
email: ''
|
||||||
};
|
};
|
||||||
extensionPayoutDetailDownloadCertification(params).then((rs: ExtensionPayoutDetailDownloadCertificateResponse) => {
|
extensionPayoutDetailDownloadCertification(params).then((rs: any) => {
|
||||||
console.log('Certificate Download Status:', rs);
|
console.log('Certificate Download Status:', rs);
|
||||||
if (selectedMode === DownloadSelectedMode.IMAGE) {
|
if (selectedMode === DownloadSelectedMode.IMAGE) {
|
||||||
setDepositReceiptSampleOn(true)
|
setDepositReceiptData(rs);
|
||||||
|
setDepositReceiptSampleOn(true);
|
||||||
} else if (selectedMode === DownloadSelectedMode.EMAIL) {
|
} else if (selectedMode === DownloadSelectedMode.EMAIL) {
|
||||||
snackBar('입금확인서 다운 성공')
|
console.log('Certificate Download Status:', rs);
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
console.error('Certificate Download Failed:', error);
|
console.error('Certificate Download Failed:', error);
|
||||||
@@ -136,16 +141,18 @@ export const PayoutDetail = ({
|
|||||||
</div>
|
</div>
|
||||||
<div className="num-store">{detail?.companyName}</div>
|
<div className="num-store">{detail?.companyName}</div>
|
||||||
<div className="num-day">{moment(detail?.settlementDate).format('YYYY.MM.DD')}</div>
|
<div className="num-day">{moment(detail?.settlementDate).format('YYYY.MM.DD')}</div>
|
||||||
<div className="receipt-row">
|
{depositAmount != null && (
|
||||||
<button
|
<div className="receipt-row">
|
||||||
className="receipt-btn"
|
<button
|
||||||
type="button"
|
className="receipt-btn"
|
||||||
onClick={onClickToOpenDownloadBottomSheet}
|
type="button"
|
||||||
>
|
onClick={onClickToOpenDownloadBottomSheet}
|
||||||
<span className="icon-24 download"></span>
|
>
|
||||||
<span>{t('additionalService.payout.depositCertificate')}</span>
|
<span className="icon-24 download"></span>
|
||||||
</button>
|
<span>{t('additionalService.payout.depositCertificate')}</span>
|
||||||
</div>
|
</button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="detail-divider"></div>
|
<div className="detail-divider"></div>
|
||||||
<div className="pay-detail">
|
<div className="pay-detail">
|
||||||
@@ -208,6 +215,14 @@ export const PayoutDetail = ({
|
|||||||
<DepositReceiptSample
|
<DepositReceiptSample
|
||||||
depositReceiptSampleOn={depositReceiptSampleOn}
|
depositReceiptSampleOn={depositReceiptSampleOn}
|
||||||
setDepositReceiptSampleOn={setDepositReceiptSampleOn}
|
setDepositReceiptSampleOn={setDepositReceiptSampleOn}
|
||||||
|
depositInfo={{
|
||||||
|
depositDate: depositReceiptData?.depositDateTime ? moment(depositReceiptData.depositDateTime, 'YYYYMMDDHHmmss').format('YYYY/MM/DD HH:mm:ss') : undefined,
|
||||||
|
depositBank: depositReceiptData?.depositBank,
|
||||||
|
depositAccount: depositReceiptData?.depositAccount,
|
||||||
|
amount: depositReceiptData?.amount,
|
||||||
|
depositReason: depositReceiptData?.depositRemark,
|
||||||
|
depositId: depositReceiptData?.depositId
|
||||||
|
}}
|
||||||
></DepositReceiptSample>
|
></DepositReceiptSample>
|
||||||
}
|
}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export const DepositReceiptSample = ({
|
|||||||
value={depositInfo?.amount}
|
value={depositInfo?.amount}
|
||||||
thousandSeparator
|
thousandSeparator
|
||||||
displayType='text'
|
displayType='text'
|
||||||
suffix='원'
|
suffix=' 원'
|
||||||
>
|
>
|
||||||
</NumericFormat>
|
</NumericFormat>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1020,7 +1020,8 @@
|
|||||||
"select": "Select",
|
"select": "Select",
|
||||||
"request": "Request",
|
"request": "Request",
|
||||||
"searchRequest": "Search Request",
|
"searchRequest": "Search Request",
|
||||||
"searchRequestSuccess": "Search Reqeust Complete"
|
"searchRequestSuccess": "Search Reqeust Complete",
|
||||||
|
"accountNumberWrong": "Invalid account number. Please check the account number."
|
||||||
},
|
},
|
||||||
"faceAuth": {
|
"faceAuth": {
|
||||||
"authentication": "Authentication",
|
"authentication": "Authentication",
|
||||||
|
|||||||
@@ -1020,7 +1020,8 @@
|
|||||||
"select": "선택",
|
"select": "선택",
|
||||||
"request": "신청",
|
"request": "신청",
|
||||||
"searchRequest": "조회 신청",
|
"searchRequest": "조회 신청",
|
||||||
"searchRequestSuccess": "조회 신청을 성공하였습니다."
|
"searchRequestSuccess": "조회 신청을 성공하였습니다.",
|
||||||
|
"accountNumberWrong": "잘못된 계좌번호입니다. 계좌번호를 확인해주세요."
|
||||||
},
|
},
|
||||||
"faceAuth": {
|
"faceAuth": {
|
||||||
"authentication": "인증",
|
"authentication": "인증",
|
||||||
|
|||||||
@@ -172,13 +172,12 @@ export const AccountHolderSearchPage = () => {
|
|||||||
bankCode: bank,
|
bankCode: bank,
|
||||||
resultStatus: resultStatus
|
resultStatus: resultStatus
|
||||||
}).then((rs) => {
|
}).then((rs) => {
|
||||||
// if (rs.status) {
|
console.log('Excel Download Status:', rs.status);
|
||||||
// setTimeout(() => {
|
}).catch((e: any) => {
|
||||||
// snackBar("다운로드가 완료되었습니다.");
|
if(e.response?.data?.error?.message){
|
||||||
// }, 2000);
|
snackBar(e.response?.data?.error?.message);
|
||||||
// } else {
|
return;
|
||||||
// snackBar("다운로드에 실패했습니다.")
|
}
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ import { AccountHolderSearchDetail } from '@/entities/additional-service/ui/acco
|
|||||||
export const AccountHolderSearchRequestPage = () => {
|
export const AccountHolderSearchRequestPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
// const [detailOn, setDetailOn] = useState<boolean>(false);
|
|
||||||
// const [detailMid, setDetailMid] = useState<string>('');
|
|
||||||
// const [detailTid, setDetailTid] = useState<string>('');
|
|
||||||
|
|
||||||
const userMid = useStore.getState().UserStore.mid;
|
const userMid = useStore.getState().UserStore.mid;
|
||||||
const midOptionsWithoutGids = useStore.getState().UserStore.selectOptionsMidsWithoutGids;
|
const midOptionsWithoutGids = useStore.getState().UserStore.selectOptionsMidsWithoutGids;
|
||||||
@@ -59,16 +56,6 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
setFormData({ ...formData, [field]: value });
|
setFormData({ ...formData, [field]: value });
|
||||||
};
|
};
|
||||||
|
|
||||||
// const setDetailData = (response: ExtensionAccountHolderSearchRequestResponse) => {
|
|
||||||
// if (formData.mid) {
|
|
||||||
// setDetailMid(formData.mid);
|
|
||||||
// }
|
|
||||||
// if (response?.data?.tid) {
|
|
||||||
// setDetailTid(response.data.tid);
|
|
||||||
// }
|
|
||||||
// setDetailOn(true);
|
|
||||||
// }
|
|
||||||
|
|
||||||
const onClickToRequest = () => {
|
const onClickToRequest = () => {
|
||||||
const requestParams: ExtensionAccountHolderSearchRequestParams = {
|
const requestParams: ExtensionAccountHolderSearchRequestParams = {
|
||||||
mid: formData.mid,
|
mid: formData.mid,
|
||||||
@@ -83,10 +70,15 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
console.log("Account holder search request success: ", response.status)
|
console.log("Account holder search request success: ", response.status)
|
||||||
snackBar(t('additionalService.accountHolderSearch.searchRequestSuccess'))
|
snackBar(t('additionalService.accountHolderSearch.searchRequestSuccess'))
|
||||||
navigate(PATHS.additionalService.accountHolderSearch.list);
|
navigate(PATHS.additionalService.accountHolderSearch.list);
|
||||||
//setDetailData(response)
|
|
||||||
} else {
|
} else {
|
||||||
const errorMessage = response.error?.message || t('common.requestFailed');
|
console.log("AccountHolder Fail", response.error?.code)
|
||||||
snackBar(`[${t('common.failed')}] ${errorMessage}`);
|
if (response.error?.code === "007") {
|
||||||
|
const errorMessage = t('additionalService.accountHolderSEarch.accountNumberWrong')
|
||||||
|
snackBar(`[${t('common.failed')}] ${errorMessage}`)
|
||||||
|
} else {
|
||||||
|
const errorMessage = response.error?.message || t('common.requestFailed');
|
||||||
|
snackBar(`[${t('common.failed')}] ${errorMessage}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
@@ -180,12 +172,6 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
{/* <AccountHolderSearchDetail
|
|
||||||
detailOn={detailOn}
|
|
||||||
setDetailOn={setDetailOn}
|
|
||||||
mid={detailMid}
|
|
||||||
tid={detailTid}
|
|
||||||
></AccountHolderSearchDetail> */}
|
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -65,6 +65,7 @@ export const PayoutListPage = () => {
|
|||||||
const [detailOn, setDetailOn] = useState<boolean>(false);
|
const [detailOn, setDetailOn] = useState<boolean>(false);
|
||||||
const [detailMid, setDetailMid] = useState<string>('');
|
const [detailMid, setDetailMid] = useState<string>('');
|
||||||
const [detailTid, setDetailTid] = useState<string>('');
|
const [detailTid, setDetailTid] = useState<string>('');
|
||||||
|
const [detailDepositAmount, setDetailDepositAmount] = useState<number | undefined>();
|
||||||
|
|
||||||
const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation();
|
const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation();
|
||||||
const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation();
|
const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation();
|
||||||
@@ -196,6 +197,9 @@ export const PayoutListPage = () => {
|
|||||||
if (detailData.tid) {
|
if (detailData.tid) {
|
||||||
setDetailTid(detailData.tid);
|
setDetailTid(detailData.tid);
|
||||||
}
|
}
|
||||||
|
if (detailData.depositAmount !== undefined) {
|
||||||
|
setDetailDepositAmount(detailData.depositAmount);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onClickToOpenFilter = () => {
|
const onClickToOpenFilter = () => {
|
||||||
@@ -378,6 +382,7 @@ export const PayoutListPage = () => {
|
|||||||
setDetailOn={setDetailOn}
|
setDetailOn={setDetailOn}
|
||||||
mid={detailMid}
|
mid={detailMid}
|
||||||
tid={detailTid}
|
tid={detailTid}
|
||||||
|
depositAmount={detailDepositAmount}
|
||||||
>
|
>
|
||||||
</PayoutDetail>
|
</PayoutDetail>
|
||||||
{ !!downloadBottomSheetOn &&
|
{ !!downloadBottomSheetOn &&
|
||||||
|
|||||||
Reference in New Issue
Block a user