From 4f903e47bf0e0acdb4e450f24fab4adad3fb21a6 Mon Sep 17 00:00:00 2001 From: Monil Bhavsar Date: Fri, 5 Apr 2024 00:06:11 +0530 Subject: [PATCH 1/2] Fix the condition and rename function --- .../MoneyTemporaryForRefactorRequestConfirmationList.js | 4 ++-- src/components/ReportActionItem/MoneyRequestView.tsx | 6 +++--- src/libs/PolicyUtils.ts | 4 ++-- src/pages/EditRequestPage.js | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js index 546b2885e24f5..8c236d020645a 100755 --- a/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js +++ b/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js @@ -22,7 +22,7 @@ import * as MoneyRequestUtils from '@libs/MoneyRequestUtils'; import Navigation from '@libs/Navigation/Navigation'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; -import {isTaxPolicyEnabled} from '@libs/PolicyUtils'; +import {isTaxTrackingEnabled} from '@libs/PolicyUtils'; import * as ReceiptUtils from '@libs/ReceiptUtils'; import * as ReportUtils from '@libs/ReportUtils'; import playSound, {SOUNDS} from '@libs/Sound'; @@ -284,7 +284,7 @@ function MoneyTemporaryForRefactorRequestConfirmationList({ const shouldShowTags = useMemo(() => isPolicyExpenseChat && OptionsListUtils.hasEnabledTags(policyTagLists), [isPolicyExpenseChat, policyTagLists]); // A flag for showing tax rate - const shouldShowTax = isTaxPolicyEnabled(isPolicyExpenseChat, policy); + const shouldShowTax = isTaxTrackingEnabled(isPolicyExpenseChat, policy); // A flag for showing the billable field const shouldShowBillable = !lodashGet(policy, 'disabledFields.defaultBillable', true); diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index c052843fefe24..9f4e4dd849146 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -23,7 +23,7 @@ import * as CardUtils from '@libs/CardUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; -import {isTaxPolicyEnabled} from '@libs/PolicyUtils'; +import {isTaxTrackingEnabled} from '@libs/PolicyUtils'; import * as ReceiptUtils from '@libs/ReceiptUtils'; import * as ReportUtils from '@libs/ReportUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -123,7 +123,7 @@ function MoneyRequestView({ const cardProgramName = isCardTransaction && transactionCardID !== undefined ? CardUtils.getCardDescription(transactionCardID) : ''; const isApproved = ReportUtils.isReportApproved(moneyRequestReport); const taxRates = policy?.taxRates; - const formattedTaxAmount = transactionTaxAmount ? CurrencyUtils.convertToDisplayString(transactionTaxAmount, transactionCurrency) : ''; + const formattedTaxAmount = CurrencyUtils.convertToDisplayString(transactionTaxAmount, transactionCurrency); const taxRatesDescription = taxRates?.name; const taxRateTitle = @@ -160,7 +160,7 @@ function MoneyRequestView({ const shouldShowBillable = isPolicyExpenseChat && (!!transactionBillable || !(policy?.disabledFields?.defaultBillable ?? true)); // A flag for showing tax rate - const shouldShowTax = isTaxPolicyEnabled(isPolicyExpenseChat, policy) && transactionTaxCode && transactionTaxAmount; + const shouldShowTax = isTaxTrackingEnabled(isPolicyExpenseChat, policy); const {getViolationsForField} = useViolations(transactionViolations ?? []); const hasViolations = useCallback( diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index d393f8e64fba2..665830ca71679 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -244,7 +244,7 @@ function isPaidGroupPolicy(policy: OnyxEntry | EmptyObject): boolean { return policy?.type === CONST.POLICY.TYPE.TEAM || policy?.type === CONST.POLICY.TYPE.CORPORATE; } -function isTaxPolicyEnabled(isPolicyExpenseChat: boolean, policy: OnyxEntry): boolean { +function isTaxTrackingEnabled(isPolicyExpenseChat: boolean, policy: OnyxEntry): boolean { return (isPolicyExpenseChat && (policy?.tax?.trackingEnabled ?? policy?.isTaxTrackingEnabled)) ?? false; } @@ -332,7 +332,7 @@ export { isInstantSubmitEnabled, isFreeGroupPolicy, isPolicyAdmin, - isTaxPolicyEnabled, + isTaxTrackingEnabled, isSubmitAndClose, getMemberAccountIDsForWorkspace, getIneligibleInvitees, diff --git a/src/pages/EditRequestPage.js b/src/pages/EditRequestPage.js index ff2c2c5ce6eaf..ec49e32a5f0f6 100644 --- a/src/pages/EditRequestPage.js +++ b/src/pages/EditRequestPage.js @@ -13,7 +13,7 @@ import * as IOUUtils from '@libs/IOUUtils'; import Navigation from '@libs/Navigation/Navigation'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; -import {isTaxPolicyEnabled} from '@libs/PolicyUtils'; +import {isTaxTrackingEnabled} from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; import * as IOU from '@userActions/IOU'; @@ -106,7 +106,7 @@ function EditRequestPage({report, route, policy, policyCategories, policyTags, p const shouldShowTags = useMemo(() => isPolicyExpenseChat && (transactionTag || OptionsListUtils.hasEnabledTags(policyTagLists)), [isPolicyExpenseChat, policyTagLists, transactionTag]); // A flag for showing tax rate - const shouldShowTax = isTaxPolicyEnabled(isPolicyExpenseChat, policy); + const shouldShowTax = isTaxTrackingEnabled(isPolicyExpenseChat, policy); // Decides whether to allow or disallow editing a money request useEffect(() => { From 2040aba67509831003529b4983e2176b8866518a Mon Sep 17 00:00:00 2001 From: Monil Bhavsar Date: Fri, 5 Apr 2024 00:06:33 +0530 Subject: [PATCH 2/2] Allow zero tax amount --- src/pages/iou/steps/MoneyRequestAmountForm.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/iou/steps/MoneyRequestAmountForm.tsx b/src/pages/iou/steps/MoneyRequestAmountForm.tsx index 8e3f57b70dea5..755da80fb93f8 100644 --- a/src/pages/iou/steps/MoneyRequestAmountForm.tsx +++ b/src/pages/iou/steps/MoneyRequestAmountForm.tsx @@ -231,7 +231,8 @@ function MoneyRequestAmountForm( * Submit amount and navigate to a proper page */ const submitAndNavigateToNextPage = useCallback(() => { - if (isAmountInvalid(currentAmount)) { + // Skip the check for tax amount form as 0 is a valid input + if (!isTaxAmountForm && isAmountInvalid(currentAmount)) { setFormError('iou.error.invalidAmount'); return; }