| Line 249... |
Line 249... |
| 249 |
public void reverseAdditionalSelloutSchemes(int fofoId, List<InventoryItem> inventoryItems) throws ProfitMandiBusinessException {
|
249 |
public void reverseAdditionalSelloutSchemes(int fofoId, List<InventoryItem> inventoryItems) throws ProfitMandiBusinessException {
|
| 250 |
List<OfferPayout> offerPayouts = new ArrayList<>();
|
250 |
List<OfferPayout> offerPayouts = new ArrayList<>();
|
| 251 |
LOGGER.info("Reversing schemes for fofoId {}, InventoryItems {}", fofoId, inventoryItems);
|
251 |
LOGGER.info("Reversing schemes for fofoId {}, InventoryItems {}", fofoId, inventoryItems);
|
| 252 |
//As of now we are not handling non-serialised items
|
252 |
//As of now we are not handling non-serialised items
|
| 253 |
inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
|
253 |
inventoryItems = inventoryItems.stream().filter(x -> x.getSerialNumber() != null).collect(Collectors.toList());
|
| 254 |
Purchase purchase = purchaseRepository.selectById(inventoryItems.get(0).getPurchaseId());
|
254 |
if (inventoryItems.size() > 0) {
|
| - |
|
255 |
|
| 255 |
for (InventoryItem inventoryItem : inventoryItems) {
|
256 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| 256 |
offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
|
257 |
offerPayouts.addAll(offerPayoutRepository.selectAllBySerialNumber(inventoryItem.getFofoId(), inventoryItem.getSerialNumber())
|
| 257 |
.stream()
|
258 |
.stream()
|
| 258 |
.filter(x -> x.getRejectTimestamp() == null)
|
259 |
.filter(x -> x.getRejectTimestamp() == null)
|
| 259 |
.collect(Collectors.toList()));
|
260 |
.collect(Collectors.toList()));
|
| 260 |
}
|
261 |
}
|
| 261 |
for (OfferPayout offerPayout : offerPayouts) {
|
262 |
for (OfferPayout offerPayout : offerPayouts) {
|
| 262 |
offerPayout.setStatus(SchemePayoutStatus.REJECTED);
|
263 |
offerPayout.setStatus(SchemePayoutStatus.REJECTED);
|
| 263 |
offerPayout.setRejectTimestamp(LocalDateTime.now());
|
264 |
offerPayout.setRejectTimestamp(LocalDateTime.now());
|
| 264 |
}
|
265 |
}
|
| 265 |
Map<Long, Double> offerPayoutAmountMap = offerPayouts.stream().collect(Collectors.groupingBy(x -> x.getOfferId(), Collectors.summingDouble(x -> x.getAmount())));
|
266 |
Map<Long, Double> offerPayoutAmountMap = offerPayouts.stream().collect(Collectors.groupingBy(x -> x.getOfferId(), Collectors.summingDouble(x -> x.getAmount())));
|
| 266 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
|
267 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutAmountMap.entrySet()) {
|
| 267 |
List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
|
268 |
List<UserWalletHistory> histories = walletService.getAllByReference(fofoId, offerPayoutEntry.getKey().intValue(), WalletReferenceType.ADDITIONAL_SCHEME);
|
| 268 |
if (histories.size() > 0) {
|
269 |
if (histories.size() > 0) {
|
| 269 |
|
270 |
|
| 270 |
walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
|
271 |
walletService.rollbackAmountFromWallet(fofoId, offerPayoutEntry.getValue().floatValue(), offerPayoutEntry.getKey().intValue(),
|
| 271 |
WalletReferenceType.ADDITIONAL_SCHEME, "Models/Imeis for corresponding schemes were returned", LocalDateTime.now());
|
272 |
WalletReferenceType.ADDITIONAL_SCHEME, "Models/Imeis for corresponding schemes were returned", LocalDateTime.now());
|
| - |
|
273 |
}
|
| 272 |
}
|
274 |
}
|
| 273 |
}
|
275 |
}
|
| 274 |
}
|
276 |
}
|
| 275 |
|
277 |
|
| 276 |
private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
|
278 |
private void createTargetSlabs(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
|