Invoice payment validation modified
authorVásáry Dániel <vasary@elgekko.net>
Thu, 29 Feb 2024 21:18:06 +0000 (22:18 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Thu, 29 Feb 2024 21:18:06 +0000 (22:18 +0100)
sly-crm-ui/src/main/java/hu/user/lis/ui/editor/validator/InvoiceFormValidator.java

index 03c9af65e3d9a73962c216a32db095e137371622..ea409cd51d393ac8ff1d9285d681fc00434fb94f 100644 (file)
@@ -14,6 +14,7 @@ public class InvoiceFormValidator extends FormValidator<Invoice> {
                 validator(entity, this::validateHumanId, "A 'Sorszám' kitöltése kötelező."),
                 validator(entity.getCurrency(), this::validateNotNull, "A 'Pénznem' kitöltése kötelező."),
                 validator(entity, this::validatePaymentAmounts, "A 'Nettó összeg' értéke nem lehet nagyobb a 'Bruttó összeg' értékénél."),
+                validator(entity, this::validateNegativePaymentAmounts, "A storno 'Bruttó összeg' értéke nem lehet nagyobb a 'Nettó összeg' értékénél."),
 //                validator(entity.getNetAmount(), this::validateDouble, "A 'Nettó összeg' kitöltése kötelező."),
 //                validator(entity.getGrossAmount(), this::validateDouble, "A 'Bruttó összeg' kitöltése kötelező."),
 //                validator(entity.getVatAmount(), this::validateDouble, "Az 'ÁFA' kitöltése kötelező."),
@@ -26,12 +27,24 @@ public class InvoiceFormValidator extends FormValidator<Invoice> {
         };
     }
 
+    private boolean validateNegativePaymentAmounts(Object data) {
+        if (data instanceof Invoice) {
+            Invoice entity = (Invoice) data;
+            if (entity.getNetAmount() < 0) {
+                return entity.getGrossAmount() <= entity.getNetAmount();
+            }
+        }
+        return true;
+    }
+
     private boolean validatePaymentAmounts(Object data) {
         if (data instanceof Invoice) {
             Invoice entity = (Invoice) data;
-            return entity.getNetAmount() <= entity.getGrossAmount();
+            if (entity.getNetAmount() > 0) {
+                return entity.getNetAmount() <= entity.getGrossAmount();
+            }
         }
-        return false;
+        return true;
     }
 
     private boolean validateCreateAndPaymentDates(Object data) {