From 5547103324a73eb04d86b5460f885b34a00f9e8e Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 20 Nov 2018 13:58:47 +0200 Subject: [PATCH] Enabled sorting invoices by due date --- lib/ui/invoice/edit/invoice_edit_details.dart | 14 +++++++++++--- lib/ui/invoice/invoice_list_item.dart | 6 +++++- lib/ui/invoice/invoice_screen.dart | 1 + lib/ui/quote/edit/quote_edit_details_vm.dart | 1 + lib/ui/quote/quote_screen.dart | 1 + 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/ui/invoice/edit/invoice_edit_details.dart b/lib/ui/invoice/edit/invoice_edit_details.dart index 21b23a59b..4f774788d 100644 --- a/lib/ui/invoice/edit/invoice_edit_details.dart +++ b/lib/ui/invoice/edit/invoice_edit_details.dart @@ -15,9 +15,11 @@ class InvoiceEditDetails extends StatefulWidget { const InvoiceEditDetails({ Key key, @required this.viewModel, + this.isQuote = false, }) : super(key: key); final EntityEditDetailsVM viewModel; + final bool isQuote; @override InvoiceEditDetailsState createState() => InvoiceEditDetailsState(); @@ -137,7 +139,9 @@ class InvoiceEditDetailsState extends State { autocorrect: false, controller: _invoiceNumberController, decoration: InputDecoration( - labelText: localization.invoiceNumber, + labelText: widget.isQuote + ? localization.quoteNumber + : localization.invoiceNumber, ), validator: (String val) => val.trim().isEmpty ? AppLocalization.of(context).pleaseEnterAnInvoiceNumber @@ -147,7 +151,9 @@ class InvoiceEditDetailsState extends State { validator: (String val) => val.trim().isEmpty ? AppLocalization.of(context).pleaseSelectADate : null, - labelText: localization.invoiceDate, + labelText: widget.isQuote + ? localization.quoteDate + : localization.invoiceDate, selectedDate: invoice.invoiceDate, onSelected: (date) { viewModel @@ -155,7 +161,9 @@ class InvoiceEditDetailsState extends State { }, ), DatePicker( - labelText: localization.dueDate, + labelText: widget.isQuote + ? localization.validUntil + : localization.dueDate, selectedDate: invoice.dueDate, onSelected: (date) { viewModel.onChanged(invoice.rebuild((b) => b..dueDate = date)); diff --git a/lib/ui/invoice/invoice_list_item.dart b/lib/ui/invoice/invoice_list_item.dart index df027b397..6fdc9e490 100644 --- a/lib/ui/invoice/invoice_list_item.dart +++ b/lib/ui/invoice/invoice_list_item.dart @@ -73,7 +73,11 @@ class InvoiceListItem extends StatelessWidget { child: filterMatch == null ? Text(invoice.invoiceNumber + ' • ' + - formatDate(invoice.invoiceDate, context)) + formatDate( + invoice.dueDate.isNotEmpty + ? invoice.dueDate + : invoice.invoiceDate, + context)) : Text( filterMatch, maxLines: 3, diff --git a/lib/ui/invoice/invoice_screen.dart b/lib/ui/invoice/invoice_screen.dart index bffc952e0..e864f0682 100644 --- a/lib/ui/invoice/invoice_screen.dart +++ b/lib/ui/invoice/invoice_screen.dart @@ -53,6 +53,7 @@ class InvoiceScreen extends StatelessWidget { sortFields: [ InvoiceFields.invoiceNumber, InvoiceFields.invoiceDate, + InvoiceFields.dueDate, InvoiceFields.updatedAt, ], onSelectedState: (EntityState state, value) { diff --git a/lib/ui/quote/edit/quote_edit_details_vm.dart b/lib/ui/quote/edit/quote_edit_details_vm.dart index 4ea80c212..3393836de 100644 --- a/lib/ui/quote/edit/quote_edit_details_vm.dart +++ b/lib/ui/quote/edit/quote_edit_details_vm.dart @@ -26,6 +26,7 @@ class QuoteEditDetailsScreen extends StatelessWidget { builder: (context, viewModel) { return InvoiceEditDetails( viewModel: viewModel, + isQuote: true, ); }, ); diff --git a/lib/ui/quote/quote_screen.dart b/lib/ui/quote/quote_screen.dart index 1dd0bbcea..12012e4ea 100644 --- a/lib/ui/quote/quote_screen.dart +++ b/lib/ui/quote/quote_screen.dart @@ -59,6 +59,7 @@ class QuoteScreen extends StatelessWidget { sortFields: [ QuoteFields.quoteNumber, QuoteFields.quoteDate, + QuoteFields.validUntil, InvoiceFields.updatedAt, ], onSelectedState: (EntityState state, value) {