| Line 48... |
Line 48... |
| 48 |
import com.spice.profitmandi.dao.entity.inventory.ItemPricingHistory;
|
48 |
import com.spice.profitmandi.dao.entity.inventory.ItemPricingHistory;
|
| 49 |
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
|
49 |
import com.spice.profitmandi.dao.entity.inventory.VendorItemPricing;
|
| 50 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
50 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
| 51 |
import com.spice.profitmandi.dao.entity.transaction.PriceDropIMEI;
|
51 |
import com.spice.profitmandi.dao.entity.transaction.PriceDropIMEI;
|
| 52 |
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
|
52 |
import com.spice.profitmandi.dao.enumuration.transaction.PriceDropImeiStatus;
|
| 53 |
import com.spice.profitmandi.dao.model.PriceCircularModel;
|
- |
|
| 54 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
53 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| 55 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
54 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 56 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
55 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| 57 |
import com.spice.profitmandi.dao.repository.dtr.Mongo;
|
56 |
import com.spice.profitmandi.dao.repository.dtr.Mongo;
|
| 58 |
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
|
57 |
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
|
| Line 60... |
Line 59... |
| 60 |
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
|
59 |
import com.spice.profitmandi.dao.repository.inventory.VendorItemPricingRepository;
|
| 61 |
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
|
60 |
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
|
| 62 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropIMEIRepository;
|
61 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropIMEIRepository;
|
| 63 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
62 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
| 64 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
63 |
import com.spice.profitmandi.service.inventory.InventoryService;
|
| - |
|
64 |
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModel;
|
| - |
|
65 |
import com.spice.profitmandi.service.pricecircular.PriceCircularModel;
|
| - |
|
66 |
import com.spice.profitmandi.service.pricecircular.PriceCircularService;
|
| 65 |
import com.spice.profitmandi.service.pricing.PriceDropService;
|
67 |
import com.spice.profitmandi.service.pricing.PriceDropService;
|
| 66 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
68 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
| 67 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
69 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
| 68 |
import com.spice.profitmandi.service.user.RetailerService;
|
70 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 69 |
import com.spice.profitmandi.service.wallet.WalletService;
|
71 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| Line 568... |
Line 570... |
| 568 |
public String priceCircularByBrandAndPartnerType(HttpServletRequest request, @RequestParam List<String> brands,
|
570 |
public String priceCircularByBrandAndPartnerType(HttpServletRequest request, @RequestParam List<String> brands,
|
| 569 |
@RequestParam PartnerType partnerType, Model model) throws ProfitMandiBusinessException {
|
571 |
@RequestParam PartnerType partnerType, Model model) throws ProfitMandiBusinessException {
|
| 570 |
List<PartnerType> partnerTypes = new ArrayList<>();
|
572 |
List<PartnerType> partnerTypes = new ArrayList<>();
|
| 571 |
partnerTypes.add(partnerType);
|
573 |
partnerTypes.add(partnerType);
|
| 572 |
partnerTypes.add(PartnerType.ALL);
|
574 |
partnerTypes.add(PartnerType.ALL);
|
| 573 |
List<PriceCircularModel> priceCircular = tagListingRepository.getPriceCircularByBrandAndType(partnerTypes,
|
575 |
List<PriceCircularItemModel> priceCircular = tagListingRepository.getPriceCircularByBrandAndType(partnerTypes,
|
| 574 |
brands, LocalDateTime.now(), LocalDateTime.now().plusDays(1).toLocalDate().atStartOfDay());
|
576 |
brands, LocalDateTime.now(), LocalDateTime.now().plusDays(1).toLocalDate().atStartOfDay());
|
| 575 |
|
577 |
|
| 576 |
for (PriceCircularModel pc : priceCircular) {
|
578 |
for (PriceCircularItemModel pc : priceCircular) {
|
| 577 |
|
579 |
|
| 578 |
Long totalScheme = pc.getBasePayout() + pc.getCashDiscount() + pc.getUpfrontMargin()
|
580 |
Long totalScheme = pc.getBasePayout() + pc.getCashDiscount() + pc.getUpfrontMargin()
|
| 579 |
+ pc.getTertiaryPayout() + pc.getHygienePayout() + pc.getCategoryPayout() + pc.getInvestmentPayout()
|
581 |
+ pc.getTertiaryPayout() + pc.getHygienePayout() + pc.getCategoryPayout() + pc.getInvestmentPayout()
|
| 580 |
+ pc.getModelSpecfic();
|
582 |
+ pc.getModelSpecfic();
|
| 581 |
pc.setTotalScheme(totalScheme);
|
583 |
pc.setTotalScheme(totalScheme);
|
| Line 607... |
Line 609... |
| 607 |
model.addAttribute("date", LocalDate.now());
|
609 |
model.addAttribute("date", LocalDate.now());
|
| 608 |
|
610 |
|
| 609 |
return "partner-price-circular";
|
611 |
return "partner-price-circular";
|
| 610 |
}
|
612 |
}
|
| 611 |
|
613 |
|
| - |
|
614 |
@Autowired
|
| - |
|
615 |
PriceCircularService priceCircularService;
|
| 612 |
@RequestMapping(value = "/priceCircularByBrand")
|
616 |
@RequestMapping(value = "/priceCircularByBrand")
|
| 613 |
public String priceCircularByBrand(HttpServletRequest request, @RequestParam String brand, Model model)
|
617 |
public String priceCircularByBrand(HttpServletRequest request, @RequestParam String brand, Model model)
|
| 614 |
throws ProfitMandiBusinessException {
|
618 |
throws ProfitMandiBusinessException {
|
| 615 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
619 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| 616 |
|
620 |
|
| 617 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
|
621 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
|
| 618 |
List<PartnerType> partnerTypes = new ArrayList<>();
|
622 |
List<PartnerType> partnerTypes = new ArrayList<>();
|
| 619 |
partnerTypes.add(partnerType);
|
623 |
partnerTypes.add(partnerType);
|
| 620 |
partnerTypes.add(PartnerType.ALL);
|
624 |
partnerTypes.add(PartnerType.ALL);
|
| 621 |
List<PriceCircularModel> priceCircular = tagListingRepository.getPriceCircularByBrandAndType(partnerTypes,
|
625 |
PriceCircularModel priceCircular = priceCircularService.getPriceCircularByOffer(loginDetails.getFofoId(), brand);
|
| 622 |
Arrays.asList(brand), LocalDateTime.now(),
|
- |
|
| 623 |
LocalDateTime.now().plusDays(1).toLocalDate().atStartOfDay());
|
626 |
for (PriceCircularItemModel pc : priceCircular.getPriceCircularItemModels()) {
|
| 624 |
|
- |
|
| 625 |
for (PriceCircularModel pc : priceCircular) {
|
627 |
LOGGER.info("Slabs {}", pc.getSlabPayouts());
|
| 626 |
|
- |
|
| 627 |
Long totalScheme = pc.getBasePayout() + pc.getCashDiscount() + pc.getUpfrontMargin()
|
628 |
Long totalScheme = pc.getBasePayout() + pc.getCashDiscount() + pc.getTertiaryPayout()
|
| 628 |
+ pc.getTertiaryPayout() + pc.getHygienePayout() + pc.getCategoryPayout() + pc.getInvestmentPayout()
|
629 |
+ pc.getHygienePayout() + pc.getCategoryPayout() + pc.getInvestmentPayout() + pc.getModelSpecfic()
|
| 629 |
+ pc.getModelSpecfic();
|
630 |
+ (pc.getSlabPayouts()==null ? 0l:pc.getSlabPayouts().stream().filter(x->x!=null).collect(Collectors.summingLong(x->x.entrySet().stream().findFirst().get().getValue())));
|
| 630 |
pc.setTotalScheme(totalScheme);
|
631 |
pc.setTotalScheme(totalScheme);
|
| 631 |
long netprice = pc.getSellingPrice() - pc.getTotalScheme();
|
632 |
long netprice = pc.getSellingPrice() - pc.getTotalScheme();
|
| 632 |
pc.setNetPrice(netprice);
|
633 |
pc.setNetPrice(netprice);
|
| 633 |
int mopdpdiff = pc.getMop() - pc.getSellingPrice();
|
634 |
int mopdpdiff = pc.getMop() - pc.getSellingPrice();
|
| 634 |
pc.setMopdp(mopdpdiff);
|
635 |
pc.setMopdp(mopdpdiff);
|
| Line 636... |
Line 637... |
| 636 |
long totalProfit = totalScheme + mopdpdiff;
|
637 |
long totalProfit = totalScheme + mopdpdiff;
|
| 637 |
pc.setTotalProfit((int) totalProfit);
|
638 |
pc.setTotalProfit((int) totalProfit);
|
| 638 |
double rouoff = totalProfit / (pc.getSellingPrice() / 1.18) * 100;
|
639 |
double rouoff = totalProfit / (pc.getSellingPrice() / 1.18) * 100;
|
| 639 |
double roundOff = Math.round(rouoff * 100.0) / 100.0;
|
640 |
double roundOff = Math.round(rouoff * 100.0) / 100.0;
|
| 640 |
pc.setNetMargin(roundOff);
|
641 |
pc.setNetMargin(roundOff);
|
| 641 |
|
- |
|
| 642 |
}
|
642 |
}
|
| 643 |
|
643 |
|
| 644 |
FofoStore fs = fofoStoreRepository.selectByRetailerId(loginDetails.getFofoId());
|
644 |
FofoStore fs = fofoStoreRepository.selectByRetailerId(loginDetails.getFofoId());
|
| 645 |
LOGGER.info("priceCircular" + priceCircular);
|
645 |
model.addAttribute("priceCircular", priceCircular.getPriceCircularItemModels());
|
| 646 |
model.addAttribute("priceCircular", priceCircular);
|
646 |
model.addAttribute("offers", priceCircular.getOffers());
|
| 647 |
model.addAttribute("partnerCode", fs.getCode());
|
647 |
model.addAttribute("partnerCode", fs.getCode());
|
| 648 |
return "price-circular-detail";
|
648 |
return "price-circular-detail";
|
| 649 |
}
|
649 |
}
|
| 650 |
|
650 |
|
| 651 |
@RequestMapping(value = "/selectPriceDropStatus", method = RequestMethod.GET)
|
651 |
@RequestMapping(value = "/selectPriceDropStatus", method = RequestMethod.GET)
|
| 652 |
public String selectPriceDropStatus(HttpServletRequest request,
|
652 |
public String selectPriceDropStatus(HttpServletRequest request,
|
| 653 |
@RequestParam(name = "selectedStatus", required = true, defaultValue = "") String selectedStatus,
|
653 |
@RequestParam(name = "selectedStatus", required = true, defaultValue = "") String selectedStatus,
|
| 654 |
Model model) throws Exception {
|
654 |
Model model) throws Exception {
|
| 655 |
|
655 |
|
| 656 |
model.addAttribute("selectedStatus", selectedStatus);
|
656 |
model.addAttribute("selectedStatus", selectedStatus);
|
| 657 |
|
- |
|
| 658 |
return "pricedrop-status-change";
|
657 |
return "pricedrop-status-change";
|
| 659 |
|
- |
|
| 660 |
}
|
658 |
}
|
| 661 |
|
659 |
|
| 662 |
}
|
660 |
}
|