diff --git a/lib/redux/product/product_selectors.dart b/lib/redux/product/product_selectors.dart index 4e33966b8..27928a99a 100644 --- a/lib/redux/product/product_selectors.dart +++ b/lib/redux/product/product_selectors.dart @@ -115,11 +115,17 @@ List filteredProductsSelector( if (productListState.custom1Filters.isNotEmpty && !productListState.custom1Filters.contains(product.customValue1)) { return false; - } - if (productListState.custom2Filters.isNotEmpty && + } else if (productListState.custom2Filters.isNotEmpty && !productListState.custom2Filters.contains(product.customValue2)) { return false; + } else if (productListState.custom3Filters.isNotEmpty && + !productListState.custom3Filters.contains(product.customValue3)) { + return false; + } else if (productListState.custom4Filters.isNotEmpty && + !productListState.custom4Filters.contains(product.customValue4)) { + return false; } + return true; }).toList(); diff --git a/lib/redux/quote/quote_selectors.dart b/lib/redux/quote/quote_selectors.dart index c35d29dc4..195340935 100644 --- a/lib/redux/quote/quote_selectors.dart +++ b/lib/redux/quote/quote_selectors.dart @@ -68,7 +68,14 @@ List filteredQuotesSelector( } else if (quoteListState.custom2Filters.isNotEmpty && !quoteListState.custom2Filters.contains(quote.customValue2)) { return false; + } else if (quoteListState.custom3Filters.isNotEmpty && + !quoteListState.custom3Filters.contains(quote.customValue3)) { + return false; + } else if (quoteListState.custom4Filters.isNotEmpty && + !quoteListState.custom4Filters.contains(quote.customValue4)) { + return false; } + return true; }).toList(); diff --git a/lib/redux/recurring_invoice/recurring_invoice_selectors.dart b/lib/redux/recurring_invoice/recurring_invoice_selectors.dart index 55501a5eb..3c852f3f6 100644 --- a/lib/redux/recurring_invoice/recurring_invoice_selectors.dart +++ b/lib/redux/recurring_invoice/recurring_invoice_selectors.dart @@ -73,16 +73,13 @@ List filteredRecurringInvoicesSelector( if (invoiceListState.custom1Filters.isNotEmpty && !invoiceListState.custom1Filters.contains(invoice.customValue1)) { return false; - } - if (invoiceListState.custom2Filters.isNotEmpty && + } else if (invoiceListState.custom2Filters.isNotEmpty && !invoiceListState.custom2Filters.contains(invoice.customValue2)) { return false; - } - if (invoiceListState.custom3Filters.isNotEmpty && + } else if (invoiceListState.custom3Filters.isNotEmpty && !invoiceListState.custom3Filters.contains(invoice.customValue3)) { return false; - } - if (invoiceListState.custom4Filters.isNotEmpty && + } else if (invoiceListState.custom4Filters.isNotEmpty && !invoiceListState.custom4Filters.contains(invoice.customValue4)) { return false; } diff --git a/lib/redux/task/task_selectors.dart b/lib/redux/task/task_selectors.dart index 40134253b..98a67baf0 100644 --- a/lib/redux/task/task_selectors.dart +++ b/lib/redux/task/task_selectors.dart @@ -259,17 +259,17 @@ List filteredTasksSelector( if (taskListState.custom1Filters.isNotEmpty && !taskListState.custom1Filters.contains(task.customValue1)) { return false; - } - if (taskListState.custom2Filters.isNotEmpty && + } else if (taskListState.custom2Filters.isNotEmpty && !taskListState.custom2Filters.contains(task.customValue2)) { return false; - } - /* - if (taskListState.filterEntityId != null && - task.entityId != taskListState.filterEntityId) { + } else if (taskListState.custom3Filters.isNotEmpty && + !taskListState.custom3Filters.contains(task.customValue3)) { + return false; + } else if (taskListState.custom4Filters.isNotEmpty && + !taskListState.custom4Filters.contains(task.customValue4)) { return false; } - */ + return true; }).toList(); diff --git a/lib/redux/vendor/vendor_selectors.dart b/lib/redux/vendor/vendor_selectors.dart index fdaec92c9..973d931dd 100644 --- a/lib/redux/vendor/vendor_selectors.dart +++ b/lib/redux/vendor/vendor_selectors.dart @@ -60,11 +60,15 @@ List filteredVendorsSelector( if (vendorListState.custom1Filters.isNotEmpty && !vendorListState.custom1Filters.contains(vendor.customValue1)) { return false; - } - - if (vendorListState.custom2Filters.isNotEmpty && + } else if (vendorListState.custom2Filters.isNotEmpty && !vendorListState.custom2Filters.contains(vendor.customValue2)) { return false; + } else if (vendorListState.custom3Filters.isNotEmpty && + !vendorListState.custom3Filters.contains(vendor.customValue3)) { + return false; + } else if (vendorListState.custom4Filters.isNotEmpty && + !vendorListState.custom4Filters.contains(vendor.customValue4)) { + return false; } return vendor.matchesFilter(vendorListState.filter); diff --git a/lib/ui/product/view/product_view_overview.dart b/lib/ui/product/view/product_view_overview.dart index 7e329b518..c1dd89396 100644 --- a/lib/ui/product/view/product_view_overview.dart +++ b/lib/ui/product/view/product_view_overview.dart @@ -63,6 +63,22 @@ class _ProductOverviewState extends State { value: product.customValue2); } + if (product.customValue3.isNotEmpty) { + final label3 = company.getCustomFieldLabel(CustomFieldType.product3); + fields[label3] = formatCustomValue( + context: context, + field: CustomFieldType.product3, + value: product.customValue3); + } + + if (product.customValue4.isNotEmpty) { + final label4 = company.getCustomFieldLabel(CustomFieldType.product4); + fields[label4] = formatCustomValue( + context: context, + field: CustomFieldType.product4, + value: product.customValue4); + } + return ScrollableListView( children: [ EntityHeader( diff --git a/lib/ui/task/view/task_view_overview.dart b/lib/ui/task/view/task_view_overview.dart index 39420004d..aaf4ade45 100644 --- a/lib/ui/task/view/task_view_overview.dart +++ b/lib/ui/task/view/task_view_overview.dart @@ -85,6 +85,22 @@ class _TaskOverviewState extends State { value: task.customValue2); } + if (task.customValue3.isNotEmpty) { + final label3 = company.getCustomFieldLabel(CustomFieldType.task3); + fields[label3] = formatCustomValue( + context: context, + field: CustomFieldType.task3, + value: task.customValue3); + } + + if (task.customValue4.isNotEmpty) { + final label4 = company.getCustomFieldLabel(CustomFieldType.task4); + fields[label4] = formatCustomValue( + context: context, + field: CustomFieldType.task4, + value: task.customValue4); + } + List _buildView() { final widgets = [ EntityHeader( diff --git a/lib/ui/vendor/view/vendor_view_overview.dart b/lib/ui/vendor/view/vendor_view_overview.dart index b7fe5c1eb..c355884c2 100644 --- a/lib/ui/vendor/view/vendor_view_overview.dart +++ b/lib/ui/vendor/view/vendor_view_overview.dart @@ -57,6 +57,22 @@ class VendorOverview extends StatelessWidget { value: vendor.customValue2); } + if (vendor.customValue3.isNotEmpty) { + final label3 = company.getCustomFieldLabel(CustomFieldType.vendor3); + fields[label3] = formatCustomValue( + context: context, + field: CustomFieldType.vendor3, + value: vendor.customValue3); + } + + if (vendor.customValue4.isNotEmpty) { + final label4 = company.getCustomFieldLabel(CustomFieldType.vendor4); + fields[label4] = formatCustomValue( + context: context, + field: CustomFieldType.vendor4, + value: vendor.customValue4); + } + return ScrollableListView( children: [ EntityHeader( diff --git a/stubs/redux/stub/stub_selectors b/stubs/redux/stub/stub_selectors index 84be6a57a..a67c79b52 100644 --- a/stubs/redux/stub/stub_selectors +++ b/stubs/redux/stub/stub_selectors @@ -71,11 +71,17 @@ List filteredStubsSelector( if (stubListState.custom1Filters.isNotEmpty && !stubListState.custom1Filters.contains(stub.customValue1)) { return false; - } - if (stubListState.custom2Filters.isNotEmpty && + } else if (stubListState.custom2Filters.isNotEmpty && !stubListState.custom2Filters.contains(stub.customValue2)) { return false; + } else if (stubListState.custom3Filters.isNotEmpty && + !stubListState.custom3Filters.contains(stub.customValue3)) { + return false; + } else if (stubListState.custom4Filters.isNotEmpty && + !stubListState.custom4Filters.contains(stub.customValue4)) { + return false; } + return stub.matchesFilter(stubListState.filter); }).toList();