| Line 740... |
Line 740... |
| 740 |
// Always being called from cancel order means no SCHEME IN is considered
|
740 |
// Always being called from cancel order means no SCHEME IN is considered
|
| 741 |
public void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason,
|
741 |
public void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason,
|
| 742 |
SchemeType schemeType) throws ProfitMandiBusinessException {
|
742 |
SchemeType schemeType) throws ProfitMandiBusinessException {
|
| 743 |
Map<Integer, InventoryItem> inventoryItemsMap = inventoryItems.stream()
|
743 |
Map<Integer, InventoryItem> inventoryItemsMap = inventoryItems.stream()
|
| 744 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
744 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| - |
|
745 |
LOGGER.info("inventoryItems" + inventoryItems);
|
| - |
|
746 |
|
| 745 |
List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(inventoryItemsMap.keySet());
|
747 |
List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(inventoryItemsMap.keySet());
|
| 746 |
LOGGER.info("schemeInOuts" + schemeInOuts);
|
748 |
LOGGER.info("schemeInOuts" + schemeInOuts);
|
| - |
|
749 |
float amountToRollback = 0;
|
| 747 |
|
750 |
|
| - |
|
751 |
if (!schemeInOuts.isEmpty()) {
|
| 748 |
List<Integer> schemeIds = schemeInOuts.stream().map(x -> x.getSchemeId()).collect(Collectors.toList());
|
752 |
List<Integer> schemeIds = schemeInOuts.stream().map(x -> x.getSchemeId()).collect(Collectors.toList());
|
| 749 |
LOGGER.info("schemeIds" + schemeIds);
|
753 |
LOGGER.info("schemeIds" + schemeIds);
|
| 750 |
|
754 |
|
| 751 |
float amountToRollback = 0;
|
- |
|
| 752 |
Map<Integer, Scheme> schemesMap = schemeRepository.selectBySchemeIds(schemeIds, 0, schemeIds.size()).stream()
|
755 |
Map<Integer, Scheme> schemesMap = schemeRepository.selectBySchemeIds(schemeIds, 0, schemeIds.size())
|
| 753 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
756 |
.stream().collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| 754 |
for (SchemeInOut schemeInOut : schemeInOuts) {
|
757 |
for (SchemeInOut schemeInOut : schemeInOuts) {
|
| 755 |
Scheme scheme = schemesMap.get(schemeInOut.getSchemeId());
|
758 |
Scheme scheme = schemesMap.get(schemeInOut.getSchemeId());
|
| 756 |
if (scheme.getType().equals(schemeType)) {
|
759 |
if (scheme.getType().equals(schemeType)) {
|
| 757 |
if (schemeInOut.getRolledBackTimestamp() == null) {
|
760 |
if (schemeInOut.getRolledBackTimestamp() == null) {
|
| 758 |
schemeInOut.setRolledBackTimestamp(LocalDateTime.now());
|
761 |
schemeInOut.setRolledBackTimestamp(LocalDateTime.now());
|
| 759 |
if (schemeInOut.getStatus().equals(SchemePayoutStatus.CREDITED)) {
|
762 |
if (schemeInOut.getStatus().equals(SchemePayoutStatus.CREDITED)) {
|
| 760 |
amountToRollback += schemeInOut.getAmount();
|
763 |
amountToRollback += schemeInOut.getAmount();
|
| - |
|
764 |
}
|
| - |
|
765 |
schemeInOut.setStatus(SchemePayoutStatus.REJECTED);
|
| - |
|
766 |
schemeInOut.setStatusDescription(reversalReason);
|
| 761 |
}
|
767 |
}
|
| 762 |
schemeInOut.setStatus(SchemePayoutStatus.REJECTED);
|
- |
|
| 763 |
schemeInOut.setStatusDescription(reversalReason);
|
- |
|
| 764 |
}
|
768 |
}
|
| 765 |
}
|
769 |
}
|
| - |
|
770 |
|
| 766 |
}
|
771 |
}
|
| 767 |
int fofoId = inventoryItems.get(0).getFofoId();
|
772 |
int fofoId = inventoryItems.get(0).getFofoId();
|
| 768 |
WalletReferenceType walletReferenceType = schemeType.equals(SchemeType.OUT) ? WalletReferenceType.SCHEME_OUT
|
773 |
WalletReferenceType walletReferenceType = schemeType.equals(SchemeType.OUT) ? WalletReferenceType.SCHEME_OUT
|
| 769 |
: schemeType.equals(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT
|
774 |
: schemeType.equals(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT
|
| 770 |
: WalletReferenceType.ACTIVATION_SCHEME;
|
775 |
: WalletReferenceType.ACTIVATION_SCHEME;
|