Subversion Repositories SmartDukaan

Rev

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

Rev 30617 Rev 30669
Line 20... Line 20...
20
import com.spice.profitmandi.dao.entity.catalog.TagListing;
20
import com.spice.profitmandi.dao.entity.catalog.TagListing;
21
import com.spice.profitmandi.dao.entity.dtr.WebOffer;
21
import com.spice.profitmandi.dao.entity.dtr.WebOffer;
22
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
22
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
23
import com.spice.profitmandi.dao.entity.fofo.SuggestedPo;
23
import com.spice.profitmandi.dao.entity.fofo.SuggestedPo;
24
import com.spice.profitmandi.dao.entity.fofo.SuggestedPoDetail;
24
import com.spice.profitmandi.dao.entity.fofo.SuggestedPoDetail;
25
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
25
import com.spice.profitmandi.dao.entity.inventory.SaholicCISTable;
26
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
26
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
27
import com.spice.profitmandi.dao.model.CreateOfferRequest;
27
import com.spice.profitmandi.dao.model.CreateOfferRequest;
28
import com.spice.profitmandi.dao.model.UserCart;
28
import com.spice.profitmandi.dao.model.UserCart;
29
import com.spice.profitmandi.dao.repository.catalog.CategoryRepository;
29
import com.spice.profitmandi.dao.repository.catalog.CategoryRepository;
30
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
30
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
Line 33... Line 33...
33
import com.spice.profitmandi.dao.repository.dtr.Mongo;
33
import com.spice.profitmandi.dao.repository.dtr.Mongo;
34
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
34
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
35
import com.spice.profitmandi.dao.repository.dtr.WebOfferRepository;
35
import com.spice.profitmandi.dao.repository.dtr.WebOfferRepository;
36
import com.spice.profitmandi.dao.repository.fofo.SuggestedPoDetailRepository;
36
import com.spice.profitmandi.dao.repository.fofo.SuggestedPoDetailRepository;
37
import com.spice.profitmandi.dao.repository.fofo.SuggestedPoRepository;
37
import com.spice.profitmandi.dao.repository.fofo.SuggestedPoRepository;
-
 
38
import com.spice.profitmandi.dao.repository.inventory.SaholicCISTableRepository;
38
import com.spice.profitmandi.service.authentication.RoleManager;
39
import com.spice.profitmandi.service.authentication.RoleManager;
39
import com.spice.profitmandi.service.inventory.*;
40
import com.spice.profitmandi.service.inventory.*;
40
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModel;
41
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModel;
41
import com.spice.profitmandi.service.pricecircular.PriceCircularModel;
42
import com.spice.profitmandi.service.pricecircular.PriceCircularModel;
42
import com.spice.profitmandi.service.pricecircular.PriceCircularService;
43
import com.spice.profitmandi.service.pricecircular.PriceCircularService;
Line 516... Line 517...
516
			}
517
			}
517
		}
518
		}
518
		return responseSender.ok(responseObject);
519
		return responseSender.ok(responseObject);
519
	}
520
	}
520
 
521
 
-
 
522
	@Autowired
-
 
523
	private SaholicCISTableRepository saholicCISTableRepository;
-
 
524
 
521
	private List<FofoCatalogResponse> getCatalogResponse(JSONArray docs, boolean hotDeal, int fofoId) throws Exception {
525
	private List<FofoCatalogResponse> getCatalogResponse(JSONArray docs, boolean hotDeal, int fofoId) throws Exception {
522
		List<FofoCatalogResponse> dealResponse = new ArrayList<>();
526
		List<FofoCatalogResponse> dealResponse = new ArrayList<>();
523
		List<Integer> tagIds = Arrays.asList(4);
527
		List<Integer> tagIds = Arrays.asList(4);
524
		List<Integer> itemIds = new ArrayList<>();
528
		List<Integer> itemIds = new ArrayList<>();
525
		if (docs.length() > 0) {
529
		if (docs.length() > 0) {
Line 537... Line 541...
537
				return dealResponse;
541
				return dealResponse;
538
			}
542
			}
539
		}
543
		}
540
		// get warehouse Id
544
		// get warehouse Id
541
		int warehouseId = fofoStoreRepository.selectByRetailerId(fofoId).getWarehouseId();
545
		int warehouseId = fofoStoreRepository.selectByRetailerId(fofoId).getWarehouseId();
542
		Map<Integer, List<SaholicCIS>> itemAvailabilityMap = saholicInventoryService.getSaholicStock().get(warehouseId);
-
 
543
		Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = saholicInventoryService.getSaholicPOItems()
546
		Map<Integer, List<SaholicPOItem>> poItemAvailabilityMap = saholicInventoryService.getSaholicPOItems()
544
				.get(warehouseId);
547
				.get(warehouseId);
545
		List<Integer> catalogIds = new ArrayList<>();
548
		List<Integer> catalogIds = new ArrayList<>();
546
		for (int i = 0; i < docs.length(); i++) {
549
		for (int i = 0; i < docs.length(); i++) {
547
			Map<Integer, FofoAvailabilityInfo> fofoAvailabilityInfoMap = new HashMap<>();
550
			Map<Integer, FofoAvailabilityInfo> fofoAvailabilityInfoMap = new HashMap<>();
Line 599... Line 602...
599
							fofoAvailabilityInfoMap.get(itemId)
602
							fofoAvailabilityInfoMap.get(itemId)
600
									.setNlc(priceCircularItemModel == null ? 0 : priceCircularItemModel.getNetPrice());
603
									.setNlc(priceCircularItemModel == null ? 0 : priceCircularItemModel.getNetPrice());
601
						}
604
						}
602
					} else {
605
					} else {
603
						FofoAvailabilityInfo fdi = new FofoAvailabilityInfo();
606
						FofoAvailabilityInfo fdi = new FofoAvailabilityInfo();
604
						List<SaholicCIS> currentAvailability = itemAvailabilityMap.get(itemId);
607
						List<SaholicCISTable> currentAvailability = saholicCISTableRepository.selectByItemWarehouse(itemId, warehouseId);
605
						List<SaholicPOItem> poItemAvailability = null;
608
						List<SaholicPOItem> poItemAvailability = null;
606
						if (poItemAvailabilityMap != null) {
609
						if (poItemAvailabilityMap != null) {
607
							poItemAvailability = poItemAvailabilityMap.get(itemId);
610
							poItemAvailability = poItemAvailabilityMap.get(itemId);
608
						}
611
						}
609
						fdi.setNlc(priceCircularItemModel == null ? 0 : priceCircularItemModel.getNetPrice());
612
						fdi.setNlc(priceCircularItemModel == null ? 0 : priceCircularItemModel.getNetPrice());
610
						if (currentAvailability != null) {
613
						if (currentAvailability != null) {
611
							allColorNetAvailability += currentAvailability.stream()
614
							allColorNetAvailability += currentAvailability.stream()
612
									.collect(Collectors.summingInt(SaholicCIS::getNetavailability));
615
									.collect(Collectors.summingInt(SaholicCISTable::getNetAvailability));
613
						}
616
						}
614
						if (poItemAvailability != null) {
617
						if (poItemAvailability != null) {
615
							allColorNetAvailability += poItemAvailability.stream()
618
							allColorNetAvailability += poItemAvailability.stream()
616
									.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty));
619
									.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty));
617
						}
620
						}
618
						Map<Integer, SaholicCIS> map = null;
621
						Map<Integer, SaholicCISTable> map = null;
619
						if (currentAvailability != null) {
622
						if (currentAvailability != null) {
620
							for (SaholicCIS saholicCIS : currentAvailability) {
623
							for (SaholicCISTable saholicCISTable : currentAvailability) {
621
								saholicCIS.setWarehouseName(
624
								saholicCISTable.setWarehouseName(
622
										ProfitMandiConstants.WAREHOUSE_MAP.get(saholicCIS.getWarehouseFrom()));
625
										ProfitMandiConstants.WAREHOUSE_MAP.get(saholicCISTable.getWarehouseFrom()));
623
							}
626
							}
624
							map = currentAvailability.stream()
627
							map = currentAvailability.stream()
625
									.collect(Collectors.toMap(SaholicCIS::getWarehouseFrom, x -> x));
628
									.collect(Collectors.toMap(SaholicCISTable::getWarehouseFrom, x -> x));
626
							if (poItemAvailability != null) {
629
							if (poItemAvailability != null) {
627
								for (SaholicPOItem saholicPOItem : poItemAvailability) {
630
								for (SaholicPOItem saholicPOItem : poItemAvailability) {
628
									if (map.containsKey(saholicPOItem.getWarehouseFrom())) {
631
									if (map.containsKey(saholicPOItem.getWarehouseFrom())) {
629
										map.get(saholicPOItem.getWarehouseFrom())
632
										map.get(saholicPOItem.getWarehouseFrom())
630
												.setPopendingQty(saholicPOItem.getUnfulfilledQty());
633
												.setPopendingQty(saholicPOItem.getUnfulfilledQty());
631
										map.get(saholicPOItem.getWarehouseFrom())
634
										map.get(saholicPOItem.getWarehouseFrom())
632
												.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP
635
												.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP
633
														.get(saholicPOItem.getWarehouseFrom()));
636
														.get(saholicPOItem.getWarehouseFrom()));
634
									} else {
637
									} else {
635
										SaholicCIS saholicCIS = new SaholicCIS();
638
										SaholicCISTable saholicCISTable = new SaholicCISTable();
636
										saholicCIS.setAvailability(0);
639
										saholicCISTable.setAvailability(0);
637
										saholicCIS.setReserved(0);
640
										saholicCISTable.setReserved(0);
638
										saholicCIS.setItemId(itemId);
641
										saholicCISTable.setItemId(itemId);
639
										saholicCIS.setPopendingQty(saholicPOItem.getUnfulfilledQty());
642
										saholicCISTable.setPopendingQty(saholicPOItem.getUnfulfilledQty());
640
										saholicCIS.setWarehouseFrom(saholicPOItem.getWarehouseFrom());
643
										saholicCISTable.setWarehouseFrom(saholicPOItem.getWarehouseFrom());
641
										saholicCIS.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP
644
										saholicCISTable.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP
642
												.get(saholicPOItem.getWarehouseFrom()));
645
												.get(saholicPOItem.getWarehouseFrom()));
643
										map.put(saholicPOItem.getWarehouseFrom(), saholicCIS);
646
										map.put(saholicPOItem.getWarehouseFrom(), saholicCISTable);
644
									}
647
									}
645
								}
648
								}
646
							}
649
							}
647
						} else {
650
						} else {
648
							map = new HashMap<>();
651
							map = new HashMap<>();
649
							if (poItemAvailability != null) {
652
							if (poItemAvailability != null) {
650
								for (SaholicPOItem saholicPOItem : poItemAvailability) {
653
								for (SaholicPOItem saholicPOItem : poItemAvailability) {
651
									SaholicCIS saholicCIS = new SaholicCIS();
654
									SaholicCISTable saholicCISTable = new SaholicCISTable();
652
									saholicCIS.setAvailability(0);
655
									saholicCISTable.setAvailability(0);
653
									saholicCIS.setReserved(0);
656
									saholicCISTable.setReserved(0);
654
									saholicCIS.setItemId(itemId);
657
									saholicCISTable.setItemId(itemId);
655
									saholicCIS.setPopendingQty(saholicPOItem.getUnfulfilledQty());
658
									saholicCISTable.setPopendingQty(saholicPOItem.getUnfulfilledQty());
656
									saholicCIS.setWarehouseFrom(saholicPOItem.getWarehouseFrom());
659
									saholicCISTable.setWarehouseFrom(saholicPOItem.getWarehouseFrom());
657
									saholicCIS.setWarehouseName(
660
									saholicCISTable.setWarehouseName(
658
											ProfitMandiConstants.WAREHOUSE_MAP.get(saholicPOItem.getWarehouseFrom()));
661
											ProfitMandiConstants.WAREHOUSE_MAP.get(saholicPOItem.getWarehouseFrom()));
659
									map.put(saholicPOItem.getWarehouseFrom(), saholicCIS);
662
									map.put(saholicPOItem.getWarehouseFrom(), saholicCISTable);
660
								}
663
								}
661
							}
664
							}
662
 
665
 
663
						}
666
						}
664
						fdi.setSaholicCISList(new ArrayList<>(map.values()));
667
						fdi.setSaholicCISTableList(new ArrayList<>(map.values()));
665
						String poColor = "grey";
668
						String poColor = "grey";
666
						boolean active = false;
669
						boolean active = false;
667
						if (currentAvailability != null && currentAvailability.stream()
670
						if (currentAvailability != null && currentAvailability.stream()
668
								.collect(Collectors.summingInt(SaholicCIS::getNetavailability)) > 0) {
671
								.collect(Collectors.summingInt(SaholicCISTable::getNetAvailability)) > 0) {
669
							poColor = "green";
672
							poColor = "green";
670
							modelColorClass = "green";
673
							modelColorClass = "green";
671
						} else if (poItemAvailability != null && poItemAvailability.stream()
674
						} else if (poItemAvailability != null && poItemAvailability.stream()
672
								.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty)) > 0) {
675
								.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty)) > 0) {
673
							if (currentAvailability != null && poItemAvailability.stream()
676
							if (currentAvailability != null && poItemAvailability.stream()
674
									.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty))
677
									.collect(Collectors.summingInt(SaholicPOItem::getUnfulfilledQty))
675
									+ currentAvailability.stream()
678
									+ currentAvailability.stream()
676
											.collect(Collectors.summingInt(SaholicCIS::getNetavailability)) <= 0) {
679
									.collect(Collectors.summingInt(SaholicCISTable::getNetAvailability)) <= 0) {
677
								poColor = "grey";
680
								poColor = "grey";
678
							} else {
681
							} else {
679
								poColor = "yellow";
682
								poColor = "yellow";
680
								if (modelColorClass != "green") {
683
								if (modelColorClass != "green") {
681
									modelColorClass = poColor;
684
									modelColorClass = poColor;
Line 699... Line 702...
699
						fdi.setCashback(cashBack);
702
						fdi.setCashback(cashBack);
700
						fdi.setMinBuyQuantity(1);
703
						fdi.setMinBuyQuantity(1);
701
						if (hotDeal) {
704
						if (hotDeal) {
702
							if (currentAvailability != null) {
705
							if (currentAvailability != null) {
703
								fdi.setAvailability(currentAvailability.stream()
706
								fdi.setAvailability(currentAvailability.stream()
704
										.collect(Collectors.summingInt(SaholicCIS::getNetavailability)));
707
										.collect(Collectors.summingInt(SaholicCISTable::getNetAvailability)));
705
							} else {
708
							} else {
706
								fdi.setAvailability(0);
709
								fdi.setAvailability(0);
707
							}
710
							}
708
						} else {
711
						} else {
709
							// Lets consider that its out of stock
712
							// Lets consider that its out of stock