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({
|
||||
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<InvoiceEditDetails> {
|
|||
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<InvoiceEditDetails> {
|
|||
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<InvoiceEditDetails> {
|
|||
},
|
||||
),
|
||||
DatePicker(
|
||||
labelText: localization.dueDate,
|
||||
labelText: widget.isQuote
|
||||
? localization.validUntil
|
||||
: localization.dueDate,
|
||||
selectedDate: invoice.dueDate,
|
||||
onSelected: (date) {
|
||||
viewModel.onChanged(invoice.rebuild((b) => b..dueDate = date));
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ class InvoiceScreen extends StatelessWidget {
|
|||
sortFields: [
|
||||
InvoiceFields.invoiceNumber,
|
||||
InvoiceFields.invoiceDate,
|
||||
InvoiceFields.dueDate,
|
||||
InvoiceFields.updatedAt,
|
||||
],
|
||||
onSelectedState: (EntityState state, value) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ class QuoteEditDetailsScreen extends StatelessWidget {
|
|||
builder: (context, viewModel) {
|
||||
return InvoiceEditDetails(
|
||||
viewModel: viewModel,
|
||||
isQuote: true,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ class QuoteScreen extends StatelessWidget {
|
|||
sortFields: [
|
||||
QuoteFields.quoteNumber,
|
||||
QuoteFields.quoteDate,
|
||||
QuoteFields.validUntil,
|
||||
InvoiceFields.updatedAt,
|
||||
],
|
||||
onSelectedState: (EntityState state, value) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue