Subversion Repositories SmartDukaan

Rev

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

Rev 34750 Rev 34778
Line 628... Line 628...
628
        double fixedToPay = 0d;
628
        double fixedToPay = 0d;
629
        Map<SchemeSummaryModel, AmountModel> payoutSchemeSummaryModelMap = new HashMap<>();
629
        Map<SchemeSummaryModel, AmountModel> payoutSchemeSummaryModelMap = new HashMap<>();
630
        for (SchemeSummaryModel schemeSummaryModelToProcess : inventoryPayoutModelToProcess) {
630
        for (SchemeSummaryModel schemeSummaryModelToProcess : inventoryPayoutModelToProcess) {
631
            if (paidSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()) || pendingSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()))
631
            if (paidSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()) || pendingSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()))
632
                continue;
632
                continue;
633
            //If different type but on higher side provide the higher margin
633
            //All Valid margins are supposed to be credited invalid margins should be rejected
634
            if (Arrays.asList(SchemeType.SPECIAL_SUPPORT).contains(schemeSummaryModelToProcess.getSchemeType())) {
634
            if (SchemeType.SPECIAL_SUPPORT.equals(schemeSummaryModelToProcess.getSchemeType())) {
635
                Scheme scheme = schemeRepository.selectById(schemeSummaryModelToProcess.getSchemeId());
-
 
636
                //Create only if the activation if the activation date is not known
635
                //Create only if the activation date is not known
637
                ActivatedImei activatedImei = activatedImeiRepository.selectBySerialNumber(inventoryItem.getSerialNumber());
636
                ActivatedImei activatedImei = activatedImeiRepository.selectBySerialNumber(inventoryItem.getSerialNumber());
638
                if (activatedImei == null || activatedImei.getActivationTimestamp() == null) {
637
                if (activatedImei == null || activatedImei.getActivationTimestamp() == null) {
639
                    SchemeInOut sio = new SchemeInOut();
638
                    SchemeInOut sio = new SchemeInOut();
640
                    sio.setAmount(0);
639
                    sio.setAmount(0);
641
                    sio.setInventoryItemId(inventoryItem.getId());
640
                    sio.setInventoryItemId(inventoryItem.getId());
Line 758... Line 757...
758
            // PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(retailerId,
757
            // PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(retailerId,
759
            // fofoOrder.getCreateTimestamp().toLocalDate());
758
            // fofoOrder.getCreateTimestamp().toLocalDate());
760
            // TODO - SCHEME
759
            // TODO - SCHEME
761
            PartnerType partnerType = partnerTypeChangeService.getTypeOnMonth(retailerId,
760
            PartnerType partnerType = partnerTypeChangeService.getTypeOnMonth(retailerId,
762
                    YearMonth.from(fofoOrder.getCreateTimestamp()));
761
                    YearMonth.from(fofoOrder.getCreateTimestamp()));
-
 
762
            LOGGER.info("OrderDate - {}, Partner Type - {}", fofoOrder.getCreateTimestamp(), partnerType);
763
 
763
 
764
            List<ScanRecord> scanRecords = scanRecordRepository.selectAllByOrderId(fofoOrderId);
764
            List<ScanRecord> scanRecords = scanRecordRepository.selectAllByOrderId(fofoOrderId);
765
            if (scanRecords.size() == 0) return 0;
765
            if (scanRecords.size() == 0) return 0;
766
            Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
766
            Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
767
                    .collect(Collectors.toSet());
767
                    .collect(Collectors.toSet());
Line 818... Line 818...
818
                            .filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
818
                            .filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
819
                            .map(x -> x.getSchemeId()).collect(Collectors.toList());
819
                            .map(x -> x.getSchemeId()).collect(Collectors.toList());
820
 
820
 
821
                    double sioRejectedValue = 0;
821
                    double sioRejectedValue = 0;
822
                    if (creditedSchemeIds.size() > 0) {
822
                    if (creditedSchemeIds.size() > 0) {
-
 
823
                        //Also ignore special support
823
                        List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
824
                        List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
824
                                .filter(x -> SchemeType.OUT_TYPES.contains(x.getType())).map(x -> x.getId()).collect(Collectors.toList());
825
                                .filter(x -> SchemeType.OUT_TYPES.contains(x.getType()) && !SchemeType.SPECIAL_SUPPORT.equals(x.getType()))
-
 
826
                                .map(x -> x.getId()).collect(Collectors.toList());
825
                        //Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
827
                        //Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
-
 
828
                        //Lets not touchs
826
                        for (SchemeInOut sio : sios) {
829
                        for (SchemeInOut sio : sios) {
827
                            if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
830
                            if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
828
                                Scheme scheme = schemeRepository.selectById(sio.getSchemeId());
831
                                Scheme scheme = schemeRepository.selectById(sio.getSchemeId());
829
                                if (!scheme.getType().equals(SchemeType.SPECIAL_SUPPORT)) {
-
 
830
                                    sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
832
                                sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
831
                                    sio.setStatus(SchemePayoutStatus.REJECTED);
833
                                sio.setStatus(SchemePayoutStatus.REJECTED);
832
                                    sio.setRolledBackTimestamp(LocalDateTime.now());
834
                                sio.setRolledBackTimestamp(LocalDateTime.now());
833
                                    sioRejectedValue += sio.getAmount();
835
                                sioRejectedValue += sio.getAmount();
834
                                }
-
 
835
                            }
836
                            }
836
                        }
837
                        }
837
                    }
838
                    }
838
                    float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
839
                    float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
839
                    if (inventoryItemCashback > 0 || sioRejectedValue > 0) {
840
                    if (inventoryItemCashback > 0 || sioRejectedValue > 0) {