From a6f31b9f3ad72903b9599a4fc7a79595681fc811 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Sun, 26 Oct 2025 15:15:51 +0900 Subject: [PATCH] =?UTF-8?q?=ED=86=B5=ED=95=A9=EA=B1=B0=EB=9E=98=EB=82=B4?= =?UTF-8?q?=EC=97=AD=20=EA=B1=B0=EB=9E=98=20=EC=B7=A8=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/transaction/model/types.ts | 31 +++-- .../ui/all-transaction-all-cancel.tsx | 52 +++++-- .../ui/all-transaction-part-cancel.tsx | 52 +++++-- ...-transaction-cancel-section-bank-group.tsx | 47 ++++++- ...nsaction-cancel-section-password-group.tsx | 22 ++- .../all-transaction/cancel-page.tsx | 127 ++++++++++++------ 6 files changed, 252 insertions(+), 79 deletions(-) diff --git a/src/entities/transaction/model/types.ts b/src/entities/transaction/model/types.ts index 1f75622..ddf888a 100644 --- a/src/entities/transaction/model/types.ts +++ b/src/entities/transaction/model/types.ts @@ -534,10 +534,14 @@ export interface AllTransactionCancelParams{ bankCode: string; accountNo: string; accountHolder: string; - supplyAmount: number; - goodsVatAmount: number; - taxFreeAmount: number; - serviceAmount: number; + supplyAmount: number | null; + goodsVatAmount: number | null; + taxFreeAmount: number | null; + serviceAmount: number | null; + clientIp?: string; + partCancelCl: boolean; + isNpg: boolean; + serviceCode: string; }; export interface AllTransactionCancelResponse { @@ -547,15 +551,20 @@ export interface AllTransactionCancelInfoParams { tid: string; }; export interface AllTransactionCancelInfoResponse { - remainAmount: number; - partCancelCl: boolean; - isCompoundTax: boolean; - supplyAmount: number | null; + debtPreventionCancelDisplayInfo?: DebtPreventionCancelDisplayInfo | null; + debtPreventionCancelRequestInfo?: DebtPreventionCancelRequestInfo | null; goodsVat: number | null; - taxFreeAmount: number | null; + isCompoundTax: boolean; + isConditionalVatAutoCalcMerchant: boolean; + isNpg: boolean; + isVatAutoCalcMerchant: boolean; + isVatDisplayed: boolean; + partCancelCl: boolean; + remainAmount: number; serviceAmount: number | null; - debtPreventionCancelDisplayInfo: DebtPreventionCancelDisplayInfo | null; - debtPreventionCancelRequestInfo: DebtPreventionCancelRequestInfo | null; + supplyAmount: number | null; + taxFreeAmount: number | null; + vatAutoCalcSummary: number; }; export interface DebtPreventionCancelDisplayInfo { isCancel: boolean; diff --git a/src/entities/transaction/ui/all-transaction-all-cancel.tsx b/src/entities/transaction/ui/all-transaction-all-cancel.tsx index b5989e5..04a3af4 100644 --- a/src/entities/transaction/ui/all-transaction-all-cancel.tsx +++ b/src/entities/transaction/ui/all-transaction-all-cancel.tsx @@ -5,27 +5,57 @@ import { AllTransactionCancelSectionBankGroup } from './section/all-transaction- export interface AllTransactionAllCancelProps extends AllTransactionCancelInfoResponse { serviceCode: string; + cancelPassword: string; + setCancelPassword: (cancelPassword: string) => void; + bankCode?: string; + setBankCode?: (BankCode: string) => void; + accountNo?: string; + setAccountNo?: (accountNo: string) => void; + accountHolder?: string; + setAccountHolder?: (accountHolder: string) => void; }; export const AllTransactionAllCancel = ({ serviceCode, - remainAmount, - partCancelCl, - isCompoundTax, - supplyAmount, - goodsVat, - taxFreeAmount, - serviceAmount, debtPreventionCancelDisplayInfo, - debtPreventionCancelRequestInfo + debtPreventionCancelRequestInfo, + goodsVat, + isCompoundTax, + isConditionalVatAutoCalcMerchant, + isNpg, + isVatAutoCalcMerchant, + isVatDisplayed, + partCancelCl, + remainAmount, + serviceAmount, + supplyAmount, + taxFreeAmount, + vatAutoCalcSummary, + cancelPassword, + setCancelPassword, + bankCode, + setBankCode, + accountNo, + setAccountNo, + accountHolder, + setAccountHolder }: AllTransactionAllCancelProps) => { - console.log(serviceCode) return ( <>
- + { serviceCode === '03' && - + }
diff --git a/src/entities/transaction/ui/all-transaction-part-cancel.tsx b/src/entities/transaction/ui/all-transaction-part-cancel.tsx index b71b29c..ffcced6 100644 --- a/src/entities/transaction/ui/all-transaction-part-cancel.tsx +++ b/src/entities/transaction/ui/all-transaction-part-cancel.tsx @@ -3,22 +3,44 @@ import { AllTransactionCancelInfoResponse } from '../model/types'; import { NumericFormat } from 'react-number-format'; import { AllTransactionCancelSectionPasswordGroup } from './section/all-transaction-cancel-section-password-group'; import { AllTransactionCancelSectionBankGroup } from './section/all-transaction-cancel-section-bank-group'; +import { BankCode } from '@/shared/@types/banking-code'; export interface AllTransactionPartCancelProps extends AllTransactionCancelInfoResponse { serviceCode: string; + cancelPassword: string; + setCancelPassword: (cancelPassword: string) => void; + bankCode?: string; + setBankCode?: (BankCode: string) => void; + accountNo?: string; + setAccountNo?: (accountNo: string) => void; + accountHolder?: string; + setAccountHolder?: (accountHolder: string) => void; }; export const AllTransactionPartCancel = ({ serviceCode, - remainAmount, - partCancelCl, - isCompoundTax, - supplyAmount, - goodsVat, - taxFreeAmount, - serviceAmount, debtPreventionCancelDisplayInfo, - debtPreventionCancelRequestInfo + debtPreventionCancelRequestInfo, + goodsVat, + isCompoundTax, + isConditionalVatAutoCalcMerchant, + isNpg, + isVatAutoCalcMerchant, + isVatDisplayed, + partCancelCl, + remainAmount, + serviceAmount, + supplyAmount, + taxFreeAmount, + vatAutoCalcSummary, + cancelPassword, + setCancelPassword, + bankCode, + setBankCode, + accountNo, + setAccountNo, + accountHolder, + setAccountHolder }: AllTransactionPartCancelProps) => { @@ -114,9 +136,19 @@ export const AllTransactionPartCancel = ({ }
- + { serviceCode === '03' && - + }
diff --git a/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx b/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx index f0a6b10..2c3ed1b 100644 --- a/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx +++ b/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx @@ -1,12 +1,47 @@ -export const AllTransactionCancelSectionBankGroup = () => { +import { ChangeEvent, useState } from "react"; + +export interface AllTransactionCancelSectionBankGroupProps { + bankCode?: string; + setBankCode?: (BankCode: string) => void; + accountNo?: string; + setAccountNo?: (accountNo: string) => void; + accountHolder?: string; + setAccountHolder?: (accountHolder: string) => void; +}; +export const AllTransactionCancelSectionBankGroup = ({ + bankCode, + setBankCode, + accountNo, + setAccountNo, + accountHolder, + setAccountHolder +}: AllTransactionCancelSectionBankGroupProps ) => { + + const [newBankCode, setNewBankCode] = useState(bankCode); + const [newAccountNo, setNewAccountNo] = useState(accountNo); + const [newAccountHolder, setNewAccountHolder] = useState(accountHolder); + + const onChangeNewBankCode = (value: string) => { + setNewBankCode(value); + }; + const onChangeNewAccountNo = (value: string) => { + setNewAccountNo(value); + }; + const onChangeNewAccountHolder = (value: string) => { + setNewAccountHolder(value); + }; return ( <>
- ) => onChangeNewBankCode(e.target.value) } + > + @@ -19,7 +54,8 @@ export const AllTransactionCancelSectionBankGroup = () => { ) => onChangeNewAccountNo(e.target.value) } />
@@ -30,7 +66,8 @@ export const AllTransactionCancelSectionBankGroup = () => { ) => onChangeNewAccountHolder(e.target.value) } /> diff --git a/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx b/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx index dfadefa..a109488 100644 --- a/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx +++ b/src/entities/transaction/ui/section/all-transaction-cancel-section-password-group.tsx @@ -1,5 +1,20 @@ -export const AllTransactionCancelSectionPasswordGroup = () => { +import { ChangeEvent, useState } from "react"; +export interface AllTransactionCancelSectionPasswordGroupProps { + cancelPassword: string; + setCancelPassword: (cancelPassword: string) => void; +}; + +export const AllTransactionCancelSectionPasswordGroup = ({ + cancelPassword, + setCancelPassword +}: AllTransactionCancelSectionPasswordGroupProps) => { + + const [newCancelPassword, setNewCancelPassword] = useState(cancelPassword); + + const onChangeNewCancelPassword = (value: string) => { + setCancelPassword(value); + }; return ( <>
@@ -8,11 +23,14 @@ export const AllTransactionCancelSectionPasswordGroup = () => { ) => onChangeNewCancelPassword(e.target.value) } />
+ {/*
비밀번호 불일치
+ */} ); } \ No newline at end of file diff --git a/src/pages/transaction/all-transaction/cancel-page.tsx b/src/pages/transaction/all-transaction/cancel-page.tsx index 161268d..96b3cfc 100644 --- a/src/pages/transaction/all-transaction/cancel-page.tsx +++ b/src/pages/transaction/all-transaction/cancel-page.tsx @@ -20,9 +20,11 @@ import { } from '@/widgets/sub-layout/use-sub-layout'; import { useAllTransactioCancleInfoMutation } from '@/entities/transaction/api/use-all-transaction-cancel-info-mutation'; import { NumericFormat } from 'react-number-format'; +import { useStore } from '@/shared/model/store'; export const AllTransactionCancelPage = () => { const location = useLocation(); + const userInfo = useStore.getState().UserStore.userInfo; const tid = location.state.tid; const serviceCode = location.state.serviceCode; @@ -32,16 +34,26 @@ export const AllTransactionCancelPage = () => { // all or part const [tabAction, setTabAction] = useState(CancelTabKeys.All); - const [remainAmount, setRemainAmount] = useState(0); - const [totalCancelAmount, setTotalCancelAmount] = useState(0); - const [partCancelCl, setPartCancelCl] = useState(false); - const [isCompoundTax, setIsCompoundTax] = useState(false); - const [supplyAmount, setSupplyAmount] = useState(null); + const [debtPreventionCancelDisplayInfo, setDebtPreventionCancelDisplayInfo] = useState(null); + const [debtPreventionCancelRequestInfo, setDebtPreventionCancelRequestInfo] = useState(null); const [goodsVat, setGoodsVat] = useState(null); - const [taxFreeAmount, setTaxFreeAmount] = useState(null); + const [isCompoundTax, setIsCompoundTax] = useState(false); + const [isConditionalVatAutoCalcMerchant, setIsConditionalVatAutoCalcMerchant] = useState(false); + const [isNpg, setIsNpg] = useState(false); + const [isVatAutoCalcMerchant, setIsVatAutoCalcMerchant] = useState(false); + const [isVatDisplayed, setIsVatDisplayed] = useState(false); + const [partCancelCl, setPartCancelCl] = useState(false); + const [remainAmount, setRemainAmount] = useState(0); const [serviceAmount, setServiceAmount] = useState(null); - const [debtPreventionCancelDisplayInfo, setDebtPreventionCancelDisplayInfo] = useState(null); - const [debtPreventionCancelRequestInfo, setDebtPreventionCancelRequestInfo] = useState(null); + const [supplyAmount, setSupplyAmount] = useState(null); + const [taxFreeAmount, setTaxFreeAmount] = useState(null); + const [vatAutoCalcSummary, setVatAutoCalcSummary] = useState(0); + const [totalCancelAmount, setTotalCancelAmount] = useState(0); + const [cancelPassword, setCancelPassword] = useState(''); + + const [bankCode, setBankCode] = useState(''); + const [accountNo, setAccountNo] = useState(''); + const [accountHolder, setAccountHolder] = useState(''); const { mutateAsync: transactionCancel } = useAllTransactioCancleMutation(); const { mutateAsync: allTransactionCancelInfo } = useAllTransactioCancleInfoMutation(); @@ -52,16 +64,21 @@ export const AllTransactionCancelPage = () => { tid: tid }; allTransactionCancelInfo(params).then((rs: AllTransactionCancelInfoResponse) => { - setRemainAmount(rs.remainAmount); - setPartCancelCl(rs.partCancelCl); - setIsCompoundTax(rs.isCompoundTax); - setSupplyAmount(rs.supplyAmount); - setGoodsVat(rs.goodsVat); - setTaxFreeAmount(rs.taxFreeAmount); - setServiceAmount(rs.serviceAmount); setDebtPreventionCancelDisplayInfo(rs.debtPreventionCancelDisplayInfo); setDebtPreventionCancelRequestInfo(rs.debtPreventionCancelRequestInfo); - + setGoodsVat(rs.goodsVat); + setIsCompoundTax(rs.isCompoundTax); + setIsConditionalVatAutoCalcMerchant(rs.isConditionalVatAutoCalcMerchant); + setIsNpg(rs.isNpg); + setIsVatAutoCalcMerchant(rs.isVatAutoCalcMerchant); + setIsVatDisplayed(rs.isVatDisplayed); + setPartCancelCl(rs.partCancelCl); + setRemainAmount(rs.remainAmount); + setServiceAmount(rs.serviceAmount); + setSupplyAmount(rs.supplyAmount); + setTaxFreeAmount(rs.taxFreeAmount); + setVatAutoCalcSummary(rs.vatAutoCalcSummary); + if(!partCancelCl){ setTotalCancelAmount(rs.remainAmount); } @@ -82,16 +99,20 @@ export const AllTransactionCancelPage = () => { const callTransactionCancel = () => { let transactionCancelParams: AllTransactionCancelParams = { - tid: location?.state.tid, - cancelAmount: 0, - cancelPassword: "string", - bankCode: "string", - accountNo: "string", - accountHolder: "string", - supplyAmount: 0, - goodsVatAmount: 0, - taxFreeAmount: 0, - serviceAmount: 0 + tid: tid, + cancelAmount: totalCancelAmount, + cancelPassword: cancelPassword, + bankCode: bankCode, + accountNo: accountNo, + accountHolder: accountHolder, + supplyAmount: supplyAmount, + goodsVatAmount: goodsVat, + taxFreeAmount: taxFreeAmount, + serviceAmount: serviceAmount, + clientIp: userInfo.clientAddressIP, + partCancelCl: partCancelCl, + isNpg: isNpg, + serviceCode: serviceCode }; transactionCancel(transactionCancelParams).then((rs: AllTransactionCancelResponse) => { console.log(rs); @@ -150,29 +171,55 @@ export const AllTransactionCancelPage = () => { { (tabAction === CancelTabKeys.All) && } { partCancelCl && (tabAction === CancelTabKeys.Part) && }