Subversion Repositories SmartDukaan

Rev

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

Rev 31987 Rev 32058
Line 515... Line 515...
515
 
515
 
516
        int itemsCount = 0;
516
        int itemsCount = 0;
517
        float totalCashback = 0;
517
        float totalCashback = 0;
518
        for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
518
        for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
519
            CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
519
            CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
520
            List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x->x !=null).collect(Collectors.toList());
520
            List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x -> x != null).collect(Collectors.toList());
521
            schemeSummaryModels.stream().filter(x -> x!=null && x.getSchemeType().equals(SchemeType.IN)).forEach(x -> x.setProcess(true));
521
            schemeSummaryModels.stream().filter(x -> x != null && x.getSchemeType().equals(SchemeType.IN)).forEach(x -> x.setProcess(true));
522
            if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
522
            if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
523
            List<InventoryItem> modelInventoryItems = catalogInventoryItemMap.get(catalogSummaryModel.getCatalogId());
523
            List<InventoryItem> modelInventoryItems = catalogInventoryItemMap.get(catalogSummaryModel.getCatalogId());
524
            for (InventoryItem inventoryItem : modelInventoryItems) {
524
            for (InventoryItem inventoryItem : modelInventoryItems) {
525
                float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem, partnerType);
525
                float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem, partnerType);
526
                if (inventoryItemCashback > 0) {
526
                if (inventoryItemCashback > 0) {
Line 753... Line 753...
753
 
753
 
754
 
754
 
755
            int count = 0;
755
            int count = 0;
756
            for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
756
            for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
757
                CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
757
                CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
758
                List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x->x != null).collect(Collectors.toList());
758
                List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x -> x != null).collect(Collectors.toList());
759
                List<SchemeType> allOutSchemeTypes = new ArrayList<>();
759
                List<SchemeType> allOutSchemeTypes = new ArrayList<>();
760
                allOutSchemeTypes.addAll(Arrays.asList(SchemeType.ACTIVATION, SchemeType.INVESTMENT, SchemeType.SPECIAL_SUPPORT, SchemeType.SELLOUT));
760
                allOutSchemeTypes.addAll(Arrays.asList(SchemeType.ACTIVATION, SchemeType.INVESTMENT, SchemeType.SPECIAL_SUPPORT, SchemeType.SELLOUT));
761
                allOutSchemeTypes.addAll(OUT_SCHEME_TYPES);
761
                allOutSchemeTypes.addAll(OUT_SCHEME_TYPES);
762
                schemeSummaryModels.stream().filter(x -> allOutSchemeTypes.contains(x.getSchemeType())).forEach(x -> x.setProcess(true));
762
                schemeSummaryModels.stream().filter(x -> allOutSchemeTypes.contains(x.getSchemeType())).forEach(x -> x.setProcess(true));
763
                if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
763
                if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
Line 1034... Line 1034...
1034
        WalletReferenceType walletReferenceType = schemeTypes.containsAll(SchemeService.OUT_SCHEME_TYPES) ? WalletReferenceType.SCHEME_OUT
1034
        WalletReferenceType walletReferenceType = schemeTypes.containsAll(SchemeService.OUT_SCHEME_TYPES) ? WalletReferenceType.SCHEME_OUT
1035
                : schemeTypes.contains(SchemeType.ACTIVATION) ? WalletReferenceType.ACTIVATION_SCHEME
1035
                : schemeTypes.contains(SchemeType.ACTIVATION) ? WalletReferenceType.ACTIVATION_SCHEME
1036
                : schemeTypes.contains(SchemeType.SPECIAL_SUPPORT) ? WalletReferenceType.SPECIAL_SUPPORT
1036
                : schemeTypes.contains(SchemeType.SPECIAL_SUPPORT) ? WalletReferenceType.SPECIAL_SUPPORT
1037
                : schemeTypes.contains(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT : null;
1037
                : schemeTypes.contains(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT : null;
1038
 
1038
 
1039
        if (walletReferenceType == null)
-
 
1040
            if (amountToRollback > 0 && walletReferenceType != null) {
1039
        if (amountToRollback > 0 && walletReferenceType != null) {
1041
                // Mark appropriate reference of rollback investment margin
1040
            // Mark appropriate reference of rollback investment margin
1042
                if (schemeTypes.contains(SchemeType.INVESTMENT)) {
1041
            if (schemeTypes.contains(SchemeType.INVESTMENT)) {
1043
                    List<UserWalletHistory> userWalletHistoryList = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(reversalReference, walletReferenceType);
1042
                List<UserWalletHistory> userWalletHistoryList = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(reversalReference, walletReferenceType);
1044
                    if (userWalletHistoryList.size() == 0) {
1043
                if (userWalletHistoryList.size() == 0) {
1045
                        reversalReference = Integer
1044
                    reversalReference = Integer
1046
                                .parseInt(FormattingUtils.getYearMonth(schemeTypeMap.get(SchemeType.INVESTMENT).getCreditTimestamp().minusMonths(1)));
1045
                            .parseInt(FormattingUtils.getYearMonth(schemeTypeMap.get(SchemeType.INVESTMENT).getCreditTimestamp().minusMonths(1)));
1047
                    }
-
 
1048
 
-
 
1049
                }
1046
                }
1050
                walletService.rollbackAmountFromWallet(fofoId, amountToRollback, reversalReference, walletReferenceType,
-
 
1051
                        reversalReason, LocalDateTime.now());
-
 
-
 
1047
 
1052
            }
1048
            }
-
 
1049
            walletService.rollbackAmountFromWallet(fofoId, amountToRollback, reversalReference, walletReferenceType,
-
 
1050
                    reversalReason, LocalDateTime.now());
-
 
1051
        }
1053
    }
1052
    }
1054
 
1053
 
1055
    @Override
1054
    @Override
1056
    public double getTotalMargin(int itemId, PartnerType partnerType, LocalDateTime dateTime) {
1055
    public double getTotalMargin(int itemId, PartnerType partnerType, LocalDateTime dateTime) {
1057
        Session session = sessionFactory.getCurrentSession();
1056
        Session session = sessionFactory.getCurrentSession();
Line 1211... Line 1210...
1211
                InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(ii);
1210
                InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(ii);
1212
                AmountModel amountModel = new AmountModel();
1211
                AmountModel amountModel = new AmountModel();
1213
                amountModel.setAmount(scheme.getAmount());
1212
                amountModel.setAmount(scheme.getAmount());
1214
                amountModel.setAmountType(scheme.getAmountType());
1213
                amountModel.setAmountType(scheme.getAmountType());
1215
                double amountToRollout = inventoryPayoutModel.getRolloutAmount(amountModel);
1214
                double amountToRollout = inventoryPayoutModel.getRolloutAmount(amountModel);
1216
                pendingPayout.setAmount((float)amountToRollout);
1215
                pendingPayout.setAmount((float) amountToRollout);
1217
                if (scheme.getType().equals(SchemeType.ACTIVATION)) {
1216
                if (scheme.getType().equals(SchemeType.ACTIVATION)) {
1218
                    walletService.addAmountToWallet(fofoId, orderId, WalletReferenceType.ACTIVATION_SCHEME,
1217
                    walletService.addAmountToWallet(fofoId, orderId, WalletReferenceType.ACTIVATION_SCHEME,
1219
                            "Activation margin for " + ii.getItem().getItemDescriptionNoColor() + ", Imei - " + serialNumber, (float) amountToRollout,
1218
                            "Activation margin for " + ii.getItem().getItemDescriptionNoColor() + ", Imei - " + serialNumber, (float) amountToRollout,
1220
                            fofoOrder.getCreateTimestamp());
1219
                            fofoOrder.getCreateTimestamp());
1221
                    pendingPayout.setStatusDescription("Activation margin credited, activated on " + FormattingUtils.formatDate(activatedImei.getActivationTimestamp()));
1220
                    pendingPayout.setStatusDescription("Activation margin credited, activated on " + FormattingUtils.formatDate(activatedImei.getActivationTimestamp()));