|
|
|
|
@ -7,6 +7,7 @@ import com.mfsys.comm.util.MapValueExtractorUtil;
|
|
|
|
|
import com.mfsys.uco.UCOURI;
|
|
|
|
|
import com.mfsys.uco.dto.*;
|
|
|
|
|
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
|
|
|
|
|
import com.mfsys.uco.exception.ReferenceNumberNotValidException;
|
|
|
|
|
import com.mfsys.uco.exception.SameCrDrAccountExistsException;
|
|
|
|
|
import com.mfsys.uco.model.CustomerProfile;
|
|
|
|
|
import com.mfsys.uco.model.CustomerProfileId;
|
|
|
|
|
@ -86,8 +87,10 @@ public class TransactionService {
|
|
|
|
|
.build();
|
|
|
|
|
Map<String, Object> response = (Map<String, Object>) webClientDepositService.postTransaction(coreCashInTransaction, UCOURI.BANKING_CASH_IN, transactionRequest.getPorOrgacode());
|
|
|
|
|
Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail");
|
|
|
|
|
transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments"))));
|
|
|
|
|
String tranid = extractTranNumber(List.of(transactionId.get("arguments")));
|
|
|
|
|
transactionTrail.setSgtSentGntrnumber(tranid);
|
|
|
|
|
transactionTrail.setBatAcnttranSend(true);
|
|
|
|
|
transactionTrail.setCmpRefcode(tranid+transactionRequest.getCmpRefcode());
|
|
|
|
|
transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance"));
|
|
|
|
|
transactionTrailRepository.save(transactionTrail);
|
|
|
|
|
return response;
|
|
|
|
|
@ -117,6 +120,9 @@ public class TransactionService {
|
|
|
|
|
Map<String, Object> response = new HashMap<>();
|
|
|
|
|
Optional<TransactionTrail> transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId()));
|
|
|
|
|
if (transactionTrail.isPresent()) {
|
|
|
|
|
if(!(transactionTrail.get().getSgtSentGntrnumber()+cashOutTransactionRequest.getCmpRefcode()).equals(transactionTrail.get().getCmpRefcode())){
|
|
|
|
|
throw new ReferenceNumberNotValidException();
|
|
|
|
|
}
|
|
|
|
|
transactionTrail.get().setCrSgtGntramt(BigDecimal.valueOf(convertFromPKR(transactionTrail.get().getCrPcrCurrcode(),Double.valueOf(String.valueOf(transactionTrail.get().getDrSgtGntramt())),transactionTrail.get().getPorOrgacode())));;
|
|
|
|
|
CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder()
|
|
|
|
|
.crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode())
|
|
|
|
|
@ -191,6 +197,7 @@ public class TransactionService {
|
|
|
|
|
.targetPerEratrateact(targetPerEratrateact)
|
|
|
|
|
.serviceCharges(0.0)
|
|
|
|
|
.pcrCurrcode(targetCurrencyCode)
|
|
|
|
|
|
|
|
|
|
.sgtGntramtfc(BigDecimal.valueOf(convertFromPkr).setScale(2, RoundingMode.HALF_UP))
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|