| 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
|