Subversion Repositories SmartDukaan

Rev

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

Rev 33459 Rev 33613
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;