@@ -6,11 +6,12 @@ import isSearchTopmostFullScreenRoute from '@libs/Navigation/helpers/isSearchTop
66import Navigation from '@libs/Navigation/Navigation' ;
77import { rand64 } from '@libs/NumberUtils' ;
88import { getTransactionDetails , isOpenReport } from '@libs/ReportUtils' ;
9+ import { shouldRestrictUserBillableActions } from '@libs/SubscriptionUtils' ;
910import { buildOptimisticTransaction , getChildTransactions , getOriginalTransactionWithSplitInfo , isDistanceRequest } from '@libs/TransactionUtils' ;
1011import CONST from '@src/CONST' ;
1112import ONYXKEYS from '@src/ONYXKEYS' ;
1213import ROUTES from '@src/ROUTES' ;
13- import type { Policy , Report , Transaction } from '@src/types/onyx' ;
14+ import type { BillingGraceEndPeriod , Policy , Report , Transaction } from '@src/types/onyx' ;
1415import type { Attendee } from '@src/types/onyx/IOU' ;
1516import type { TransactionCustomUnit } from '@src/types/onyx/Transaction' ;
1617import { initSplitExpenseItemData , updateSplitExpenseDistanceFromAmount } from './IOU/SplitExpenseItems' ;
@@ -38,11 +39,22 @@ Onyx.connectWithoutView({
3839/**
3940 * Create a draft transaction to set up split expense details for the split expense flow
4041 */
41- function initSplitExpense ( transaction : OnyxEntry < Transaction > , policy ?: OnyxEntry < Policy > ) : void {
42+ function initSplitExpense (
43+ transaction : OnyxEntry < Transaction > ,
44+ policy : OnyxEntry < Policy > ,
45+ ownerBillingGracePeriodEnd : OnyxEntry < number > ,
46+ userBillingGracePeriodEnds : OnyxCollection < BillingGraceEndPeriod > ,
47+ amountOwed : OnyxEntry < number > ,
48+ ) : void {
4249 if ( ! transaction ) {
4350 return ;
4451 }
4552
53+ if ( ! ! policy && shouldRestrictUserBillableActions ( policy , ownerBillingGracePeriodEnd , userBillingGracePeriodEnds , amountOwed ) ) {
54+ Navigation . navigate ( ROUTES . RESTRICTED_ACTION . getRoute ( policy . id ) ) ;
55+ return ;
56+ }
57+
4658 const reportID = transaction . reportID ?? String ( CONST . DEFAULT_NUMBER_ID ) ;
4759 const originalTransactionID = transaction ?. comment ?. originalTransactionID ;
4860 const originalTransaction = allTransactions ?. [ `${ ONYXKEYS . COLLECTION . TRANSACTION } ${ originalTransactionID } ` ] ;
0 commit comments