From 6a6b0fb665292191e77cb0582fed29fb5eb89728 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 30 Jan 2024 15:47:53 +0200 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20allow=20creating=20an=20empty?= =?UTF-8?q?=20payment=20if=20client=20initiated=20payments=20is=20disabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ui/payment/edit/payment_edit_vm.dart | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/ui/payment/edit/payment_edit_vm.dart b/lib/ui/payment/edit/payment_edit_vm.dart index d81488a2b..37d2c5a44 100644 --- a/lib/ui/payment/edit/payment_edit_vm.dart +++ b/lib/ui/payment/edit/payment_edit_vm.dart @@ -80,7 +80,7 @@ class PaymentEditVM { onSavePressed: (BuildContext context) { Debouncer.runOnComplete(() { final payment = store.state.paymentUIState.editing!; - final localization = navigatorKey.localization; + final localization = navigatorKey.localization!; final navigator = navigatorKey.currentState; double amount = 0; payment.invoices.forEach((invoice) => amount += invoice.amount); @@ -89,17 +89,27 @@ class PaymentEditVM { showDialog( context: navigatorKey.currentContext!, builder: (BuildContext context) { - return ErrorDialog(localization!.creditPaymentError); + return ErrorDialog(localization.creditPaymentError); + }); + return null; + } else if (!state.company.enableApplyingPayments && + payment.invoices.isEmpty && + payment.credits.isEmpty) { + showDialog( + context: navigatorKey.currentContext!, + builder: (BuildContext context) { + return ErrorDialog(localization.pleaseSelectAnInvoice); }); return null; } + final Completer completer = Completer(); store.dispatch( SavePaymentRequest(completer: completer, payment: payment)); return completer.future.then((savedPayment) { showToast(payment.isNew - ? localization!.createdPayment - : localization!.updatedPayment); + ? localization.createdPayment + : localization.updatedPayment); if (state.prefState.isMobile) { store.dispatch(UpdateCurrentRoute(PaymentViewScreen.route)); if (payment.isNew) {