commit add money done

Nabeel-DG-BS
Raja Nabeel 1 year ago
parent 653ad3f3c1
commit 444215580f

@ -17,6 +17,7 @@ public interface UCOURI {
String GET_DR_TRANSACTION_PIN = "/sendDrTranOtpAndVerifyTranPin";
String RESEND_GET_DR_TRANSACTION_PIN = "/resendDrTranOtp";
String SUBMIT_DR_TRANSACTION = "/submitDrTransaction";
String SUBMIT_ADD_MONEY_GL_ACC_DR_TRANSACTION = "/submitGLAccontAddMoneyTranasction";
String CURRENCY_EVALUATION = "/getEvaluatedCurrency";
String SUBMIT_CR_TRANSACTION = "/submitCrTransaction";
String PENDING_CR_TRANSACTION = "/fetchPendingCredittransaction";

@ -1,11 +1,8 @@
package com.mfsys.uco.controller;
import com.mfsys.uco.UCOURI;
import com.mfsys.uco.dto.CashInTransactionRequest;
import com.mfsys.uco.dto.CashOutTransactionRequest;
import com.mfsys.uco.dto.EvaluatedCurrencyReponse;
import com.mfsys.uco.dto.*;
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
import com.mfsys.uco.dto.TransactionPinResponseModel;
import com.mfsys.uco.model.TransactionTrail;
import com.mfsys.uco.service.TransactionService;
import lombok.RequiredArgsConstructor;
@ -35,6 +32,11 @@ public class TransactionController {
return transactionService.cashInTransaction(transactionRequest);
}
@PostMapping(UCOURI.SUBMIT_ADD_MONEY_GL_ACC_DR_TRANSACTION)
public Map<String, Object> addMoneyGlAccTransaction(@RequestBody GLAccontTranasctionRequestModel glAccontTranasctionRequestModel) {
return transactionService.glAccountTransaction(glAccontTranasctionRequestModel);
}
@PostMapping(UCOURI.SUBMIT_CR_TRANSACTION)
public Map<String, Object> cashOutTransaction(@RequestBody CashOutTransactionRequest transactionRequest) {
return transactionService.cashOutTransaction(transactionRequest);

@ -0,0 +1,33 @@
package com.mfsys.uco.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GLAccontTranasctionRequestModel {
private String porOrgacode;
private String pctCstycode;
private String channelCode;
private String cmpCustcode;
private String drPcaGlaccode;
private String drPcaGlacdesc;
private String crMbmBkmsnumber;
private String crMbmBkmstitle;
private String crPcrCurrcode;
private String crPcrCurrdesc;
private String crPcrCurrshort;
private String sgtGntrnarration;
private String dmpProdCode;
private String transType;
private String notificationId;
private String transMode;
private double sgtGntramtfc;
private String otdTrancomment;
private String obpPincode;
private String pinType;
}

@ -0,0 +1,52 @@
package com.mfsys.uco.model;
import com.mfsys.comm.util.FieldNameLength;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity(name = "BN_MS_GA_UCOGENERALTRANSACTIONTRAIL")
@Table(name = "BN_MS_GA_UCOGENERAALTRANSACTIONTRAIL")
public class GLAccountMasterTransaction {
@Column(name = "POR_ORGACODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.POR_ORGACODE)
protected String porOrgacode;
@Column(name = "DR_PCA_GLACODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.ACCOUNT_NUMBER)
protected String drPcaGlaccode;
@Column(name = "CR_MBM_BKMSNUMBER", nullable = false, updatable = false, columnDefinition = FieldNameLength.ACCOUNT_NUMBER)
protected String crMbmBkmsnumber;
@Column(name = "DMP_PRODCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.DMP_PRODCODE)
protected String dmpProdcode;
@Column(name = "DR_PCA_GLADESC", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_TITLE)
protected String drPcaGlacdesc;
@Column(name = "CMP_CUSTCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.CUSTOMER_CODE)
protected String cmpCustcode;
@Column(name = "CR_MBM_BKMSTITLE", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_TITLE)
protected String crMbmBkmstitle;
@Column(name = "SGT_SENTGNTRNUMBER", nullable = false, updatable = false, columnDefinition = FieldNameLength.CODE_500)
protected String sgtSentGntrnumber;
@Column(name = "DR_SGT_GNTRDATE", nullable = false, updatable = false, columnDefinition = FieldNameLength.DATE)
protected LocalDate drSgtGntrdate;
@Column(name = "SGT_GNTRAMT", nullable = false, updatable = false, columnDefinition = FieldNameLength.AMOUNT_REAL)
protected BigDecimal sgtGntramt = BigDecimal.ZERO;
@Column(name = "DR_SGT_GNTRAMT", nullable = false, updatable = false, columnDefinition = FieldNameLength.AMOUNT_REAL)
protected BigDecimal drSgtGntramt = BigDecimal.ZERO;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "CR_PCR_CURRSHORT", nullable = false, columnDefinition = FieldNameLength.DESCRIPTION_LONG)
private String crPcrCurrshort;
@Column(name = "CR_PCR_CURRDESC", nullable = false, columnDefinition = FieldNameLength.DESCRIPTION_LONG)
private String crPcrCurrdesc;
@Column(name = "CR_PCR_CURRCODE", columnDefinition = FieldNameLength.PCR_CURRCODE)
private String crPcrCurrcode;
}

@ -0,0 +1,13 @@
package com.mfsys.uco.repository;
import com.mfsys.uco.model.GLAccountMasterTransaction;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface GLAccountMasterTransactionTrailRepository extends JpaRepository<GLAccountMasterTransaction, Integer> {
}

@ -10,8 +10,10 @@ import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
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.GLAccountMasterTransactionTrailRepository;
import com.mfsys.uco.repository.TransactionTrailRepository;
import lombok.Data;
import lombok.RequiredArgsConstructor;
@ -36,6 +38,8 @@ public class TransactionService {
private final TransactionTrailRepository transactionTrailRepository;
private final UcoAccountService ucoAccountService;
private final WebClientDepositService webClientDepositService;
private final GLAccountMasterTransactionTrailRepository glAccountMasterTransactionTrailRepository;
public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) {
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(),
@ -88,6 +92,7 @@ public class TransactionService {
return response;
}
private void validation(CashInTransactionRequest transactionRequest) {
if (transactionRequest.getCrMbmBkmsnumber().equals(transactionRequest.getDrMbmBkmsnumber())) {
throw new SameCrDrAccountExistsException();
@ -192,7 +197,6 @@ public class TransactionService {
public double convertToPKR(String fromcrCurrcode, double amount, String porOrgacode) {
// List<Map<String, Object>> exchangeRateList = (List<Map<String, Object>>) ucoAccountService.fetchExchangeRate(porOrgacode); // Changed to List<Map>
List<ExchangeRateModel> exchangeRateModelList = fetchExchangeRate(porOrgacode);
String baseCurrencyCode = exchangeRateModelList.stream()
@ -235,4 +239,40 @@ public class TransactionService {
.orElseThrow(() -> new RuntimeException("Product Not Found"));
}
public Map<String, Object> glAccountTransaction(GLAccontTranasctionRequestModel glAccontTranasctionRequestModel) {
Map<String, Object> response = new HashMap<>();
notificationService.verifyOtpViaOtpId(glAccontTranasctionRequestModel.getNotificationId(),glAccontTranasctionRequestModel.getPinType(),glAccontTranasctionRequestModel.getObpPincode());
CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder()
.pcaGlaccode(glAccontTranasctionRequestModel.getDrPcaGlaccode())
.crMbmBkmsnumber(glAccontTranasctionRequestModel.getCrMbmBkmsnumber())
.otdTrancomment(glAccontTranasctionRequestModel.getOtdTrancomment())
.porOrgacode(glAccontTranasctionRequestModel.getPorOrgacode())
.accSgtGntramtfc(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc()))
.sgtGntramtfc(BigDecimal.valueOf(convertToPKR(glAccontTranasctionRequestModel.getCrPcrCurrcode(),glAccontTranasctionRequestModel.getSgtGntramtfc(),glAccontTranasctionRequestModel.getPorOrgacode())))
.crPcrCurrcode(glAccontTranasctionRequestModel.getCrPcrCurrcode())
.build();
response = (Map<String, Object>) webClientDepositService.postTransaction(cashOutTransaction, UCOURI.BANKING_CASH_OUT, glAccontTranasctionRequestModel.getPorOrgacode());
Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail");
GLAccountMasterTransaction glAccountMasterTransaction = GLAccountMasterTransaction.builder()
.porOrgacode(glAccontTranasctionRequestModel.getPorOrgacode())
.cmpCustcode(glAccontTranasctionRequestModel.getCmpCustcode())
.crMbmBkmsnumber(glAccontTranasctionRequestModel.getCrMbmBkmsnumber())
.crMbmBkmstitle(glAccontTranasctionRequestModel.getCrMbmBkmstitle())
.crPcrCurrcode(glAccontTranasctionRequestModel.getCrPcrCurrcode())
.crPcrCurrdesc(glAccontTranasctionRequestModel.getCrPcrCurrdesc())
.crPcrCurrshort(glAccontTranasctionRequestModel.getCrPcrCurrshort())
.drPcaGlaccode(glAccontTranasctionRequestModel.getDrPcaGlaccode())
.drPcaGlacdesc(glAccontTranasctionRequestModel.getDrPcaGlacdesc())
.dmpProdcode(glAccontTranasctionRequestModel.getDmpProdCode())
.sgtGntramt(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc()))
.drSgtGntramt(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc()))
.drSgtGntrdate(LocalDate.now())
.sgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments"))))
.build();
glAccountMasterTransactionTrailRepository.save(glAccountMasterTransaction);
return response;
}
}

Loading…
Cancel
Save