From ad1057474b6ced37c1e7bcefe0f0c04e1c98c486 Mon Sep 17 00:00:00 2001 From: Naeem Ullah Date: Wed, 21 Jan 2026 12:08:37 +0500 Subject: [PATCH] Add validation for credit and debit amounts in transactions Introduced checks to ensure credit and debit amounts are present and greater than zero in transaction-related methods. Returns appropriate error responses if validation fails, improving input validation and error handling. --- .../client/service/TransactionService.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java index 5969d86..cdbfe40 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java @@ -59,6 +59,18 @@ public class TransactionService { Double creditAmount = accountGLTransactionRequest.getCreditGl().getSgtGntramtfc(); Double debitAmount = accountGLTransactionRequest.getDebitAcc().getSgtGntramtfc(); + if (creditAmount == null || debitAmount == null) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts are required"); + } + + if (creditAmount <= 0 || debitAmount <= 0) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts must be greater than 0"); + } + if (!creditAmount.equals(debitAmount)) { return ResponseEntity .badRequest() @@ -95,11 +107,24 @@ public class TransactionService { Double creditAmount = gLtoGLRequest.getCreditGl().getSgtGntramtfc(); Double debitAmount = gLtoGLRequest.getDebitGl().getSgtGntramtfc(); + if (creditAmount == null || debitAmount == null) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts are required"); + } + + if (creditAmount <= 0 || debitAmount <= 0) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts must be greater than 0"); + } + if (!creditAmount.equals(debitAmount)) { return ResponseEntity .badRequest() .body("Credit and Debit amounts must be equal"); } + String porOrgacode = gLtoGLRequest.getPorOrgacode(); String url = generalledgerURI + "/generalledger/" + "/organizations/" + porOrgacode + "/transactions" + ACONNECT +"/gltogls"; HttpHeaders headers = new HttpHeaders(); @@ -129,6 +154,19 @@ public class TransactionService { BigDecimal creditAmount = accountToAccountDTO.getCreditAcc().getSgtGntramtfc(); BigDecimal debitAmount = accountToAccountDTO.getDebitAcc().getSgtGntramtfc(); + if (creditAmount == null || debitAmount == null) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts are required"); + } + + if (creditAmount.compareTo(BigDecimal.ZERO) <= 0 || + debitAmount.compareTo(BigDecimal.ZERO) <= 0) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts must be greater than 0"); + } + if (!creditAmount.equals(debitAmount)) { return ResponseEntity .badRequest() @@ -171,6 +209,13 @@ public class TransactionService { .body("Credit and Debit amounts must be equal"); } + if (creditAmount.compareTo(BigDecimal.ZERO) <= 0 || + debitAmount.compareTo(BigDecimal.ZERO) <= 0) { + return ResponseEntity + .badRequest() + .body("Credit and Debit amounts must be greater than 0"); + } + String porOrgacode = glToAccountDTO.getPorOrgacode(); String url = depositURI + "/deposit" + "/organizations/" + porOrgacode + "/transactions" + ACONNECT + "/gl-to-account";