| Line 815... |
Line 815... |
| 815 |
|
815 |
|
| 816 |
List<Integer> creditedSchemeIds = sios.stream()
|
816 |
List<Integer> creditedSchemeIds = sios.stream()
|
| 817 |
.filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
|
817 |
.filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
|
| 818 |
.map(x -> x.getSchemeId()).collect(Collectors.toList());
|
818 |
.map(x -> x.getSchemeId()).collect(Collectors.toList());
|
| 819 |
|
819 |
|
| - |
|
820 |
double sioRejectedValue = 0;
|
| 820 |
if (creditedSchemeIds.size() > 0) {
|
821 |
if (creditedSchemeIds.size() > 0) {
|
| 821 |
List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
|
822 |
List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
|
| 822 |
.filter(x -> SchemeType.OUT_TYPES.contains(x.getType())).map(x -> x.getId()).collect(Collectors.toList());
|
823 |
.filter(x -> SchemeType.OUT_TYPES.contains(x.getType())).map(x -> x.getId()).collect(Collectors.toList());
|
| 823 |
//Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
|
824 |
//Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
|
| 824 |
for (SchemeInOut sio : sios) {
|
825 |
for (SchemeInOut sio : sios) {
|
| 825 |
if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
|
826 |
if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
|
| 826 |
sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
|
827 |
sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
|
| 827 |
sio.setStatus(SchemePayoutStatus.REJECTED);
|
828 |
sio.setStatus(SchemePayoutStatus.REJECTED);
|
| 828 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
829 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
| - |
|
830 |
Scheme scheme = schemeRepository.selectById(sio.getSchemeId());
|
| - |
|
831 |
if(scheme.getType().equals(SchemeType.SPECIAL_SUPPORT)) {
|
| - |
|
832 |
ScanRecord salesRecord = scanRecordRepository.selectByInventoryItemId(sio.getInventoryItemId()).stream().sorted(Comparator.comparing(ScanRecord::getId).reversed()).findFirst().get();
|
| - |
|
833 |
walletService.rollbackAmountFromWallet(retailerId,sio.getAmount(), salesRecord.getOrderId(),
|
| - |
|
834 |
WalletReferenceType.SPECIAL_SUPPORT, "Reversed due to invalid scheme for IMEI - " + inventoryItem.getSerialNumber(), LocalDateTime.now());
|
| - |
|
835 |
fofoOrder.setCashback(totalCashback + fofoOrder.getCashback());
|
| - |
|
836 |
} else {
|
| 829 |
totalCashback -= sio.getAmount();
|
837 |
sioRejectedValue += sio.getAmount();
|
| - |
|
838 |
}
|
| 830 |
}
|
839 |
}
|
| 831 |
}
|
840 |
}
|
| 832 |
}
|
841 |
}
|
| 833 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
|
842 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
|
| 834 |
if (inventoryItemCashback > 0) {
|
843 |
if (inventoryItemCashback > 0 || sioRejectedValue > 0) {
|
| 835 |
count++;
|
844 |
count++;
|
| 836 |
totalCashback += inventoryItemCashback;
|
845 |
totalCashback += inventoryItemCashback - sioRejectedValue;
|
| 837 |
}
|
846 |
}
|
| 838 |
}
|
847 |
}
|
| 839 |
}
|
848 |
}
|
| 840 |
|
849 |
|
| 841 |
if (count > 0) {
|
850 |
if (count > 0) {
|