| Line 277... |
Line 277... |
| 277 |
|
277 |
|
| 278 |
@Autowired
|
278 |
@Autowired
|
| 279 |
private WalletService walletService;
|
279 |
private WalletService walletService;
|
| 280 |
|
280 |
|
| 281 |
@Override
|
281 |
@Override
|
| 282 |
public void reverseAdditionalSelloutSchemes(int fofoId, List<InventoryItem> inventoryItems) throws ProfitMandiBusinessException {
|
282 |
public void reverseAdditionalSelloutSchemes(List<InventoryItem> inventoryItems, String reversalReason) throws ProfitMandiBusinessException {
|
| - |
|
283 |
Map<Integer, List<InventoryItem>> fofoInventoryItemsMap = inventoryItems.stream().collect(Collectors.groupingBy(x -> x.getFofoId()));
|
| - |
|
284 |
for (Map.Entry<Integer, List<InventoryItem>> fofoInventoryItemsEntry : fofoInventoryItemsMap.entrySet()) {
|
| - |
|
285 |
int fofoId = fofoInventoryItemsEntry.getKey();
|
| - |
|
286 |
List<InventoryItem> partnerInventoryItems = fofoInventoryItemsEntry.getValue();
|
| 283 |
List<OfferPayout> offerPayouts = new ArrayList<>();
|
287 |
List<OfferPayout> offerPayouts = new ArrayList<>();
|
| 284 |
LOGGER.info("Reversing schemes for fofoId {}, InventoryItems {}", fofoId, inventoryItems);
|
288 |
LOGGER.info("Reversing schemes for fofoId {}, InventoryItems {}", fofoId, inventoryItems);
|
| 285 |
//As of now we are not handling non-serialised items
|
289 |
//As of now we are not handling non-serialised items
|
| 286 |
inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
|
290 |
inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
|
| 287 |
if (inventoryItems.size() > 0) {
|
291 |
if (inventoryItems.size() > 0) {
|
| 288 |
|
292 |
|
| 289 |
for (InventoryItem inventoryItem : inventoryItems) {
|
293 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| 290 |
offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
|
294 |
offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
|
| 291 |
.stream()
|
295 |
.stream()
|
| 292 |
.filter(x -> x.getRejectTimestamp() == null)
|
296 |
.filter(x -> x.getRejectTimestamp() == null)
|
| 293 |
.collect(Collectors.toList()));
|
297 |
.collect(Collectors.toList()));
|
| 294 |
}
|
298 |
}
|
| 295 |
for (OfferPayout offerPayout : offerPayouts) {
|
299 |
for (OfferPayout offerPayout : offerPayouts) {
|
| 296 |
offerPayout.setStatus(SchemePayoutStatus.REJECTED);
|
300 |
offerPayout.setStatus(SchemePayoutStatus.REJECTED);
|
| 297 |
offerPayout.setRejectTimestamp(LocalDateTime.now());
|
301 |
offerPayout.setRejectTimestamp(LocalDateTime.now());
|
| 298 |
}
|
302 |
}
|
| 299 |
Map<Long, Double> offerPayoutAmountMap = offerPayouts.stream().collect(Collectors.groupingBy(x -> x.getOfferId(), Collectors.summingDouble(x -> x.getAmount())));
|
303 |
Map<Long, Double> offerPayoutAmountMap = offerPayouts.stream().collect(Collectors.groupingBy(x -> x.getOfferId(), Collectors.summingDouble(x -> x.getAmount())));
|
| 300 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
|
304 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
|
| 301 |
List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
|
305 |
List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
|
| 302 |
if (histories.size() > 0) {
|
306 |
if (histories.size() > 0) {
|
| 303 |
|
307 |
|
| 304 |
walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
|
308 |
walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
|
| 305 |
WalletReferenceType.ADDITIONAL_SCHEME, "Models/Imeis for corresponding schemes were returned", LocalDateTime.now());
|
309 |
WalletReferenceType.ADDITIONAL_SCHEME, reversalReason, LocalDateTime.now());
|
| - |
|
310 |
}
|
| 306 |
}
|
311 |
}
|
| 307 |
}
|
312 |
}
|
| 308 |
}
|
313 |
}
|
| 309 |
}
|
314 |
}
|
| 310 |
|
315 |
|
| Line 654... |
Line 659... |
| 654 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
659 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
| 655 |
if (serialNumbers.size() > 0) {
|
660 |
if (serialNumbers.size() > 0) {
|
| 656 |
activatedImeisActiovationDateMap = activatedImeiRepository.selectBySerialNumbers(serialNumbers).stream()
|
661 |
activatedImeisActiovationDateMap = activatedImeiRepository.selectBySerialNumbers(serialNumbers).stream()
|
| 657 |
.filter(x -> createOfferRequest.isWithinRange(x.getActivationTimestamp()))
|
662 |
.filter(x -> createOfferRequest.isWithinRange(x.getActivationTimestamp()))
|
| 658 |
.collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x.getActivationTimestamp()));
|
663 |
.collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x.getActivationTimestamp()));
|
| 659 |
ageingSummaryModelsMap = warehouseInventoryItemRepository.findStockAgeingByFofoIdSerialNumbers(0, serialNumbers).stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x, (u,v)->v));
|
664 |
ageingSummaryModelsMap = warehouseInventoryItemRepository.findStockAgeingByFofoIdSerialNumbers(0, serialNumbers).stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> x, (u, v) -> v));
|
| 660 |
} else {
|
665 |
} else {
|
| 661 |
activatedImeisActiovationDateMap = null;
|
666 |
activatedImeisActiovationDateMap = null;
|
| 662 |
}
|
667 |
}
|
| 663 |
} else {
|
668 |
} else {
|
| 664 |
activatedImeisActiovationDateMap = null;
|
669 |
activatedImeisActiovationDateMap = null;
|