부가세참고
This commit is contained in:
@@ -0,0 +1,29 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { API_URL_VAT_RETURN } from '@/shared/api/api-url-vat-return';
|
||||||
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
|
import {
|
||||||
|
VatReturnReferenceRequestResponse,
|
||||||
|
VatReturnReferenceRequestParams,
|
||||||
|
} from '../model/types';
|
||||||
|
import {
|
||||||
|
useMutation,
|
||||||
|
UseMutationOptions
|
||||||
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
|
export const vatReturnReferenceRequest = (params: VatReturnReferenceRequestParams) => {
|
||||||
|
return resultify(
|
||||||
|
axios.post<VatReturnReferenceRequestResponse>(API_URL_VAT_RETURN.vatReturnReferenceRequest(), params),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useVatReturnReferenceRequestMutation = (options?: UseMutationOptions<VatReturnReferenceRequestResponse, CBDCAxiosError, VatReturnReferenceRequestParams>) => {
|
||||||
|
const mutation = useMutation<VatReturnReferenceRequestResponse, CBDCAxiosError, VatReturnReferenceRequestParams>({
|
||||||
|
...options,
|
||||||
|
mutationFn: (params: VatReturnReferenceRequestParams) => vatReturnReferenceRequest(params),
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...mutation,
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { API_URL_VAT_RETURN } from '@/shared/api/api-url-vat-return';
|
||||||
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
|
import {
|
||||||
|
VatReturnTaxInvoiceResponse,
|
||||||
|
VatReturnTaxInvoiceParams,
|
||||||
|
} from '../model/types';
|
||||||
|
import {
|
||||||
|
useMutation,
|
||||||
|
UseMutationOptions
|
||||||
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
|
export const vatReturnTaxInvoice = (params: VatReturnTaxInvoiceParams) => {
|
||||||
|
return resultify(
|
||||||
|
axios.post<VatReturnTaxInvoiceResponse>(API_URL_VAT_RETURN.vatReturnTaxInvoice(), params),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useVatReturnTaxInvoiceMutation = (options?: UseMutationOptions<VatReturnTaxInvoiceResponse, CBDCAxiosError, VatReturnTaxInvoiceParams>) => {
|
||||||
|
const mutation = useMutation<VatReturnTaxInvoiceResponse, CBDCAxiosError, VatReturnTaxInvoiceParams>({
|
||||||
|
...options,
|
||||||
|
mutationFn: (params: VatReturnTaxInvoiceParams) => vatReturnTaxInvoice(params),
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...mutation,
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -83,3 +83,67 @@ export interface VatReturnDetailResponse {
|
|||||||
supplierCompanyName?: string;
|
supplierCompanyName?: string;
|
||||||
supplierCeoName?: string;
|
supplierCeoName?: string;
|
||||||
};
|
};
|
||||||
|
export enum TaxType {
|
||||||
|
|
||||||
|
};
|
||||||
|
export interface VatReturnReferenceRequestParams {
|
||||||
|
mid: string;
|
||||||
|
startMonth: string;
|
||||||
|
endMonth: string;
|
||||||
|
taxType: string,
|
||||||
|
requestorName: string;
|
||||||
|
contactNumber: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
export interface VatReturnReferenceRequestResponse {
|
||||||
|
requestId: number;
|
||||||
|
mid: string;
|
||||||
|
requestPeriod: string;
|
||||||
|
taxTypeDescription: string;
|
||||||
|
requestDateTime: string;
|
||||||
|
requestStatus: string;
|
||||||
|
requestorName: string;
|
||||||
|
contactNumber: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface VatReturnTaxInvoiceParams {
|
||||||
|
taxInvoiceNumber: string;
|
||||||
|
}
|
||||||
|
export interface VatReturnTaxInvoiceResponse {
|
||||||
|
supplierInfo: SupplierInfo;
|
||||||
|
recipientInfo: RecipientInfo;
|
||||||
|
issueDate: string;
|
||||||
|
supplyAmount: number;
|
||||||
|
taxAmount: number;
|
||||||
|
totalAmount: number;
|
||||||
|
transactionDetails: TransactionDetails;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface SupplierInfo {
|
||||||
|
businessRegistrationNumber: string;
|
||||||
|
companyName: string;
|
||||||
|
ceoName: string;
|
||||||
|
address: string;
|
||||||
|
businessType: string;
|
||||||
|
businessItem: string;
|
||||||
|
};
|
||||||
|
export interface RecipientInfo {
|
||||||
|
businessRegistrationNumber: string;
|
||||||
|
companyName: string;
|
||||||
|
ceoName: string;
|
||||||
|
address: string;
|
||||||
|
businessType: string;
|
||||||
|
businessItem: string;
|
||||||
|
email: string;
|
||||||
|
};
|
||||||
|
export interface TransactionDetails {
|
||||||
|
transactionPeriod: string;
|
||||||
|
itemName: string;
|
||||||
|
specification: string;
|
||||||
|
quantity: number;
|
||||||
|
unitPrice: number;
|
||||||
|
supplyAmount: number;
|
||||||
|
taxAmount: number;
|
||||||
|
remarks: string;
|
||||||
|
};
|
||||||
@@ -129,9 +129,6 @@ export const ListWrap = () => {
|
|||||||
<div className="transaction-list">
|
<div className="transaction-list">
|
||||||
{ getListDateGroup() }
|
{ getListDateGroup() }
|
||||||
</div>
|
</div>
|
||||||
<div className="apply-row bottom-padding">
|
|
||||||
<button className="btn-50 btn-blue flex-1">수기발행</button>
|
|
||||||
</div>
|
|
||||||
<ListFilter
|
<ListFilter
|
||||||
filterOn={ filterOn }
|
filterOn={ filterOn }
|
||||||
setFilterOn={ setFilterOn }
|
setFilterOn={ setFilterOn }
|
||||||
|
|||||||
@@ -6,34 +6,45 @@ import { ReferenceRequestSuccess } from './reference-request-success';
|
|||||||
import { ReferenceRequestFail } from './reference-request-fail';
|
import { ReferenceRequestFail } from './reference-request-fail';
|
||||||
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||||
import { VatReturnTaxBtnGroups } from '../model/contant';
|
import { VatReturnTaxBtnGroups } from '../model/contant';
|
||||||
import { VatReturnPayTax } from '../model/types';
|
import { VatReturnPayTax, VatReturnReferenceRequestParams, VatReturnReferenceRequestResponse } from '../model/types';
|
||||||
import { useStore } from '@/shared/model/store';
|
import { useStore } from '@/shared/model/store';
|
||||||
|
import { useVatReturnReferenceRequestMutation } from '../api/use-vat-reference-request-mutation';
|
||||||
|
|
||||||
export const ReferenceWrap = () => {
|
export const ReferenceWrap = () => {
|
||||||
|
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||||
|
|
||||||
const [success, setSuccess] = useState<boolean>(false);
|
const [success, setSuccess] = useState<boolean>(false);
|
||||||
|
|
||||||
const [successPageOn, setSuccessPageOn] = useState<boolean>(false);
|
const [successPageOn, setSuccessPageOn] = useState<boolean>(false);
|
||||||
const [failPageOn, setFailPageOn] = useState<boolean>(false);
|
const [failPageOn, setFailPageOn] = useState<boolean>(false);
|
||||||
const [mid, setMid] = useState<string>('nictest00m');
|
const [mid, setMid] = useState<string>('');
|
||||||
const [startDate, setStartDate] = useState<string>(moment().format('YYYY.MM.DD'));
|
const [startDate, setStartDate] = useState<string>(moment().format('YYYY.MM.DD'));
|
||||||
const [endDate, setEndDate] = useState<string>(moment().format('YYYY.MM.DD'));
|
const [endDate, setEndDate] = useState<string>(moment().format('YYYY.MM.DD'));
|
||||||
const [payTax, setPayTax] = useState<VatReturnPayTax>(VatReturnPayTax.Tax);
|
const [payTax, setPayTax] = useState<VatReturnPayTax>(VatReturnPayTax.Tax);
|
||||||
const [email, setEmail] = useState<string>('');
|
const [email, setEmail] = useState<string>('');
|
||||||
|
|
||||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
const { mutateAsync: vatReturnReferenceRequest } = useVatReturnReferenceRequestMutation();
|
||||||
|
|
||||||
|
|
||||||
let EmailOptions = [
|
let EmailOptions = [
|
||||||
{name: 'focp212@naver.com', value: 'focp212@naver.com'}
|
{name: 'focp212@naver.com', value: 'focp212@naver.com'}
|
||||||
];
|
];
|
||||||
|
|
||||||
const onClickToResquest = () => {
|
const onClickToResquest = () => {
|
||||||
if(success){
|
let params: VatReturnReferenceRequestParams = {
|
||||||
|
mid: mid,
|
||||||
|
startMonth: startDate,
|
||||||
|
endMonth: endDate,
|
||||||
|
taxType: payTax,
|
||||||
|
requestorName: '',
|
||||||
|
contactNumber: '',
|
||||||
|
email: email
|
||||||
|
}
|
||||||
|
vatReturnReferenceRequest(params).then((rs: VatReturnReferenceRequestResponse) => {
|
||||||
setSuccessPageOn(true);
|
setSuccessPageOn(true);
|
||||||
}
|
}).catch((error) => {
|
||||||
else{
|
|
||||||
setFailPageOn(true);
|
setFailPageOn(true);
|
||||||
}
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import {
|
|||||||
useSetFooterMode,
|
useSetFooterMode,
|
||||||
useSetFooterCurrentPage
|
useSetFooterCurrentPage
|
||||||
} from '@/widgets/sub-layout/use-sub-layout';
|
} from '@/widgets/sub-layout/use-sub-layout';
|
||||||
|
import { useStore } from '@/shared/model/store';
|
||||||
|
import { UserFavorite } from '@/entities/user/model/types';
|
||||||
|
|
||||||
export let homeReloadKey = 1;
|
export let homeReloadKey = 1;
|
||||||
export const setHomeReloadKey = () => {
|
export const setHomeReloadKey = () => {
|
||||||
@@ -22,6 +24,7 @@ export const setHomeReloadKey = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const HomePage = () => {
|
export const HomePage = () => {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isNativeEnvironment,
|
isNativeEnvironment,
|
||||||
openBiometricRegistrationPopup,
|
openBiometricRegistrationPopup,
|
||||||
@@ -38,7 +41,7 @@ export const HomePage = () => {
|
|||||||
|
|
||||||
const [bottomBannerOn, setBottomBannerOn] = useState<boolean>(false);
|
const [bottomBannerOn, setBottomBannerOn] = useState<boolean>(false);
|
||||||
const [authRegisterOn, setAuthRegisterOn] = useState<boolean>(false);
|
const [authRegisterOn, setAuthRegisterOn] = useState<boolean>(false);
|
||||||
const [loginSuccess, setLoginSuccess] = useState<boolean>(true);
|
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
|
||||||
|
|
||||||
const checkBottomBannerOpen = () => {
|
const checkBottomBannerOpen = () => {
|
||||||
if(!!bannerToday){
|
if(!!bannerToday){
|
||||||
@@ -64,6 +67,9 @@ export const HomePage = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
checkBottomBannerOpen();
|
checkBottomBannerOpen();
|
||||||
checkAuthRegisterOpen();
|
checkAuthRegisterOpen();
|
||||||
|
|
||||||
|
let userFavorite = useStore.getState().UserStore.userFavorite;
|
||||||
|
setFavoriteItems(userFavorite);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const setBottomBannerEffect = (mode: boolean) => {
|
const setBottomBannerEffect = (mode: boolean) => {
|
||||||
@@ -86,15 +92,11 @@ export const HomePage = () => {
|
|||||||
{/*<!-- 탭 컨텐츠 영역 -->*/}
|
{/*<!-- 탭 컨텐츠 영역 -->*/}
|
||||||
<div className="tab-content blue">
|
<div className="tab-content blue">
|
||||||
<div className="tab-pane dashboard active">
|
<div className="tab-pane dashboard active">
|
||||||
{ loginSuccess &&
|
<FavoriteWrapper
|
||||||
<>
|
usingType='home'
|
||||||
<FavoriteWrapper
|
key={ homeReloadKey }
|
||||||
usingType='home'
|
></FavoriteWrapper>
|
||||||
key={ homeReloadKey }
|
<DayStatusBox></DayStatusBox>
|
||||||
></FavoriteWrapper>
|
|
||||||
<DayStatusBox></DayStatusBox>
|
|
||||||
</>
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -4,6 +4,14 @@ import {
|
|||||||
} from './../constants/url';
|
} from './../constants/url';
|
||||||
|
|
||||||
export const API_URL_VAT_RETURN = {
|
export const API_URL_VAT_RETURN = {
|
||||||
|
vatReturnTaxInvoice: () => {
|
||||||
|
// POST: 세금계산서 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/tax-invoice`;
|
||||||
|
},
|
||||||
|
vatReturnReferenceRequest: () => {
|
||||||
|
// POST: 부가세 참고자료 신청
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/reference-request`;
|
||||||
|
},
|
||||||
vatReturnList: () => {
|
vatReturnList: () => {
|
||||||
// POST: 세금계산서 목록 조회
|
// POST: 세금계산서 목록 조회
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/list`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/vat-return/list`;
|
||||||
|
|||||||
Reference in New Issue
Block a user