Enabled sorting invoices by due date

This commit is contained in:
Hillel Coren 2018-11-20 13:58:47 +02:00
parent 778c27c77e
commit 5547103324
5 changed files with 19 additions and 4 deletions

View File

@ -15,9 +15,11 @@ class InvoiceEditDetails extends StatefulWidget {
const InvoiceEditDetails({ const InvoiceEditDetails({
Key key, Key key,
@required this.viewModel, @required this.viewModel,
this.isQuote = false,
}) : super(key: key); }) : super(key: key);
final EntityEditDetailsVM viewModel; final EntityEditDetailsVM viewModel;
final bool isQuote;
@override @override
InvoiceEditDetailsState createState() => InvoiceEditDetailsState(); InvoiceEditDetailsState createState() => InvoiceEditDetailsState();
@ -137,7 +139,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
autocorrect: false, autocorrect: false,
controller: _invoiceNumberController, controller: _invoiceNumberController,
decoration: InputDecoration( decoration: InputDecoration(
labelText: localization.invoiceNumber, labelText: widget.isQuote
? localization.quoteNumber
: localization.invoiceNumber,
), ),
validator: (String val) => val.trim().isEmpty validator: (String val) => val.trim().isEmpty
? AppLocalization.of(context).pleaseEnterAnInvoiceNumber ? AppLocalization.of(context).pleaseEnterAnInvoiceNumber
@ -147,7 +151,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
validator: (String val) => val.trim().isEmpty validator: (String val) => val.trim().isEmpty
? AppLocalization.of(context).pleaseSelectADate ? AppLocalization.of(context).pleaseSelectADate
: null, : null,
labelText: localization.invoiceDate, labelText: widget.isQuote
? localization.quoteDate
: localization.invoiceDate,
selectedDate: invoice.invoiceDate, selectedDate: invoice.invoiceDate,
onSelected: (date) { onSelected: (date) {
viewModel viewModel
@ -155,7 +161,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
}, },
), ),
DatePicker( DatePicker(
labelText: localization.dueDate, labelText: widget.isQuote
? localization.validUntil
: localization.dueDate,
selectedDate: invoice.dueDate, selectedDate: invoice.dueDate,
onSelected: (date) { onSelected: (date) {
viewModel.onChanged(invoice.rebuild((b) => b..dueDate = date)); viewModel.onChanged(invoice.rebuild((b) => b..dueDate = date));

View File

@ -73,7 +73,11 @@ class InvoiceListItem extends StatelessWidget {
child: filterMatch == null child: filterMatch == null
? Text(invoice.invoiceNumber + ? Text(invoice.invoiceNumber +
'' + '' +
formatDate(invoice.invoiceDate, context)) formatDate(
invoice.dueDate.isNotEmpty
? invoice.dueDate
: invoice.invoiceDate,
context))
: Text( : Text(
filterMatch, filterMatch,
maxLines: 3, maxLines: 3,

View File

@ -53,6 +53,7 @@ class InvoiceScreen extends StatelessWidget {
sortFields: [ sortFields: [
InvoiceFields.invoiceNumber, InvoiceFields.invoiceNumber,
InvoiceFields.invoiceDate, InvoiceFields.invoiceDate,
InvoiceFields.dueDate,
InvoiceFields.updatedAt, InvoiceFields.updatedAt,
], ],
onSelectedState: (EntityState state, value) { onSelectedState: (EntityState state, value) {

View File

@ -26,6 +26,7 @@ class QuoteEditDetailsScreen extends StatelessWidget {
builder: (context, viewModel) { builder: (context, viewModel) {
return InvoiceEditDetails( return InvoiceEditDetails(
viewModel: viewModel, viewModel: viewModel,
isQuote: true,
); );
}, },
); );

View File

@ -59,6 +59,7 @@ class QuoteScreen extends StatelessWidget {
sortFields: [ sortFields: [
QuoteFields.quoteNumber, QuoteFields.quoteNumber,
QuoteFields.quoteDate, QuoteFields.quoteDate,
QuoteFields.validUntil,
InvoiceFields.updatedAt, InvoiceFields.updatedAt,
], ],
onSelectedState: (EntityState state, value) { onSelectedState: (EntityState state, value) {