Recurring invoices

This commit is contained in:
Hillel Coren 2020-10-12 17:10:54 +03:00
parent 6dade29bd7
commit b7d835b51b
2 changed files with 25 additions and 0 deletions

View File

@ -141,6 +141,27 @@ EntityStats recurringInvoiceStatsForUser(
return EntityStats(countActive: countActive, countArchived: countArchived);
}
var memoizedRecurringInvoiceStatsForInvoice = memo2(
(String invoiceId, BuiltMap<String, InvoiceEntity> invoiceMap) =>
recurringInvoiceStatsForInvoice(invoiceId, invoiceMap));
EntityStats recurringInvoiceStatsForInvoice(
String recurrinInvoiceId, BuiltMap<String, InvoiceEntity> invoiceMap) {
int countActive = 0;
int countArchived = 0;
invoiceMap.forEach((invoiceId, invoice) {
if (invoice.recurringId == recurrinInvoiceId) {
if (invoice.isActive) {
countActive++;
} else if (invoice.isDeleted) {
countArchived++;
}
}
});
return EntityStats(countActive: countActive, countArchived: countArchived);
}
bool hasRecurringInvoiceChanges(InvoiceEntity recurringInvoice,
BuiltMap<String, InvoiceEntity> recurringInvoiceMap) =>
recurringInvoice.isNew

View File

@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/data/models/recurring_invoice_model.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/payment/payment_selectors.dart';
import 'package:invoiceninja_flutter/redux/recurring_invoice/recurring_invoice_selectors.dart';
import 'package:invoiceninja_flutter/ui/app/FieldGrid.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_list_tile.dart';
import 'package:invoiceninja_flutter/ui/app/invoice/invoice_item_view.dart';
@ -193,6 +194,9 @@ class InvoiceOverview extends StatelessWidget {
context: context,
entityType: EntityType.invoice,
filterEntity: invoice),
subtitle: memoizedRecurringInvoiceStatsForInvoice(
invoice.id, state.invoiceState.map)
.present(localization.active, localization.archived),
));
}