| Line 25... |
Line 25... |
| 25 |
import com.spice.profitmandi.dao.entity.fofo.SuggestedPoDetail;
|
25 |
import com.spice.profitmandi.dao.entity.fofo.SuggestedPoDetail;
|
| 26 |
import com.spice.profitmandi.dao.entity.inventory.SaholicCISTable;
|
26 |
import com.spice.profitmandi.dao.entity.inventory.SaholicCISTable;
|
| 27 |
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
|
27 |
import com.spice.profitmandi.dao.entity.inventory.SaholicPOItem;
|
| 28 |
import com.spice.profitmandi.dao.enumuration.dtr.WebListingSource;
|
28 |
import com.spice.profitmandi.dao.enumuration.dtr.WebListingSource;
|
| 29 |
import com.spice.profitmandi.dao.enumuration.dtr.WebListingType;
|
29 |
import com.spice.profitmandi.dao.enumuration.dtr.WebListingType;
|
| - |
|
30 |
import com.spice.profitmandi.dao.model.AmountModel;
|
| 30 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
31 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
| 31 |
import com.spice.profitmandi.dao.model.UserCart;
|
32 |
import com.spice.profitmandi.dao.model.UserCart;
|
| 32 |
import com.spice.profitmandi.dao.repository.catalog.*;
|
33 |
import com.spice.profitmandi.dao.repository.catalog.*;
|
| 33 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
34 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| 34 |
import com.spice.profitmandi.dao.repository.dtr.Mongo;
|
35 |
import com.spice.profitmandi.dao.repository.dtr.Mongo;
|
| Line 42... |
Line 43... |
| 42 |
import com.spice.profitmandi.dao.repository.inventory.SaholicCISTableRepository;
|
43 |
import com.spice.profitmandi.dao.repository.inventory.SaholicCISTableRepository;
|
| 43 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
44 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 44 |
import com.spice.profitmandi.service.catalog.BrandsService;
|
45 |
import com.spice.profitmandi.service.catalog.BrandsService;
|
| 45 |
import com.spice.profitmandi.service.inventory.*;
|
46 |
import com.spice.profitmandi.service.inventory.*;
|
| 46 |
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModel;
|
47 |
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModel;
|
| - |
|
48 |
import com.spice.profitmandi.service.pricecircular.PriceCircularItemModelNew;
|
| 47 |
import com.spice.profitmandi.service.pricecircular.PriceCircularModel;
|
49 |
import com.spice.profitmandi.service.pricecircular.PriceCircularModel;
|
| 48 |
import com.spice.profitmandi.service.pricecircular.PriceCircularService;
|
50 |
import com.spice.profitmandi.service.pricecircular.PriceCircularService;
|
| 49 |
import com.spice.profitmandi.service.pricing.PricingService;
|
51 |
import com.spice.profitmandi.service.pricing.PricingService;
|
| 50 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
52 |
import com.spice.profitmandi.service.scheme.SchemeService;
|
| 51 |
import com.spice.profitmandi.web.res.DealBrands;
|
53 |
import com.spice.profitmandi.web.res.DealBrands;
|
| Line 60... |
Line 62... |
| 60 |
import org.apache.logging.log4j.Logger;
|
62 |
import org.apache.logging.log4j.Logger;
|
| 61 |
import org.json.JSONArray;
|
63 |
import org.json.JSONArray;
|
| 62 |
import org.json.JSONObject;
|
64 |
import org.json.JSONObject;
|
| 63 |
import org.springframework.beans.factory.annotation.Autowired;
|
65 |
import org.springframework.beans.factory.annotation.Autowired;
|
| 64 |
import org.springframework.beans.factory.annotation.Value;
|
66 |
import org.springframework.beans.factory.annotation.Value;
|
| - |
|
67 |
import org.springframework.cglib.core.Local;
|
| 65 |
import org.springframework.http.HttpStatus;
|
68 |
import org.springframework.http.HttpStatus;
|
| 66 |
import org.springframework.http.MediaType;
|
69 |
import org.springframework.http.MediaType;
|
| 67 |
import org.springframework.http.ResponseEntity;
|
70 |
import org.springframework.http.ResponseEntity;
|
| 68 |
import org.springframework.stereotype.Controller;
|
71 |
import org.springframework.stereotype.Controller;
|
| 69 |
import org.springframework.transaction.annotation.Transactional;
|
72 |
import org.springframework.transaction.annotation.Transactional;
|
| Line 72... |
Line 75... |
| 72 |
import org.springframework.web.bind.annotation.RequestMethod;
|
75 |
import org.springframework.web.bind.annotation.RequestMethod;
|
| 73 |
import org.springframework.web.bind.annotation.RequestParam;
|
76 |
import org.springframework.web.bind.annotation.RequestParam;
|
| 74 |
|
77 |
|
| 75 |
import javax.servlet.http.HttpServletRequest;
|
78 |
import javax.servlet.http.HttpServletRequest;
|
| 76 |
|
79 |
|
| - |
|
80 |
import java.time.LocalDate;
|
| 77 |
import java.time.LocalDateTime;
|
81 |
import java.time.LocalDateTime;
|
| 78 |
import java.util.*;
|
82 |
import java.util.*;
|
| 79 |
import java.util.concurrent.atomic.AtomicInteger;
|
83 |
import java.util.concurrent.atomic.AtomicInteger;
|
| 80 |
import java.util.stream.Collectors;
|
84 |
import java.util.stream.Collectors;
|
| 81 |
|
85 |
|
| Line 730... |
Line 734... |
| 730 |
Map<Integer, FofoAvailabilityInfo> fofoAvailabilityInfoMap = new HashMap<>();
|
734 |
Map<Integer, FofoAvailabilityInfo> fofoAvailabilityInfoMap = new HashMap<>();
|
| 731 |
JSONObject doc = docs.getJSONObject(i);
|
735 |
JSONObject doc = docs.getJSONObject(i);
|
| 732 |
catalogIds.add(doc.getInt("catalogId_i"));
|
736 |
catalogIds.add(doc.getInt("catalogId_i"));
|
| 733 |
}
|
737 |
}
|
| 734 |
List<CreateOfferRequest> allSchemOffers = null;
|
738 |
List<CreateOfferRequest> allSchemOffers = null;
|
| 735 |
Map<Integer, PriceCircularItemModel> priceCircularItemModelMap = new HashMap<>();
|
739 |
Map<Integer, PriceCircularItemModelNew> priceCircularItemModelMap = new HashMap<>();
|
| 736 |
if (catalogIds.size() > 0) {
|
740 |
if (catalogIds.size() > 0) {
|
| 737 |
PriceCircularModel priceCircularModel = priceCircularService.getPriceCircularByOffer(fofoId, catalogIds);
|
741 |
PriceCircularModel priceCircularModel = priceCircularService.getPriceCircularByOffer(fofoId, catalogIds, LocalDate.now());
|
| 738 |
allSchemOffers = priceCircularModel.getOffers();
|
742 |
allSchemOffers = priceCircularModel.getOffers();
|
| 739 |
|
743 |
|
| 740 |
List<PriceCircularItemModel> priceCircularItemModels = priceCircularModel.getPriceCircularItemModels();
|
744 |
List<PriceCircularItemModelNew> priceCircularItemModelNews = priceCircularModel.getPriceCircularItemModelNews();
|
| 741 |
if (priceCircularItemModels != null) {
|
745 |
if (priceCircularItemModelNews != null) {
|
| 742 |
priceCircularItemModelMap = priceCircularItemModels.stream()
|
746 |
priceCircularItemModelMap = priceCircularItemModelNews.stream()
|
| 743 |
.collect(Collectors.toMap(x -> x.getCatalogId(), x -> x));
|
747 |
.collect(Collectors.toMap(x -> x.getCatalogId(), x -> x));
|
| 744 |
}
|
748 |
}
|
| 745 |
}
|
749 |
}
|
| 746 |
|
750 |
|
| 747 |
List<CatalogFavourite> catalogFavourites = catalogFavouriteRepository.selectBypartnerId(fofoId);
|
751 |
List<CatalogFavourite> catalogFavourites = catalogFavouriteRepository.selectBypartnerId(fofoId);
|
| Line 817... |
Line 821... |
| 817 |
if (doc.has("_childDocuments_")) {
|
821 |
if (doc.has("_childDocuments_")) {
|
| 818 |
String modelColorClass = "grey";
|
822 |
String modelColorClass = "grey";
|
| 819 |
FofoAvailabilityInfo fdiAnyColour = null;
|
823 |
FofoAvailabilityInfo fdiAnyColour = null;
|
| 820 |
// Iterating itemIds
|
824 |
// Iterating itemIds
|
| 821 |
for (int j = 0; j < doc.getJSONArray("_childDocuments_").length(); j++) {
|
825 |
for (int j = 0; j < doc.getJSONArray("_childDocuments_").length(); j++) {
|
| 822 |
PriceCircularItemModel priceCircularItemModel = priceCircularItemModelMap
|
826 |
PriceCircularItemModelNew priceCircularItemModel = priceCircularItemModelMap
|
| 823 |
.get(fofoCatalogResponse.getCatalogId());
|
827 |
.get(fofoCatalogResponse.getCatalogId());
|
| 824 |
JSONObject childItem = doc.getJSONArray("_childDocuments_").getJSONObject(j);
|
828 |
JSONObject childItem = doc.getJSONArray("_childDocuments_").getJSONObject(j);
|
| 825 |
int itemId = childItem.getInt("itemId_i");
|
829 |
int itemId = childItem.getInt("itemId_i");
|
| 826 |
float sellingPrice = (float) childItem.getDouble("sellingPrice_f");
|
830 |
float sellingPrice = (float) childItem.getDouble("sellingPrice_f");
|
| 827 |
if (!fofoAvailabilityInfoMap.containsKey(itemId)) {
|
831 |
if (!fofoAvailabilityInfoMap.containsKey(itemId)) {
|
| Line 830... |
Line 834... |
| 830 |
.selectByItemWarehouse(itemId, warehouseId);
|
834 |
.selectByItemWarehouse(itemId, warehouseId);
|
| 831 |
List<SaholicPOItem> poItemAvailability = null;
|
835 |
List<SaholicPOItem> poItemAvailability = null;
|
| 832 |
if (poItemAvailabilityMap != null) {
|
836 |
if (poItemAvailabilityMap != null) {
|
| 833 |
poItemAvailability = poItemAvailabilityMap.get(itemId);
|
837 |
poItemAvailability = poItemAvailabilityMap.get(itemId);
|
| 834 |
}
|
838 |
}
|
| 835 |
fdi.setNlc(priceCircularItemModel == null ? 0 : priceCircularItemModel.getNetPrice());
|
- |
|
| 836 |
|
- |
|
| 837 |
fdi.setNlc(fdi.getNlc() == 0 ? sellingPrice : priceCircularItemModel.getNetPrice());
|
839 |
fdi.setNlc((float)priceCircularItemModel.getNlc());
|
| 838 |
|
840 |
|
| 839 |
for (SaholicCISTable saholicCISTable : currentAvailability) {
|
841 |
for (SaholicCISTable saholicCISTable : currentAvailability) {
|
| 840 |
saholicCISTable.setWarehouseName(
|
842 |
saholicCISTable.setWarehouseName(
|
| 841 |
ProfitMandiConstants.WAREHOUSE_MAP.get(saholicCISTable.getWarehouseFrom()));
|
843 |
ProfitMandiConstants.WAREHOUSE_MAP.get(saholicCISTable.getWarehouseFrom()));
|
| 842 |
}
|
844 |
}
|
| Line 934... |
Line 936... |
| 934 |
List<FofoAvailabilityInfo> availabilityList = fofoAvailabilityInfoMap.values().stream()
|
936 |
List<FofoAvailabilityInfo> availabilityList = fofoAvailabilityInfoMap.values().stream()
|
| 935 |
.sorted(Comparator.comparing(FofoAvailabilityInfo::getAvailability).reversed())
|
937 |
.sorted(Comparator.comparing(FofoAvailabilityInfo::getAvailability).reversed())
|
| 936 |
.collect(Collectors.toList());
|
938 |
.collect(Collectors.toList());
|
| 937 |
fofoCatalogResponse.setItems(availabilityList);
|
939 |
fofoCatalogResponse.setItems(availabilityList);
|
| 938 |
if (priceCircularItemModelMap.containsKey(fofoCatalogResponse.getCatalogId())) {
|
940 |
if (priceCircularItemModelMap.containsKey(fofoCatalogResponse.getCatalogId())) {
|
| 939 |
PriceCircularItemModel priceCircularItemModel = priceCircularItemModelMap
|
941 |
PriceCircularItemModelNew priceCircularItemModel = priceCircularItemModelMap
|
| 940 |
.get(fofoCatalogResponse.getCatalogId());
|
942 |
.get(fofoCatalogResponse.getCatalogId());
|
| 941 |
if (priceCircularItemModel.getSlabPayouts() != null) {
|
943 |
if (priceCircularItemModel.getSlabPayouts() != null) {
|
| 942 |
List<CreateOfferRequest> schemeOffers = new ArrayList<>();
|
944 |
List<CreateOfferRequest> schemeOffers = new ArrayList<>();
|
| 943 |
List<Map<Integer, Long>> slabPayouts = priceCircularItemModel.getSlabPayouts();
|
945 |
List<Map<Integer, AmountModel>> slabPayouts = priceCircularItemModel.getSlabPayouts();
|
| 944 |
Iterator<Map<Integer, Long>> iterator = slabPayouts.iterator();
|
946 |
Iterator<Map<Integer, AmountModel>> iterator = slabPayouts.iterator();
|
| 945 |
int iteratorCount = 0;
|
947 |
int iteratorCount = 0;
|
| 946 |
while (iterator.hasNext()) {
|
948 |
while (iterator.hasNext()) {
|
| 947 |
Map<Integer, Long> slabPayoutMap = iterator.next();
|
949 |
Map<Integer, AmountModel> slabPayoutMap = iterator.next();
|
| 948 |
if (slabPayoutMap != null) {
|
950 |
if (slabPayoutMap != null) {
|
| 949 |
schemeOffers.add(allSchemOffers.get(iteratorCount));
|
951 |
schemeOffers.add(allSchemOffers.get(iteratorCount));
|
| 950 |
} else {
|
952 |
} else {
|
| 951 |
iterator.remove();
|
953 |
iterator.remove();
|
| 952 |
}
|
954 |
}
|