Improve invoice date sorting

This commit is contained in:
Hillel Coren 2022-01-28 08:50:48 +02:00
parent 4ca313037f
commit 531a2598d0
3 changed files with 25 additions and 11 deletions

View File

@ -1002,6 +1002,16 @@ abstract class InvoiceEntity extends Object
@override
FormatNumberType get listDisplayAmountType => FormatNumberType.money;
String get primaryDate {
if (partialDueDate.isNotEmpty && partial != 0) {
return partialDueDate;
} else if (dueDate.isNotEmpty && !isPaid) {
return dueDate;
} else {
return date;
}
}
bool isBetween(String startDate, String endDate) {
return startDate.compareTo(date) <= 0 && endDate.compareTo(date) >= 0;
}

View File

@ -31,8 +31,8 @@ List<InvoiceEntity> _upcomingInvoices({
}
});
invoices.sort(
(invoiceA, invoiceB) => invoiceA.dueDate.compareTo(invoiceB.dueDate));
invoices.sort((invoiceA, invoiceB) =>
invoiceA.primaryDate.compareTo(invoiceB.primaryDate));
return invoices;
}
@ -63,8 +63,8 @@ List<InvoiceEntity> _pastDueInvoices({
}
});
invoices.sort(
(invoiceA, invoiceB) => invoiceA.dueDate.compareTo(invoiceB.dueDate));
invoices.sort((invoiceA, invoiceB) =>
invoiceA.primaryDate.compareTo(invoiceB.primaryDate));
return invoices;
}
@ -132,7 +132,8 @@ List<InvoiceEntity> _upcomingQuotes({
}
});
quotes.sort((quoteA, quoteB) => quoteA.dueDate.compareTo(quoteB.dueDate));
quotes.sort(
(quoteA, quoteB) => quoteA.primaryDate.compareTo(quoteB.primaryDate));
return quotes;
}
@ -161,7 +162,8 @@ List<InvoiceEntity> _expiredQuotes({
}
});
quotes.sort((quoteA, quoteB) => quoteA.dueDate.compareTo(quoteB.dueDate));
quotes.sort(
(quoteA, quoteB) => quoteA.primaryDate.compareTo(quoteB.primaryDate));
return quotes;
}

View File

@ -56,7 +56,12 @@ class InvoiceListItem extends StatelessWidget {
if (invoice.date.isNotEmpty) {
subtitle = formatDate(invoice.date, context);
}
if (invoice.dueDate.isNotEmpty) {
if (invoice.partialDueDate.isNotEmpty && invoice.partial != 0) {
if (subtitle.isNotEmpty) {
subtitle += '';
}
subtitle += formatDate(invoice.partialDueDate, context);
} else if (invoice.dueDate.isNotEmpty) {
if (subtitle.isNotEmpty) {
subtitle += '';
}
@ -230,10 +235,7 @@ class InvoiceListItem extends StatelessWidget {
: invoice.number) +
'' +
formatDate(
invoice.dueDate.isNotEmpty
? invoice.dueDate
: invoice.date,
context) +
invoice.primaryDate, context) +
(invoice.documents.isNotEmpty
? ' 📎'
: ''))