diff --git a/lib/data/models/entities.dart b/lib/data/models/entities.dart index 3cddc6db4..3e63a91f1 100644 --- a/lib/data/models/entities.dart +++ b/lib/data/models/entities.dart @@ -907,7 +907,8 @@ abstract class ActivityEntity String getDescription( String activity, - String systemString, { + String systemString, + String recurringString, { UserEntity user, ClientEntity client, InvoiceEntity invoice, @@ -932,8 +933,18 @@ abstract class ActivityEntity vendorContact = vendor.getContact(vendorContactId); } - activity = - activity.replaceFirst(':user', user?.listDisplayName ?? systemString); + if ((recurringInvoice?.isOld ?? false) && (invoice?.isOld ?? false)) { + activity = activity.replaceFirst( + ':user', '$recurringString ${recurringInvoice.number}'); + } else if ((recurringExpense?.isOld ?? false) && + (expense?.isOld ?? false)) { + activity = activity.replaceFirst( + ':user', '$recurringString ${recurringExpense.number}'); + } else { + activity = + activity.replaceFirst(':user', user?.listDisplayName ?? systemString); + } + activity = activity.replaceFirst(':client', client?.displayName ?? ''); activity = activity.replaceFirst(':invoice', invoice?.number ?? ''); activity = activity.replaceFirst( diff --git a/lib/ui/app/lists/activity_list_tile.dart b/lib/ui/app/lists/activity_list_tile.dart index d8831acf9..960de6246 100644 --- a/lib/ui/app/lists/activity_list_tile.dart +++ b/lib/ui/app/lists/activity_list_tile.dart @@ -54,6 +54,7 @@ class ActivityListTile extends StatelessWidget { title = activity.getDescription( title, localization.system, + localization.recurring, user: user, client: client, invoice: invoice, diff --git a/lib/utils/i18n.dart b/lib/utils/i18n.dart index b1f3a025b..c52714d6c 100644 --- a/lib/utils/i18n.dart +++ b/lib/utils/i18n.dart @@ -18,6 +18,7 @@ mixin LocalizationsProvider on LocaleCodeAware { static final Map> _localizedValues = { 'en': { // STARTER: lang key - do not remove comment + 'recurring': 'Recurring', 'ziptax_help': 'Note: this feature requires a Zip-Tax API key to lookup US sales tax by address', 'cache_data': 'Cache Data', @@ -109443,6 +109444,10 @@ mixin LocalizationsProvider on LocaleCodeAware { _localizedValues[localeCode]['ziptax_help'] ?? _localizedValues['en']['ziptax_help']; + String get recurring => + _localizedValues[localeCode]['recurring'] ?? + _localizedValues['en']['recurring']; + // STARTER: lang field - do not remove comment String lookup(String key) {