diff --git a/src/entities/settlement/ui/list-wrap.tsx b/src/entities/settlement/ui/list-wrap.tsx index 3ad7843..d133bd4 100644 --- a/src/entities/settlement/ui/list-wrap.tsx +++ b/src/entities/settlement/ui/list-wrap.tsx @@ -36,12 +36,16 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import useIntersectionObserver from '@/widgets/intersection-observer'; import { useTranslation } from 'react-i18next'; import { SettlementDetail } from './detail/settlement-detail'; +import { showAlert } from '@/widgets/show-alert'; +import { checkGrant } from '@/shared/lib/check-grant'; export interface ListWrapProps { startDateFromCalendar?: string; endDateFromCalendar?: string; }; +/* 정산내역 37 */ +const menuId = 37; export const ListWrap = ({ startDateFromCalendar, endDateFromCalendar @@ -359,7 +363,12 @@ export const ListWrap = ({ setFilterOn(!filterOn); }; const onClickToDownloadExcel = () => { - setEmailBottomSheetOn(true); + if(checkGrant(menuId, 'D')){ + setEmailBottomSheetOn(true); + } + else{ + showAlert('권한이 없습니다.'); + } }; const onRequestDownloadExcel = (userEmail?: string) => { diff --git a/src/entities/vat-return/ui/list-wrap.tsx b/src/entities/vat-return/ui/list-wrap.tsx index a677358..1607d2f 100644 --- a/src/entities/vat-return/ui/list-wrap.tsx +++ b/src/entities/vat-return/ui/list-wrap.tsx @@ -20,7 +20,11 @@ import { useStore } from '@/shared/model/store'; import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import useIntersectionObserver from '@/widgets/intersection-observer'; import { TaxInvoiceDetail } from './detail/tax-invoice-detail'; +import { showAlert } from '@/widgets/show-alert'; +import { checkGrant } from '@/shared/lib/check-grant'; +/* 세금계산서 48 */ +const menuId = 48; export const ListWrap = () => { const { t } = useTranslation(); const userMid = useStore.getState().UserStore.mid; @@ -115,7 +119,12 @@ export const ListWrap = () => { setSortType(sort); }; const onClickToDownloadExcel = () => { - setEmailBottomSheetOn(true); + if(checkGrant(menuId, 'D')){ + setEmailBottomSheetOn(true); + } + else{ + showAlert('권한이 없습니다.'); + } }; const onRequestDownloadExcel = (userEmail?: string) => { diff --git a/src/entities/vat-return/ui/reference-wrap.tsx b/src/entities/vat-return/ui/reference-wrap.tsx index 8d5c18c..b01d796 100644 --- a/src/entities/vat-return/ui/reference-wrap.tsx +++ b/src/entities/vat-return/ui/reference-wrap.tsx @@ -10,7 +10,11 @@ import { getVatReturnTaxBtnGroups } from '../model/contant'; import { VatReturnPayTax, VatReturnReferenceRequestParams, VatReturnReferenceRequestResponse } from '../model/types'; import { useStore } from '@/shared/model/store'; import { useVatReturnReferenceRequestMutation } from '../api/use-vat-return-reference-request-mutation'; +import { checkGrant } from '@/shared/lib/check-grant'; +import { showAlert } from '@/widgets/show-alert'; +/* 부가세참고 49 */ +const menuId = 49; export const ReferenceWrap = () => { const { t } = useTranslation(); const midOptions = useStore.getState().UserStore.selectOptionsMids; @@ -31,19 +35,25 @@ export const ReferenceWrap = () => { const { mutateAsync: vatReturnReferenceRequest } = useVatReturnReferenceRequestMutation(); const onClickToResquest = () => { - let params: VatReturnReferenceRequestParams = { - mid: mid, - startDate: startDate, - endDate: endDate, - taxType: payTax, - email: email || userEmail + if(checkGrant(menuId, 'X')){ + let params: VatReturnReferenceRequestParams = { + mid: mid, + startDate: startDate, + endDate: endDate, + taxType: payTax, + email: email || userEmail + } + vatReturnReferenceRequest(params).then((rs: VatReturnReferenceRequestResponse) => { + setSuccessPageOn(true); + }).catch((error) => { + setErrorMsg(t('vatReturn.keyInMerchantError')); + setFailPageOn(true); + }); } - vatReturnReferenceRequest(params).then((rs: VatReturnReferenceRequestResponse) => { - setSuccessPageOn(true); - }).catch((error) => { - setErrorMsg(t('vatReturn.keyInMerchantError')); - setFailPageOn(true); - }); + else{ + showAlert('권한이 없습니다.'); + } + }; return ( diff --git a/src/pages/transaction/cash-receipt/list-page.tsx b/src/pages/transaction/cash-receipt/list-page.tsx index 9a59870..60b13ff 100644 --- a/src/pages/transaction/cash-receipt/list-page.tsx +++ b/src/pages/transaction/cash-receipt/list-page.tsx @@ -193,7 +193,12 @@ export const CashReceiptListPage = () => { setTransactionType(val); }; const onClickToNavigate = () => { - navigate(PATHS.transaction.cashReceipt.handWrittenIssuance); + if(checkGrant(menuId, 'X')){ + navigate(PATHS.transaction.cashReceipt.handWrittenIssuance); + } + else{ + showAlert('권한이 없습니다.'); + } }; useEffect(() => { diff --git a/src/pages/vat-return/detail-page.tsx b/src/pages/vat-return/detail-page.tsx deleted file mode 100644 index f522681..0000000 --- a/src/pages/vat-return/detail-page.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { useEffect, useState } from 'react'; -import { useTranslation } from 'react-i18next'; -import { PATHS } from '@/shared/constants/paths'; -import { useLocation } from 'react-router'; -import { useNavigate } from '@/shared/lib/hooks/use-navigate'; -import { useVatReturnDetailMutation } from '@/entities/vat-return/api/use-vat-return-detail-mutation'; -import { HeaderType } from '@/entities/common/model/types'; -import { - Breakdown, - VatReturnBreakdownParams, - VatReturnBreakdownResponse, - VatReturnDetailParams, - VatReturnDetailResponse -} from '@/entities/vat-return/model/types'; -import { - useSetOnBack, - useSetHeaderTitle, - useSetHeaderType, - useSetFooterMode -} from '@/widgets/sub-layout/use-sub-layout'; -import { SupplierSection } from '@/entities/vat-return/ui/section/supplier-section'; -import { ReceiverSection } from '@/entities/vat-return/ui/section/receiver-section'; -import { IssueSection } from '@/entities/vat-return/ui/section/issue-section'; -import { AmountSection } from '@/entities/vat-return/ui/section/amount-section'; -import { useVatReturnTaxInvoiceMutation } from '@/entities/vat-return/api/use-vat-return-tax-invoice-mutation'; -import { VatReturnListDetailBottomSheet } from '@/entities/vat-return/ui/list-detail-bottom-sheet'; -import { useVatReturnBreakdownMutation } from '@/entities/vat-return/api/use-vat-return-breakdown-mutation'; - -export const DetailPage = () => { - const { t } = useTranslation(); - const { navigate } = useNavigate(); - const location = useLocation(); - - let taxInvoiceNumber = location?.state.taxInvoiceNumber; - // taxInvoiceNumber = 'TAX202506300001'; - - const [openAmount, setOpenAmount] = useState(false); - const [bottomSheetOn, setBottomSheetOn] = useState(false); - const [detail, setDetail] = useState({}); - const [breakdown, setBreakdown] = useState>([]); - - useSetHeaderTitle(t('vatReturn.taxInvoiceDetail')); - useSetHeaderType(HeaderType.RightClose); - useSetOnBack(() => { - navigate(PATHS.vatReturn.list); - }); - useSetFooterMode(false); - - const { mutateAsync: vatReturnTaxInvoice } = useVatReturnTaxInvoiceMutation(); - const { mutateAsync: vatReturnDetail } = useVatReturnDetailMutation(); - const { mutateAsync: vatReturnBreakdown } = useVatReturnBreakdownMutation(); - - const callTaxInvoice = () => { - let params: VatReturnDetailParams = { - taxInvoiceNumber: taxInvoiceNumber, - }; - vatReturnDetail(params).then((rs: VatReturnDetailResponse) => { - setDetail(rs); - - }); - }; - const callVatReturnBreakdown = async() => { - let params: VatReturnBreakdownParams = { - taxInvoiceNumber: taxInvoiceNumber, - }; - vatReturnBreakdown(params).then((rs: VatReturnBreakdownResponse) => { - setBreakdown(rs.breakdown); - }); - }; - - const onClickToOpenBottomSheet = () => { - setBottomSheetOn(true); - }; - - useEffect(() => { - callTaxInvoice(); - callVatReturnBreakdown(); - }, []); - - return ( - <> -
-
-
-
-
- -
- -
- -
- -
-
-
- -
-
-
-
- { !!bottomSheetOn && - - } - - ) -}; \ No newline at end of file