Subversion Repositories SmartDukaan

Rev

Rev 31748 | Rev 31853 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31748 Rev 31750
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 {