@@ -656,6 +656,24 @@ function isFetchingWaypointsFromServer(transaction: OnyxInputOrEntry<Transaction
656656 return ! ! transaction ?. pendingFields ?. waypoints ;
657657}
658658
659+ /**
660+ * Verify that the transaction is in Self DM and that its distance rate is invalid.
661+ */
662+ function isUnreportedAndHasInvalidDistanceRateTransaction ( transaction : OnyxInputOrEntry < Transaction > , policyParam : OnyxEntry < Policy > = undefined ) {
663+ if ( transaction && isDistanceRequest ( transaction ) ) {
664+ const report = getReportOrDraftReport ( transaction . reportID ) ;
665+ const policy = policyParam ?? getPolicy ( report ?. policyID ) ;
666+ const { rate} = DistanceRequestUtils . getRate ( { transaction, policy} ) ;
667+ const isUnreported = ! transaction . reportID || transaction . reportID === CONST . REPORT . UNREPORTED_REPORT_ID ;
668+
669+ if ( isUnreported && ! rate ) {
670+ return true ;
671+ }
672+ }
673+
674+ return false ;
675+ }
676+
659677/**
660678 * Return the merchant field from the transaction, return the modifiedMerchant if present.
661679 */
@@ -668,9 +686,11 @@ function getMerchant(transaction: OnyxInputOrEntry<Transaction>, policyParam: On
668686 const mileageRate = DistanceRequestUtils . getRate ( { transaction, policy} ) ;
669687 const { unit, rate} = mileageRate ;
670688 const distanceInMeters = getDistanceInMeters ( transaction , unit ) ;
671- return DistanceRequestUtils . getDistanceMerchant ( true , distanceInMeters , unit , rate , transaction . currency , translateLocal , ( digit ) =>
672- toLocaleDigit ( TranslationStore . getCurrentLocale ( ) , digit ) ,
673- ) ;
689+ if ( ! isUnreportedAndHasInvalidDistanceRateTransaction ( transaction , policy ) ) {
690+ return DistanceRequestUtils . getDistanceMerchant ( true , distanceInMeters , unit , rate , transaction . currency , translateLocal , ( digit ) =>
691+ toLocaleDigit ( TranslationStore . getCurrentLocale ( ) , digit ) ,
692+ ) ;
693+ }
674694 }
675695 return transaction ?. modifiedMerchant ? transaction . modifiedMerchant : ( transaction ?. merchant ?? '' ) ;
676696}
@@ -1728,6 +1748,7 @@ export {
17281748 getTransactionPendingAction ,
17291749 isTransactionPendingDelete ,
17301750 createUnreportedExpenseSections ,
1751+ isUnreportedAndHasInvalidDistanceRateTransaction ,
17311752} ;
17321753
17331754export type { TransactionChanges } ;
0 commit comments