Enabled sorting invoices by due date
This commit is contained in:
parent
778c27c77e
commit
5547103324
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ class QuoteEditDetailsScreen extends StatelessWidget {
|
||||||
builder: (context, viewModel) {
|
builder: (context, viewModel) {
|
||||||
return InvoiceEditDetails(
|
return InvoiceEditDetails(
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
|
isQuote: true,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue