현금영수증 수기 발행 완료
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState } from 'react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { PATHS } from '@/shared/constants/paths';
|
||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||
import { CashReceiptHandWrittenIssuanceStep1 } from '@/entities/transaction/ui/cash-receipt-hand-written-issuance-step1';
|
||||
@@ -8,19 +8,23 @@ import { HeaderType} from '@/entities/common/model/types';
|
||||
import { useSetFooterMode, useSetHeaderTitle, useSetHeaderType } from '@/widgets/sub-layout/use-sub-layout';
|
||||
import { useCashReceiptManualIssueMutation } from '@/entities/transaction/api/use-cash-receipt-manual-issue-mutation';
|
||||
import { showAlert } from '@/widgets/show-alert';
|
||||
import { useStore } from '@/shared/model/store';
|
||||
import { snackBar } from '@/shared/lib';
|
||||
|
||||
export const CashReceitHandWrittenIssuancePage = () => {
|
||||
const { navigate } = useNavigate();
|
||||
|
||||
let businessInfo = useStore.getState().UserStore.businessInfo;
|
||||
let userMid = useStore.getState().UserStore.mid;
|
||||
// 1 or 2
|
||||
const [processStep, setProcessStep] = useState<ProcessStep>(ProcessStep.One);
|
||||
const [businessNumber, setBusinessNumber] = useState<string>('');
|
||||
const [businessNumber, setBusinessNumber] = useState<string>(businessInfo.companyNumber);
|
||||
const [purposeType, setPurposeType] = useState<CashReceiptPurposeType>(CashReceiptPurposeType.INCOME_DEDUCTION);
|
||||
const [productName, setProductName] = useState<string>('');
|
||||
const [buyerName, setBuyerName] = useState<string>('');
|
||||
const [issueNumber, setIssueNumber] = useState<string>('');
|
||||
const [email, setEmail] = useState<string>('');
|
||||
const [phoneNumber, setPhoneNumber] = useState<string>('');
|
||||
const [issueAmount, setIssueAmount] = useState<number>(0);
|
||||
const [supplyAmount, setSupplyAmount] = useState<number>(0);
|
||||
const [vatAmount, setVatAmount] = useState<number>(0);
|
||||
const [taxFreeAmount, setTaxFreeAmount] = useState<number>(0);
|
||||
@@ -44,6 +48,7 @@ export const CashReceitHandWrittenIssuancePage = () => {
|
||||
|
||||
const callManualIssue = () => {
|
||||
let params = {
|
||||
mid: userMid,
|
||||
businessNumber: businessNumber,
|
||||
purpose: purposeType,
|
||||
productName: productName,
|
||||
@@ -58,41 +63,57 @@ export const CashReceitHandWrittenIssuancePage = () => {
|
||||
};
|
||||
cashReceiptManualIssue(params).then((rs) => {
|
||||
console.log(rs);
|
||||
alert('완료');
|
||||
navigate(PATHS.transaction.cashReceipt.list);
|
||||
snackBar('수기 신청이 완료되었습니다.', function(){
|
||||
navigate(PATHS.transaction.cashReceipt.list);
|
||||
}, 3000);
|
||||
});
|
||||
};
|
||||
|
||||
const onClickToVatCalculate = () => {
|
||||
let amount = parseInt((issueAmount / 11 * 10).toFixed(0));
|
||||
let vat = issueAmount - amount;
|
||||
setSupplyAmount(amount);
|
||||
setVatAmount(vat);
|
||||
};
|
||||
|
||||
const onClickToChangeTab = () => {
|
||||
if(processStep === ProcessStep.One){
|
||||
if(!businessNumber){
|
||||
showAlert('사업자 번호는 필수 입력 항목 입니다.');
|
||||
return;
|
||||
}
|
||||
else if(!productName){
|
||||
showAlert('상품명은 필수 입력 항목 입니다.');
|
||||
return;
|
||||
}
|
||||
else if(!buyerName){
|
||||
showAlert('구매자는 필수 입력 항목 입니다.');
|
||||
return;
|
||||
}
|
||||
else if(!issueNumber){
|
||||
showAlert('발행번호는 필수 입력 항목 입니다.');
|
||||
return;
|
||||
}
|
||||
else if(email && !checkEmail(email)){
|
||||
showAlert('이메일 형식이 맞지 않습니다.');
|
||||
return;
|
||||
}
|
||||
else if(!phoneNumber){
|
||||
showAlert('전화번호는 필수 입력 항목 입니다.');
|
||||
return;
|
||||
}
|
||||
setProcessStep(ProcessStep.Two);
|
||||
}
|
||||
else if(processStep === ProcessStep.Two){
|
||||
if(supplyAmount <= 0){
|
||||
showAlert('공급가액은 1원 이상이어야 합니다.');
|
||||
return;
|
||||
}
|
||||
callManualIssue();
|
||||
// 완료시?
|
||||
//alert('완료');
|
||||
// navigate(PATHS.transaction.cashReceipt.list);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
<main>
|
||||
@@ -136,14 +157,17 @@ export const CashReceitHandWrittenIssuancePage = () => {
|
||||
{ (processStep === ProcessStep.Two) &&
|
||||
<CashReceiptHandWrittenIssuanceStep2
|
||||
setProcessStep={ setProcessStep }
|
||||
issueAmount={ issueAmount }
|
||||
supplyAmount={ supplyAmount }
|
||||
vatAmount={ vatAmount }
|
||||
taxFreeAmount={ taxFreeAmount }
|
||||
serviceCharge={ serviceCharge }
|
||||
setIssueAmount={ setIssueAmount }
|
||||
setSupplyAmount={ setSupplyAmount }
|
||||
setVatAmount={ setVatAmount }
|
||||
setTaxFreeAmount={ setTaxFreeAmount }
|
||||
setServiceCharge={ setServiceCharge }
|
||||
onClickToVatCalculate={ onClickToVatCalculate }
|
||||
></CashReceiptHandWrittenIssuanceStep2>
|
||||
}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user