Subversion Repositories SmartDukaan

Rev

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

Rev 34740 Rev 34742
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) {