Subversion Repositories SmartDukaan

Rev

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

Rev 29654 Rev 29788
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
}