Nabeel-DG-BS
Raja Nabeel 1 year ago
parent 5099172d19
commit 2f1d762419

@ -54,8 +54,12 @@ public class TransactionTrail {
protected boolean batAcnttranReceived; protected boolean batAcnttranReceived;
@Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500) @Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500)
protected String sgtReceiveGntrnumber; protected String sgtReceiveGntrnumber;
@Column(name = "CMP_REFCODE", nullable = false, updatable = true, columnDefinition = FieldNameLength.CODE_500) @Column(name = "CMP_REFCODE", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500)
protected String cmpRefcode; protected String cmpRefcode;
@Column(name = "EXP_SGT_GNTRDATE", nullable = true, updatable = false, columnDefinition = FieldNameLength.DATE)
protected LocalDate expSgtGntrdate;
@Transient
protected int daysToExpire;
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;

@ -18,11 +18,13 @@ import com.mfsys.uco.repository.GLAccountMasterTransactionTrailRepository;
import com.mfsys.uco.repository.TransactionTrailRepository; import com.mfsys.uco.repository.TransactionTrailRepository;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.hibernate.Transaction;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -90,7 +92,9 @@ public class TransactionService {
String tranid = extractTranNumber(List.of(transactionId.get("arguments"))); String tranid = extractTranNumber(List.of(transactionId.get("arguments")));
transactionTrail.setSgtSentGntrnumber(tranid); transactionTrail.setSgtSentGntrnumber(tranid);
transactionTrail.setBatAcnttranSend(true); transactionTrail.setBatAcnttranSend(true);
if(Objects.nonNull(transactionRequest.getCmpRefcode())) {
transactionTrail.setCmpRefcode(tranid + transactionRequest.getCmpRefcode()); transactionTrail.setCmpRefcode(tranid + transactionRequest.getCmpRefcode());
}
transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance")); transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance"));
transactionTrailRepository.save(transactionTrail); transactionTrailRepository.save(transactionTrail);
return response; return response;
@ -105,6 +109,20 @@ public class TransactionService {
} }
public List<TransactionTrail> fetchPendingCrTransactions(String porOrgacode, String mbmBkmsnumber) { public List<TransactionTrail> fetchPendingCrTransactions(String porOrgacode, String mbmBkmsnumber) {
List<TransactionTrail> transactionTrails = findPendingCrTransactions(porOrgacode,mbmBkmsnumber);
if(!transactionTrails.isEmpty()){
transactionTrails.stream().forEach(t -> {
LocalDate datePlus14Days = t.getDrSgtGntrdate().plusDays(14);
t.setExpSgtGntrdate((datePlus14Days.minusDays(ChronoUnit.DAYS.between(LocalDate.now(),datePlus14Days))));
t.setDaysToExpire(Math.toIntExact(ChronoUnit.DAYS.between(LocalDate.now(), datePlus14Days)));
});
}
return transactionTrails;
}
public List<TransactionTrail> findPendingCrTransactions(String porOrgacode , String mbmBkmsnumber)
{
Optional<List<TransactionTrail>> optionalTransactions = transactionTrailRepository.findByPorOrgacodeAndCrMbmBkmsnumberAndBatAcnttranReceivedFalse(porOrgacode, mbmBkmsnumber); Optional<List<TransactionTrail>> optionalTransactions = transactionTrailRepository.findByPorOrgacodeAndCrMbmBkmsnumberAndBatAcnttranReceivedFalse(porOrgacode, mbmBkmsnumber);
return optionalTransactions.orElseGet(Collections::emptyList); return optionalTransactions.orElseGet(Collections::emptyList);
} }
@ -120,9 +138,11 @@ public class TransactionService {
Map<String, Object> response = new HashMap<>(); Map<String, Object> response = new HashMap<>();
Optional<TransactionTrail> transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId())); Optional<TransactionTrail> transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId()));
if (transactionTrail.isPresent()) { if (transactionTrail.isPresent()) {
if(Objects.nonNull(cashOutTransactionRequest.getCmpRefcode())) {
if (!(transactionTrail.get().getSgtSentGntrnumber() + cashOutTransactionRequest.getCmpRefcode()).equals(transactionTrail.get().getCmpRefcode())) { if (!(transactionTrail.get().getSgtSentGntrnumber() + cashOutTransactionRequest.getCmpRefcode()).equals(transactionTrail.get().getCmpRefcode())) {
throw new ReferenceNumberNotValidException(); throw new ReferenceNumberNotValidException();
} }
}
transactionTrail.get().setCrSgtGntramt(BigDecimal.valueOf(convertFromPKR(transactionTrail.get().getCrPcrCurrcode(),Double.valueOf(String.valueOf(transactionTrail.get().getDrSgtGntramt())),transactionTrail.get().getPorOrgacode())));; transactionTrail.get().setCrSgtGntramt(BigDecimal.valueOf(convertFromPKR(transactionTrail.get().getCrPcrCurrcode(),Double.valueOf(String.valueOf(transactionTrail.get().getDrSgtGntramt())),transactionTrail.get().getPorOrgacode())));;
CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder() CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder()
.crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode()) .crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode())

Loading…
Cancel
Save