Subversion Repositories SmartDukaan

Rev

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

Rev 27377 Rev 27387
Line 3... Line 3...
3
import java.io.ByteArrayInputStream;
3
import java.io.ByteArrayInputStream;
4
import java.io.ByteArrayOutputStream;
4
import java.io.ByteArrayOutputStream;
5
import java.io.InputStream;
5
import java.io.InputStream;
6
import java.time.LocalDate;
6
import java.time.LocalDate;
7
import java.time.LocalDateTime;
7
import java.time.LocalDateTime;
-
 
8
import java.time.LocalTime;
8
import java.util.ArrayList;
9
import java.util.ArrayList;
9
import java.util.Arrays;
10
import java.util.Arrays;
10
import java.util.HashMap;
11
import java.util.HashMap;
11
import java.util.HashSet;
12
import java.util.HashSet;
-
 
13
import java.util.LinkedHashSet;
12
import java.util.List;
14
import java.util.List;
-
 
15
import java.util.ListIterator;
13
import java.util.Map;
16
import java.util.Map;
14
import java.util.Set;
17
import java.util.Set;
15
import java.util.stream.Collectors;
18
import java.util.stream.Collectors;
16
 
19
 
17
import javax.servlet.http.HttpServletRequest;
20
import javax.servlet.http.HttpServletRequest;
Line 41... Line 44...
41
import com.spice.profitmandi.common.model.SchemeItems;
44
import com.spice.profitmandi.common.model.SchemeItems;
42
import com.spice.profitmandi.common.model.SchemeModel;
45
import com.spice.profitmandi.common.model.SchemeModel;
43
import com.spice.profitmandi.common.util.ExcelUtils;
46
import com.spice.profitmandi.common.util.ExcelUtils;
44
import com.spice.profitmandi.common.util.StringUtils;
47
import com.spice.profitmandi.common.util.StringUtils;
45
import com.spice.profitmandi.common.web.util.ResponseSender;
48
import com.spice.profitmandi.common.web.util.ResponseSender;
-
 
49
import com.spice.profitmandi.dao.entity.catalog.Item;
46
import com.spice.profitmandi.dao.entity.catalog.Offer;
50
import com.spice.profitmandi.dao.entity.catalog.Offer;
47
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
51
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
48
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
52
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
49
import com.spice.profitmandi.dao.entity.catalog.Scheme;
53
import com.spice.profitmandi.dao.entity.catalog.Scheme;
50
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
54
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
-
 
55
import com.spice.profitmandi.dao.entity.fofo.PrebookingListing;
51
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
56
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
52
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
57
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
53
import com.spice.profitmandi.dao.model.AmountMarginModel;
58
import com.spice.profitmandi.dao.model.AmountMarginModel;
54
import com.spice.profitmandi.dao.model.CreateOfferRequest;
59
import com.spice.profitmandi.dao.model.CreateOfferRequest;
55
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
60
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
Line 651... Line 656...
651
 
656
 
652
		model.addAttribute("customRetailersMap", customRetailersMap);
657
		model.addAttribute("customRetailersMap", customRetailersMap);
653
		model.addAttribute("itemCriteriaType", ItemCriteriaType.values());
658
		model.addAttribute("itemCriteriaType", ItemCriteriaType.values());
654
		model.addAttribute("brands", brands);
659
		model.addAttribute("brands", brands);
655
		model.addAttribute("partnerCategories", PartnerType.values());
660
		model.addAttribute("partnerCategories", PartnerType.values());
656
		model.addAttribute("warehouseRegion", ProfitMandiConstants.WAREHOUSE_MAP);
-
 
657
		// model.addAttribute("brands", "");
-
 
658
		return "scheme_offer";
661
		return "scheme_offer";
659
 
662
 
660
	}
663
	}
661
 
664
 
662
	@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
665
	@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
Line 665... Line 668...
665
		LOGGER.info("createOfferRequest" + createOfferRequest.getAmountOffer());
668
		LOGGER.info("createOfferRequest" + createOfferRequest.getAmountOffer());
666
 
669
 
667
		Offer offer = new Offer();
670
		Offer offer = new Offer();
668
		offer.setName(createOfferRequest.getName());
671
		offer.setName(createOfferRequest.getName());
669
		offer.setDescription(createOfferRequest.getDescription());
672
		offer.setDescription(createOfferRequest.getDescription());
-
 
673
		offer.setItemCreteria(createOfferRequest.getItemCriteria());
670
		offer.setTargetType(createOfferRequest.getTargetType());
674
		offer.setTargetType(createOfferRequest.getTargetType());
671
		offer.setAmountType(createOfferRequest.getAmountType());
675
		offer.setAmountType(createOfferRequest.getAmountType());
672
		offer.setStartDate(createOfferRequest.getStartDate());
676
		offer.setStartDateTime(createOfferRequest.getStartDate());
673
		offer.setEndDate(createOfferRequest.getEndDate());
677
		offer.setEndDateTime(createOfferRequest.getEndDate());
-
 
678
		offer.setPrice(createOfferRequest.getPrice());
674
		offer.setCreatedTimestamp(LocalDateTime.now());
679
		offer.setCreatedTimestamp(LocalDateTime.now());
675
		offer.setSchemeType(createOfferRequest.getSchemeType());
680
		offer.setSchemeType(createOfferRequest.getSchemeType());
676
		// offer.setItemCreteria(createOfferRequest.getItemCriteria());
-
 
677
		// offer.setCriteria(createOfferRequest.getCriteria());
681
		offer.setCriteria(createOfferRequest.getCriteria());
678
		// offer.setPartnerType(createOfferRequest.getPartnerType());
682
		offer.setPartnerType(createOfferRequest.getPartnerType());
679
 
683
 
680
		if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
684
		if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
681
			ItemTypeParams itemTypeParams = new ItemTypeParams();
685
			ItemTypeParams itemTypeParams = new ItemTypeParams();
682
			itemTypeParams.setCatalogId(createOfferRequest.getCatalogIds());
686
			itemTypeParams.setCatalogId(createOfferRequest.getCatalogIds());
683
			SimpleItemType sit = new SimpleItemType(itemTypeParams);
687
			SimpleItemType sit = new SimpleItemType(itemTypeParams);
684
			sit.setItemTypeParams(itemTypeParams);
688
			sit.setItemTypeParams(itemTypeParams);
685
			// offer.setItemParam(gson.toJson(itemTypeParams));
689
			offer.setItemParam(gson.toJson(itemTypeParams));
686
		} else if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
690
		} else if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
687
			ItemTypeParams itemTypeParams = new ItemTypeParams();
691
			ItemTypeParams itemTypeParams = new ItemTypeParams();
688
			itemTypeParams.setBrands(createOfferRequest.getBrands());
692
			itemTypeParams.setBrands(createOfferRequest.getBrands());
689
			SimpleItemType sit = new SimpleItemType(itemTypeParams);
693
			SimpleItemType sit = new SimpleItemType(itemTypeParams);
690
			sit.setItemTypeParams(itemTypeParams);
694
			sit.setItemTypeParams(itemTypeParams);
691
			// offer.setItemParam(gson.toJson(itemTypeParams));
695
			offer.setItemParam(gson.toJson(itemTypeParams));
692
		}
696
		}
693
 
697
 
694
		offerRepository.persist(offer);
698
		offerRepository.persist(offer);
695
		if (createOfferRequest.getFofoIds().isEmpty()) {
699
		if (createOfferRequest.getFofoIds().isEmpty()) {
696
			List<Integer> fofoIds = fofoStoreRepository.selectActiveStores().stream().map(x -> x.getId())
700
			List<Integer> fofoIds = fofoStoreRepository.selectActiveStores().stream().map(x -> x.getId())
697
					.collect(Collectors.toList());
701
					.collect(Collectors.toList());
698
			for (Integer fofoId : fofoIds) {
702
			for (Integer fofoId : fofoIds) {
699
				PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(fofoId,
703
				PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(fofoId,
700
						offer.getStartDate().toLocalDate());
704
						offer.getStartDateTime().toLocalDate());
701
				/*
-
 
702
				 * if (offer.getPartner().equals(partnerType)) { LOGGER.info("partnerType" +
705
				if (offer.getPartnerType().equals(partnerType)) {
-
 
706
					LOGGER.info("partnerType" + partnerType);
703
				 * partnerType); LOGGER.info("fofoId" + fofoId);
707
					LOGGER.info("fofoId" + fofoId);
704
				 * 
708
 
705
				 * OfferPartner op = new OfferPartner(); op.setFofoId(fofoId);
709
					OfferPartner op = new OfferPartner();
-
 
710
					op.setFofoId(fofoId);
-
 
711
					op.setOfferId(offer.getId());
706
				 * op.setOfferId(offer.getId()); offerPartnerRepository.persist(op); }
712
					offerPartnerRepository.persist(op);
707
				 */
713
				}
708
 
714
 
709
			}
715
			}
710
		}
716
		}
711
 
717
 
712
		else {
718
		else {
Line 841... Line 847...
841
		Map<Integer, CustomRetailer> customRetailersMap = retailerService.getFofoRetailers(fofoIds);
847
		Map<Integer, CustomRetailer> customRetailersMap = retailerService.getFofoRetailers(fofoIds);
842
		List<OfferPartner> offerPartners = offerPartnerRepository.selectByOfferId(offerId);
848
		List<OfferPartner> offerPartners = offerPartnerRepository.selectByOfferId(offerId);
843
 
849
 
844
		LOGGER.info("offerId" + offer.getId());
850
		LOGGER.info("offerId" + offer.getId());
845
 
851
 
846
		Map<Integer, Double> value = offerRepository.selectSumOfferByRetailer(offer.getStartDate(), offer.getEndDate(),
852
		Map<Integer, Double> value = offerRepository.selectSumOfferByRetailer(offer.getStartDateTime(),
847
				0, offer, true);
853
				offer.getEndDateTime(), 0, offer, true);
848
 
854
 
849
		LOGGER.info("value" + value);
855
		LOGGER.info("value" + value);
850
		List<Offermargin> offerMargin = offerMarginRepository.selectByOfferId(offerId);
856
		List<Offermargin> offerMargin = offerMarginRepository.selectByOfferId(offerId);
851
		Map<Integer, Double> partnerValueMap = new HashMap<>();
857
		Map<Integer, Double> partnerValueMap = new HashMap<>();
852
		Map<Integer, List<Double>> partnerMarginMap = new HashMap<Integer, List<Double>>();
858
		Map<Integer, List<Double>> partnerMarginMap = new HashMap<Integer, List<Double>>();
Line 894... Line 900...
894
 
900
 
895
		LOGGER.info("partnerMarginMap" + partnerMarginMap);
901
		LOGGER.info("partnerMarginMap" + partnerMarginMap);
896
		LOGGER.info("partnerValueMap" + partnerValueMap);
902
		LOGGER.info("partnerValueMap" + partnerValueMap);
897
		LOGGER.info("shortageAmount" + shortageAmount);
903
		LOGGER.info("shortageAmount" + shortageAmount);
898
 
904
 
899
		/*
-
 
900
		 * ItemTypeParams scp = gson.fromJson(offer.getItemParam(),
905
		ItemTypeParams scp = gson.fromJson(offer.getItemParam(), ItemTypeParams.class);
901
		 * ItemTypeParams.class); if
-
 
902
		 * (offer.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
906
		if (offer.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
903
		 * List<String> brands = scp.getBrands(); model.addAttribute("brands", brands);
907
			List<String> brands = scp.getBrands();
-
 
908
			model.addAttribute("brands", brands);
-
 
909
		}
904
		 * } if (offer.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
910
		if (offer.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
905
		 * List<Integer> catalogIds = scp.getCatalogId(); List<Item> newList = new
911
			List<Integer> catalogIds = scp.getCatalogId();
-
 
912
			List<Item> newList = new ArrayList<>();
906
		 * ArrayList<>(); Set<Integer> catalogId = new HashSet<>(); List<Item> items =
913
			Set<Integer> catalogId = new HashSet<>();
907
		 * itemRepository.selectAllByCatalogIds(catalogIds.stream().collect(Collectors.
914
			List<Item> items = itemRepository.selectAllByCatalogIds(catalogIds.stream().collect(Collectors.toSet()));
908
		 * toSet())); for (Item item : items) { if
915
			for (Item item : items) {
909
		 * (catalogId.add(item.getCatalogItemId())) { newList.add(item); } }
916
				if (catalogId.add(item.getCatalogItemId())) {
-
 
917
					newList.add(item);
-
 
918
				}
-
 
919
			}
910
		 * model.addAttribute("items", newList); }
920
			model.addAttribute("items", newList);
911
		 */
921
		}
912
		model.addAttribute("partnerMarginMap", partnerMarginMap);
922
		model.addAttribute("partnerMarginMap", partnerMarginMap);
913
		model.addAttribute("partnerValueMap", partnerValueMap);
923
		model.addAttribute("partnerValueMap", partnerValueMap);
914
		model.addAttribute("customRetailersMap", customRetailersMap);
924
		model.addAttribute("customRetailersMap", customRetailersMap);
915
		model.addAttribute("offerMargin", offerMargin);
925
		model.addAttribute("offerMargin", offerMargin);
916
		model.addAttribute("offer", offer);
926
		model.addAttribute("offer", offer);
Line 937... Line 947...
937
 
947
 
938
		LOGGER.info("ExtendDatetime" + extendDatetime);
948
		LOGGER.info("ExtendDatetime" + extendDatetime);
939
		LOGGER.info("schemeId" + offerId);
949
		LOGGER.info("schemeId" + offerId);
940
		Offer offer = offerRepository.selectById(offerId);
950
		Offer offer = offerRepository.selectById(offerId);
941
 
951
 
942
		offer.setEndDate(extendDatetime);
952
		offer.setEndDateTime(extendDatetime);
943
		offerRepository.persist(offer);
953
		offerRepository.persist(offer);
944
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
954
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
945
		return "response";
955
		return "response";
946
	}
956
	}
947
 
957