From fd9e9318cf72b3d7cd639a7cc4e8f5b89396e18d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 23 May 2023 09:02:13 +0300 Subject: [PATCH] Support next_send_datetime being blank --- lib/data/models/invoice_model.dart | 9 +++++++-- lib/ui/invoice/invoice_presenter.dart | 6 ++++-- lib/ui/invoice/view/invoice_view_overview.dart | 7 ++++--- .../recurring_invoice/recurring_invoice_presenter.dart | 6 ++++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart index 73c4d76db..a3202065a 100644 --- a/lib/data/models/invoice_model.dart +++ b/lib/data/models/invoice_model.dart @@ -828,8 +828,13 @@ abstract class InvoiceEntity extends Object response = invoiceA.dueDate.compareTo(invoiceB.dueDate); break; case InvoiceFields.nextSendDate: - response = - invoiceA.nextSendDatetime.compareTo(invoiceB.nextSendDatetime); + if (invoiceA.nextSendDatetime.isNotEmpty && + invoiceB.nextSendDatetime.isNotEmpty) { + response = + invoiceA.nextSendDatetime.compareTo(invoiceB.nextSendDatetime); + } else { + response = invoiceA.nextSendDate.compareTo(invoiceB.nextSendDate); + } break; case EntityFields.assignedTo: final userA = userMap[invoiceA.assignedUserId] ?? UserEntity(); diff --git a/lib/ui/invoice/invoice_presenter.dart b/lib/ui/invoice/invoice_presenter.dart index aa827c136..e61566f6d 100644 --- a/lib/ui/invoice/invoice_presenter.dart +++ b/lib/ui/invoice/invoice_presenter.dart @@ -97,8 +97,10 @@ class InvoicePresenter extends EntityPresenter { case InvoiceFields.nextSendDate: return Text(invoice.isPaid ? '' - : formatDate(invoice.nextSendDatetime, context, - showTime: true, showSeconds: false)); + : invoice.nextSendDatetime.isNotEmpty + ? formatDate(invoice.nextSendDatetime, context, + showTime: true, showSeconds: false) + : formatDate(invoice.nextSendDate, context)); case InvoiceFields.reminder1Sent: return Text(formatDate(invoice.reminder1Sent, context)); case InvoiceFields.reminder2Sent: diff --git a/lib/ui/invoice/view/invoice_view_overview.dart b/lib/ui/invoice/view/invoice_view_overview.dart index dc3c44a25..9585c6392 100644 --- a/lib/ui/invoice/view/invoice_view_overview.dart +++ b/lib/ui/invoice/view/invoice_view_overview.dart @@ -182,9 +182,10 @@ class InvoiceOverview extends StatelessWidget { formatDate(invoice.lastSentDate, context), RecurringInvoiceFields.nextSendDate: formatDate(invoice.nextSendDate, context), - RecurringInvoiceFields.nextSendTime: formatDate( - invoice.nextSendDatetime, context, - showDate: false, showTime: true, showSeconds: false), + if (invoice.nextSendDatetime.isNotEmpty) + RecurringInvoiceFields.nextSendTime: formatDate( + invoice.nextSendDatetime, context, + showDate: false, showTime: true, showSeconds: false), RecurringInvoiceFields.remainingCycles: invoice.remainingCycles == -1 ? localization.endless : '${invoice.remainingCycles}', diff --git a/lib/ui/recurring_invoice/recurring_invoice_presenter.dart b/lib/ui/recurring_invoice/recurring_invoice_presenter.dart index 46c6c22fa..5ab7e531a 100644 --- a/lib/ui/recurring_invoice/recurring_invoice_presenter.dart +++ b/lib/ui/recurring_invoice/recurring_invoice_presenter.dart @@ -114,8 +114,10 @@ class RecurringInvoicePresenter extends EntityPresenter { ? localization.endless : '${invoice.remainingCycles}'); case RecurringInvoiceFields.nextSendDate: - return Text(formatDate(invoice.nextSendDatetime, context, - showTime: true, showSeconds: false)); + return Text(invoice.nextSendDatetime.isNotEmpty + ? formatDate(invoice.nextSendDatetime, context, + showTime: true, showSeconds: false) + : formatDate(invoice.nextSendDate, context)); case RecurringInvoiceFields.frequency: return Text(localization.lookup(kFrequencies[invoice.frequencyId])); case RecurringInvoiceFields.dueDateDays: