| 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());
|