|
|
|
@ -6,15 +6,11 @@ import com.mfsys.comm.util.MapValueExtractorUtil;
|
|
|
|
import com.mfsys.uco.UCOURI;
|
|
|
|
import com.mfsys.uco.UCOURI;
|
|
|
|
import com.mfsys.uco.dto.*;
|
|
|
|
import com.mfsys.uco.dto.*;
|
|
|
|
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
|
|
|
|
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
|
|
|
|
import com.mfsys.uco.exception.InvalidTransactionAmountException;
|
|
|
|
import com.mfsys.uco.exception.*;
|
|
|
|
import com.mfsys.uco.exception.ReferenceNumberNotValidException;
|
|
|
|
import com.mfsys.uco.model.*;
|
|
|
|
import com.mfsys.uco.exception.SameCrDrAccountExistsException;
|
|
|
|
|
|
|
|
import com.mfsys.uco.model.CustomerProfile;
|
|
|
|
|
|
|
|
import com.mfsys.uco.model.CustomerProfileId;
|
|
|
|
|
|
|
|
import com.mfsys.uco.model.GLAccountMasterTransaction;
|
|
|
|
|
|
|
|
import com.mfsys.uco.model.TransactionTrail;
|
|
|
|
|
|
|
|
import com.mfsys.uco.repository.CustomerProfileRepository;
|
|
|
|
import com.mfsys.uco.repository.CustomerProfileRepository;
|
|
|
|
import com.mfsys.uco.repository.GLAccountMasterTransactionTrailRepository;
|
|
|
|
import com.mfsys.uco.repository.GLAccountMasterTransactionTrailRepository;
|
|
|
|
|
|
|
|
import com.mfsys.uco.repository.PinRepository;
|
|
|
|
import com.mfsys.uco.repository.TransactionTrailRepository;
|
|
|
|
import com.mfsys.uco.repository.TransactionTrailRepository;
|
|
|
|
import lombok.Data;
|
|
|
|
import lombok.Data;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
@ -36,15 +32,22 @@ public class TransactionService {
|
|
|
|
private final NotificationService notificationService;
|
|
|
|
private final NotificationService notificationService;
|
|
|
|
private final TransactionPinService transactionPinService;
|
|
|
|
private final TransactionPinService transactionPinService;
|
|
|
|
private final TransactionTrailRepository transactionTrailRepository;
|
|
|
|
private final TransactionTrailRepository transactionTrailRepository;
|
|
|
|
|
|
|
|
private final PinRepository pinRepository;
|
|
|
|
private final UcoAccountService ucoAccountService;
|
|
|
|
private final UcoAccountService ucoAccountService;
|
|
|
|
private final WebClientDepositService webClientDepositService;
|
|
|
|
private final WebClientDepositService webClientDepositService;
|
|
|
|
private final GLAccountMasterTransactionTrailRepository glAccountMasterTransactionTrailRepository;
|
|
|
|
private final GLAccountMasterTransactionTrailRepository glAccountMasterTransactionTrailRepository;
|
|
|
|
|
|
|
|
|
|
|
|
public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) {
|
|
|
|
public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) {
|
|
|
|
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(),
|
|
|
|
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(), transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(), isResendOtp);
|
|
|
|
transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(), isResendOtp);
|
|
|
|
Long notificationId = transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(), transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired());
|
|
|
|
return TransactionPinResponseModel.builder().notificationId(transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(),
|
|
|
|
Pin pin = pinRepository.findLatestActiveOtpByUserName(transactionOtpRequestModel.getEmail(), transactionOtpRequestModel.getPinType())
|
|
|
|
transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired())).build();
|
|
|
|
.orElseThrow(()->new TranVerificationPinException());
|
|
|
|
|
|
|
|
return TransactionPinResponseModel.builder()
|
|
|
|
|
|
|
|
.notificationId(notificationId)
|
|
|
|
|
|
|
|
.obpPincode(pin.getPincode())
|
|
|
|
|
|
|
|
.pinCreation(pin.getPinCreatedate())
|
|
|
|
|
|
|
|
.pinExpiry(pin.getPinExpirydate())
|
|
|
|
|
|
|
|
.build();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Map<String, Object> cashInTransaction(CashInTransactionRequest transactionRequest) {
|
|
|
|
public Map<String, Object> cashInTransaction(CashInTransactionRequest transactionRequest) {
|
|
|
|
@ -374,6 +377,8 @@ public class TransactionService {
|
|
|
|
.accSgtGntramtfc(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc()))
|
|
|
|
.accSgtGntramtfc(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc()))
|
|
|
|
.sgtGntramtfc(BigDecimal.valueOf(convertToPKR(glAccontTranasctionRequestModel.getCrPcrCurrcode(),glAccontTranasctionRequestModel.getSgtGntramtfc(),glAccontTranasctionRequestModel.getPorOrgacode())))
|
|
|
|
.sgtGntramtfc(BigDecimal.valueOf(convertToPKR(glAccontTranasctionRequestModel.getCrPcrCurrcode(),glAccontTranasctionRequestModel.getSgtGntramtfc(),glAccontTranasctionRequestModel.getPorOrgacode())))
|
|
|
|
.crPcrCurrcode(glAccontTranasctionRequestModel.getCrPcrCurrcode())
|
|
|
|
.crPcrCurrcode(glAccontTranasctionRequestModel.getCrPcrCurrcode())
|
|
|
|
|
|
|
|
.plcLocacode(glAccontTranasctionRequestModel.getPlcLocacode())
|
|
|
|
|
|
|
|
.dmpProdcode(glAccontTranasctionRequestModel.getDmpProdCode())
|
|
|
|
.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
response = (Map<String, Object>) webClientDepositService.postTransaction(cashOutTransaction, UCOURI.BANKING_CASH_OUT, glAccontTranasctionRequestModel.getPorOrgacode());
|
|
|
|
response = (Map<String, Object>) webClientDepositService.postTransaction(cashOutTransaction, UCOURI.BANKING_CASH_OUT, glAccontTranasctionRequestModel.getPorOrgacode());
|
|
|
|
|