Subversion Repositories SmartDukaan

Rev

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

Rev 33470 Rev 34317
Line 69... Line 69...
69
@Controller
69
@Controller
70
@Transactional(rollbackFor = Throwable.class)
70
@Transactional(rollbackFor = Throwable.class)
71
public class PriceDropController {
71
public class PriceDropController {
72
 
72
 
73
    private static final Logger LOGGER = LogManager.getLogger(PriceDropController.class);
73
    private static final Logger LOGGER = LogManager.getLogger(PriceDropController.class);
74
    private static final List<String> SELLINS = Arrays.asList("Base Payout", "Cash Discount", "Upfront Margin", "Modelwise");
74
    /*private static final List<String> SELLINS = Arrays.asList("Base Payout", "Cash Discount", "Upfront Margin", "Modelwise");
75
    private static final List<String> SELLOUTS = Arrays.asList("Tertiary Payout", "Hygiene Payout", "Investment Payout", "Category Payout", "Activation Margin", "Special Support", "Sellout Support");
75
    private static final List<String> SELLOUTS = Arrays.asList("Tertiary Payout", "Hygiene Payout", "Investment Payout", "Category Payout", "Activation Margin", "Special Support", "Sellout Support");
76
    private static final List<String> ALL_MARGINS = Arrays.asList(SELLINS, SELLOUTS).stream().flatMap(x -> x.stream()).collect(Collectors.toList());
76
    private static final List<String> ALL_MARGINS = Arrays.asList(SELLINS, SELLOUTS).stream().flatMap(x -> x.stream()).collect(Collectors.toList());*/
77
    @Autowired
77
    @Autowired
78
    ReporticoService reporticoService;
78
    ReporticoService reporticoService;
79
    @Autowired
79
    @Autowired
80
    LineItemImeisRepository lineItemImeisRepository;
80
    LineItemImeisRepository lineItemImeisRepository;
81
    @Autowired
81
    @Autowired
Line 579... Line 579...
579
            fofoId = loginDetails.getFofoId();
579
            fofoId = loginDetails.getFofoId();
580
        }
580
        }
581
        FofoStore fs = fofoStoreRepository.selectByRetailerId(fofoId);
581
        FofoStore fs = fofoStoreRepository.selectByRetailerId(fofoId);
582
 
582
 
583
        //.minusDays(2)
583
        //.minusDays(2)
584
        PriceCircularModel priceCircular = priceCircularService.getPriceCircularByOffer(fofoId, brand, LocalDate.now());
584
        PriceCircularModel priceCircularModel = priceCircularService.getPriceCircularByOffer(fofoId, brand, LocalDate.now());
585
        return this.getPriceCircularView(priceCircular, model, fs.getCode());
585
        return this.getPriceCircularView(priceCircularModel, model, fs.getCode());
586
    }
586
    }
587
 
587
 
588
    public String getPriceCircularView(PriceCircularModel priceCircular, Model model, String partnerCode) throws ProfitMandiBusinessException {
588
    public String getPriceCircularView(PriceCircularModel priceCircularModel, Model model, String partnerCode) {
589
        List<String> schemeHeaders = new ArrayList<>(this.getSchemeHeaders(priceCircular));
589
        List<String> allMarginsSet = new ArrayList<>(this.getSchemeHeaders(priceCircularModel));
590
        List<String> allMargins = ALL_MARGINS.stream().filter(x -> schemeHeaders.contains(x)).collect(Collectors.toList());
590
        List<String> sellins = SchemeType.IN_TYPES.stream().map(x -> x.getValue()).filter(x -> allMarginsSet.contains(x)).collect(Collectors.toList());
591
        List<String> sellins = SELLINS.stream().filter(x -> allMargins.contains(x)).collect(Collectors.toList());
591
        List<String> sellouts = SchemeType.OUT_TYPES.stream().map(x -> x.getValue()).filter(x -> allMarginsSet.contains(x)).collect(Collectors.toList());
592
        List<String> sellouts = SELLOUTS.stream().filter(x -> allMargins.contains(x)).collect(Collectors.toList());
592
        List<String> allMargins = new ArrayList<>();
593
        LOGGER.info("Scheme Headers = {}", schemeHeaders);
593
        allMargins.addAll(sellins);
594
        LOGGER.info("allMargins {}", allMargins);
594
        allMargins.addAll(sellouts);
595
        LOGGER.info("Sellins - {}", sellins);
595
        LOGGER.info("Sellins - {}", sellins);
596
        LOGGER.info("Sellouts - {}", sellouts);
596
        LOGGER.info("Sellouts - {}", sellouts);
597
        model.addAttribute("priceCircularItemModels", priceCircular.getPriceCircularItemModelNews());
597
        model.addAttribute("priceCircularItemModels", priceCircularModel.getPriceCircularItemModelNews());
598
        model.addAttribute("allMargins", allMargins);
598
        model.addAttribute("allMargins", allMargins);
599
        model.addAttribute("sellins", sellins);
599
        model.addAttribute("sellins", sellins);
600
        model.addAttribute("sellouts", sellouts);
600
        model.addAttribute("sellouts", sellouts);
601
        model.addAttribute("offers", priceCircular.getOffers());
601
        model.addAttribute("offers", priceCircularModel.getOffers());
602
        model.addAttribute("upgradeOffer", priceCircular.isUpgradeOffer());
602
        model.addAttribute("upgradeOffer", priceCircularModel.isUpgradeOffer());
603
        model.addAttribute("mvcResponseSender", mvcResponseSender);
603
        model.addAttribute("mvcResponseSender", mvcResponseSender);
604
        model.addAttribute("partnerCode", partnerCode);
604
        model.addAttribute("partnerCode", partnerCode);
605
        return "price-circular-table";
605
        return "price-circular-table";
606
    }
606
    }
607
 
607
 
Line 610... Line 610...
610
        priceCircular.getPriceCircularItemModelNews().stream().forEach(priceCircularItemModelNew -> {
610
        priceCircular.getPriceCircularItemModelNews().stream().forEach(priceCircularItemModelNew -> {
611
            Map<String, AmountModel> headerMap = new HashMap<>();
611
            Map<String, AmountModel> headerMap = new HashMap<>();
612
            priceCircularItemModelNew.setHeaderSchemeModelsMap(headerMap);
612
            priceCircularItemModelNew.setHeaderSchemeModelsMap(headerMap);
613
            priceCircularItemModelNew.getSchemeSummaryModels().stream().forEach(schemeSummaryModel -> {
613
            priceCircularItemModelNew.getSchemeSummaryModels().stream().forEach(schemeSummaryModel -> {
614
                if (schemeSummaryModel == null) return;
614
                if (schemeSummaryModel == null) return;
615
                if (schemeSummaryModel.getSchemeType().equals(SchemeType.SPECIAL_SUPPORT) || schemeSummaryModel.getSchemeType().equals(SchemeType.ACTIVATION)) {
-
 
616
                    schemeSummaryModel.setHeader("Special Support");
-
 
617
                } else if (schemeSummaryModel.getDescription().equalsIgnoreCase("modelwise") && schemeSummaryModel.getSchemeType().equals(SchemeType.IN)) {
-
 
618
                    schemeSummaryModel.setHeader("Modelwise");
-
 
619
                } else if (schemeSummaryModel.getSchemeType().equals(SchemeType.IN)) {
-
 
620
                    schemeSummaryModel.setHeader(schemeSummaryModel.getDescription());
-
 
621
                } else {
-
 
622
                    schemeSummaryModel.setHeader(schemeSummaryModel.getSchemeType().getValue());
615
                schemeSummaryModel.setHeader(schemeSummaryModel.getSchemeType().getValue());
623
                }
-
 
624
                if (!headerMap.containsKey(schemeSummaryModel.getHeader())) {
616
                if (!headerMap.containsKey(schemeSummaryModel.getHeader())) {
625
                    headerMap.put(schemeSummaryModel.getHeader(), new AmountModel(schemeSummaryModel.getAmount(), schemeSummaryModel.getAmountType()));
617
                    headerMap.put(schemeSummaryModel.getHeader(), new AmountModel(schemeSummaryModel.getAmount(), schemeSummaryModel.getAmountType()));
626
                } else {
618
                } else {
627
                    AmountModel model = headerMap.get(schemeSummaryModel.getHeader());
619
                    AmountModel model = headerMap.get(schemeSummaryModel.getHeader());
628
                    model.setAmount(model.getAmount() + schemeSummaryModel.getAmount());
620
                    model.setAmount(model.getAmount() + schemeSummaryModel.getAmount());