권한
This commit is contained in:
@@ -36,12 +36,16 @@ import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
|||||||
import useIntersectionObserver from '@/widgets/intersection-observer';
|
import useIntersectionObserver from '@/widgets/intersection-observer';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { SettlementDetail } from './detail/settlement-detail';
|
import { SettlementDetail } from './detail/settlement-detail';
|
||||||
|
import { showAlert } from '@/widgets/show-alert';
|
||||||
|
import { checkGrant } from '@/shared/lib/check-grant';
|
||||||
|
|
||||||
export interface ListWrapProps {
|
export interface ListWrapProps {
|
||||||
startDateFromCalendar?: string;
|
startDateFromCalendar?: string;
|
||||||
endDateFromCalendar?: string;
|
endDateFromCalendar?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* 정산내역 37 */
|
||||||
|
const menuId = 37;
|
||||||
export const ListWrap = ({
|
export const ListWrap = ({
|
||||||
startDateFromCalendar,
|
startDateFromCalendar,
|
||||||
endDateFromCalendar
|
endDateFromCalendar
|
||||||
@@ -359,7 +363,12 @@ export const ListWrap = ({
|
|||||||
setFilterOn(!filterOn);
|
setFilterOn(!filterOn);
|
||||||
};
|
};
|
||||||
const onClickToDownloadExcel = () => {
|
const onClickToDownloadExcel = () => {
|
||||||
setEmailBottomSheetOn(true);
|
if(checkGrant(menuId, 'D')){
|
||||||
|
setEmailBottomSheetOn(true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
showAlert('권한이 없습니다.');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onRequestDownloadExcel = (userEmail?: string) => {
|
const onRequestDownloadExcel = (userEmail?: string) => {
|
||||||
|
|||||||
@@ -20,7 +20,11 @@ import { useStore } from '@/shared/model/store';
|
|||||||
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
|
||||||
import useIntersectionObserver from '@/widgets/intersection-observer';
|
import useIntersectionObserver from '@/widgets/intersection-observer';
|
||||||
import { TaxInvoiceDetail } from './detail/tax-invoice-detail';
|
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 = () => {
|
export const ListWrap = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const userMid = useStore.getState().UserStore.mid;
|
const userMid = useStore.getState().UserStore.mid;
|
||||||
@@ -115,7 +119,12 @@ export const ListWrap = () => {
|
|||||||
setSortType(sort);
|
setSortType(sort);
|
||||||
};
|
};
|
||||||
const onClickToDownloadExcel = () => {
|
const onClickToDownloadExcel = () => {
|
||||||
setEmailBottomSheetOn(true);
|
if(checkGrant(menuId, 'D')){
|
||||||
|
setEmailBottomSheetOn(true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
showAlert('권한이 없습니다.');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const onRequestDownloadExcel = (userEmail?: string) => {
|
const onRequestDownloadExcel = (userEmail?: string) => {
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,11 @@ import { getVatReturnTaxBtnGroups } from '../model/contant';
|
|||||||
import { VatReturnPayTax, VatReturnReferenceRequestParams, VatReturnReferenceRequestResponse } 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-return-reference-request-mutation';
|
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 = () => {
|
export const ReferenceWrap = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||||
@@ -31,19 +35,25 @@ export const ReferenceWrap = () => {
|
|||||||
const { mutateAsync: vatReturnReferenceRequest } = useVatReturnReferenceRequestMutation();
|
const { mutateAsync: vatReturnReferenceRequest } = useVatReturnReferenceRequestMutation();
|
||||||
|
|
||||||
const onClickToResquest = () => {
|
const onClickToResquest = () => {
|
||||||
let params: VatReturnReferenceRequestParams = {
|
if(checkGrant(menuId, 'X')){
|
||||||
mid: mid,
|
let params: VatReturnReferenceRequestParams = {
|
||||||
startDate: startDate,
|
mid: mid,
|
||||||
endDate: endDate,
|
startDate: startDate,
|
||||||
taxType: payTax,
|
endDate: endDate,
|
||||||
email: email || userEmail
|
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) => {
|
else{
|
||||||
setSuccessPageOn(true);
|
showAlert('권한이 없습니다.');
|
||||||
}).catch((error) => {
|
}
|
||||||
setErrorMsg(t('vatReturn.keyInMerchantError'));
|
|
||||||
setFailPageOn(true);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -193,7 +193,12 @@ export const CashReceiptListPage = () => {
|
|||||||
setTransactionType(val);
|
setTransactionType(val);
|
||||||
};
|
};
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
navigate(PATHS.transaction.cashReceipt.handWrittenIssuance);
|
if(checkGrant(menuId, 'X')){
|
||||||
|
navigate(PATHS.transaction.cashReceipt.handWrittenIssuance);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
showAlert('권한이 없습니다.');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -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<boolean>(false);
|
|
||||||
const [bottomSheetOn, setBottomSheetOn] = useState<boolean>(false);
|
|
||||||
const [detail, setDetail] = useState<VatReturnDetailResponse>({});
|
|
||||||
const [breakdown, setBreakdown] = useState<Array<Breakdown>>([]);
|
|
||||||
|
|
||||||
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 (
|
|
||||||
<>
|
|
||||||
<main className="full-height">
|
|
||||||
<div className="tab-content pb-86">
|
|
||||||
<div className="tab-pane sub active">
|
|
||||||
<div className="option-list">
|
|
||||||
<div className="txn-detail">
|
|
||||||
<AmountSection
|
|
||||||
detail={ detail }
|
|
||||||
></AmountSection>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<IssueSection
|
|
||||||
detail={ detail }
|
|
||||||
></IssueSection>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<ReceiverSection
|
|
||||||
detail={ detail }
|
|
||||||
></ReceiverSection>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<SupplierSection
|
|
||||||
detail={ detail }
|
|
||||||
></SupplierSection>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="apply-row">
|
|
||||||
<button
|
|
||||||
className="btn-50 btn-blue flex-1"
|
|
||||||
onClick={ onClickToOpenBottomSheet }
|
|
||||||
>{t('vatReturn.viewDetails')}</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
{ !!bottomSheetOn &&
|
|
||||||
<VatReturnListDetailBottomSheet
|
|
||||||
bottomSheetOn={ bottomSheetOn }
|
|
||||||
setBottomSheetOn={ setBottomSheetOn }
|
|
||||||
breakdown={ breakdown }
|
|
||||||
transactionAmount={ detail?.transactionAmount }
|
|
||||||
supplyAmount={ detail?.supplyAmount }
|
|
||||||
vatAmount={ detail?.vatAmount }
|
|
||||||
totalAmount={ detail?.totalAmount }
|
|
||||||
></VatReturnListDetailBottomSheet>
|
|
||||||
}
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user