| Line 622... |
Line 622... |
| 622 |
return rollout;
|
622 |
return rollout;
|
| 623 |
}
|
623 |
}
|
| 624 |
|
624 |
|
| 625 |
@Override
|
625 |
@Override
|
| 626 |
public void processActivationtOffer(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
|
626 |
public void processActivationtOffer(CreateOfferRequest createOfferRequest) throws ProfitMandiBusinessException {
|
| 627 |
//List<OfferRowModel> offerRowModels = new ArrayList<>();
|
- |
|
| 628 |
List<OfferPayout> offerPayouts = offerPayoutRepository.selectAllByOfferId(createOfferRequest.getId());
|
627 |
List<OfferPayout> offerPayouts = offerPayoutRepository.selectAllByOfferId(createOfferRequest.getId());
|
| 629 |
List<ItemCriteriaPayout> itemCriteriaPayouts = createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts();
|
628 |
List<ItemCriteriaPayout> itemCriteriaPayouts = createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts();
|
| 630 |
Map<Integer, ItemCriteriaPayout> itemCriteriaPayoutMap = itemCriteriaPayouts.stream().collect(Collectors.toMap(x -> x.getItemCriteria().getId(), x -> x));
|
629 |
Map<Integer, ItemCriteriaPayout> itemCriteriaPayoutMap = itemCriteriaPayouts.stream().collect(Collectors.toMap(x -> x.getItemCriteria().getId(), x -> x));
|
| 631 |
LOGGER.info("itemCriteriaPayoutMap {}", itemCriteriaPayoutMap);
|
630 |
LOGGER.info("itemCriteriaPayoutMap {}", itemCriteriaPayoutMap);
|
| 632 |
LOGGER.info("offerPayouts {}", offerPayouts);
|
631 |
LOGGER.info("offerPayouts {}", offerPayouts);
|
| 633 |
Map<Integer, Map<Integer, Double>> fixedSlabCriteriaPartnerMap = offerPayouts.stream().filter(x -> itemCriteriaPayoutMap.get((int) x.getCriteriaId()).getAmountType().equals(AmountType.SLAB_FIXED))
|
632 |
Map<Integer, Map<Integer, Double>> fixedSlabCriteriaPartnerMap = offerPayouts.stream().filter(x -> itemCriteriaPayoutMap.get((int) x.getCriteriaId()).getAmountType().equals(AmountType.SLAB_FIXED))
|
| 634 |
.collect(Collectors.groupingBy(x -> (int) x.getCriteriaId(), Collectors.groupingBy(x -> (int) x.getFofoId(), Collectors.summingDouble(x -> x.getSlabAmount()))));
|
633 |
.collect(Collectors.groupingBy(x -> (int) x.getCriteriaId(), Collectors.groupingBy(x -> (int) x.getFofoId(), Collectors.summingDouble(x -> x.getSlabAmount()))));
|
| 635 |
|
634 |
|
| 636 |
|
635 |
|
| 637 |
Map<String, Double> serialNumberPaid = offerPayouts.stream().filter(x -> x.getRejectTimestamp() == null).collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.summingDouble(x -> x.getSlabAmount())));
|
636 |
Map<String, Double> serialNumberPaid = offerPayouts.stream().filter(x -> x.getRejectTimestamp() == null).collect(Collectors.groupingBy(x -> x.getSerialNumber(), Collectors.summingDouble(x -> x.getSlabAmount())));
|
| 638 |
/*if (offerPayouts.size() > 0) {
|
- |
|
| 639 |
throw new ProfitMandiBusinessException("Offer Already Processed", "Offer Already Processed", "Offer Already Processed");
|
- |
|
| 640 |
}*/
|
- |
|
| 641 |
Map<Integer, Map<Integer, List<FofoOrderItem>>> criteriaPartnerwiseTertiary = offerRepository.getCriteriaWisePartnerTertiary(createOfferRequest);
|
637 |
Map<Integer, Map<Integer, List<FofoOrderItem>>> criteriaPartnerwiseTertiary = offerRepository.getCriteriaWisePartnerTertiary(createOfferRequest);
|
| 642 |
|
638 |
|
| 643 |
|
639 |
|
| 644 |
final Set<String> activatedImeis;
|
640 |
final Set<String> activatedImeis;
|
| 645 |
final Set<String> missingImeis;
|
- |
|
| 646 |
if (createOfferRequest.getSchemeType().equals(OfferSchemeType.ACTIVATION)) {
|
641 |
if (createOfferRequest.getSchemeType().equals(OfferSchemeType.ACTIVATION)) {
|
| 647 |
//All Serialnumbers for all eligible retailers
|
642 |
//All Serialnumbers for all eligible retailers
|
| 648 |
List<String> serialNumbers = criteriaPartnerwiseTertiary.entrySet().stream().flatMap(x -> x.getValue().entrySet().stream().flatMap(foiList -> foiList.getValue().stream()))
|
643 |
List<String> serialNumbers = criteriaPartnerwiseTertiary.entrySet().stream().flatMap(x -> x.getValue().entrySet().stream().flatMap(foiList -> foiList.getValue().stream()))
|
| 649 |
.flatMap(y -> y.getFofoLineItems().stream()).filter(fli -> fli.getSerialNumber() != null)
|
644 |
.flatMap(y -> y.getFofoLineItems().stream()).filter(fli -> fli.getSerialNumber() != null)
|
| 650 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
645 |
.map(x -> x.getSerialNumber()).collect(Collectors.toList());
|
| 651 |
if (serialNumbers.size() > 0) {
|
646 |
if (serialNumbers.size() > 0) {
|
| 652 |
activatedImeis = activatedImeiRepository.selectBySerialNumbers(serialNumbers).stream()
|
647 |
activatedImeis = activatedImeiRepository.selectBySerialNumbers(serialNumbers).stream()
|
| 653 |
.filter(x -> createOfferRequest.isWithinRange(x.getActivationTimestamp()))
|
648 |
.filter(x -> createOfferRequest.isWithinRange(x.getActivationTimestamp()))
|
| 654 |
.map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
649 |
.map(x -> x.getSerialNumber()).collect(Collectors.toSet());
|
| 655 |
//missingImeis = serialNumbers.stream().filter(x -> !activatedImeis.contains(x)).collect(Collectors.toSet());
|
- |
|
| 656 |
//activatedImeis.addAll(missingImeis);
|
- |
|
| 657 |
//serialNumbers.removeAll(activatedImeis);
|
- |
|
| 658 |
} else {
|
650 |
} else {
|
| 659 |
activatedImeis = null;
|
651 |
activatedImeis = null;
|
| 660 |
}
|
652 |
}
|
| 661 |
// TODO Amit
|
- |
|
| 662 |
/**
|
- |
|
| 663 |
* Missing imeis are considered as activated as long as payout calculations are
|
- |
|
| 664 |
* concerned - Add flag if calculations are meant for final payout(Wherein
|
- |
|
| 665 |
* missing imeis are no longer considered to be activated)
|
- |
|
| 666 |
**/
|
- |
|
| 667 |
} else {
|
653 |
} else {
|
| 668 |
activatedImeis = null;
|
654 |
activatedImeis = null;
|
| 669 |
}
|
655 |
}
|
| 670 |
|
656 |
|
| 671 |
Map<Integer, Integer> userBaseQtyMap = new HashMap<>();
|
657 |
Map<Integer, Integer> userBaseQtyMap = new HashMap<>();
|
| Line 701... |
Line 687... |
| 701 |
|
687 |
|
| 702 |
}
|
688 |
}
|
| 703 |
|
689 |
|
| 704 |
}
|
690 |
}
|
| 705 |
}
|
691 |
}
|
| 706 |
//Map<Integer, Double> totalPurchaseValueMap = null;
|
- |
|
| 707 |
if (createOfferRequest.getSellinPercentage() > 0) {
|
- |
|
| 708 |
/*List<Order> purchaseOrders = orderRepository.selectOrdersBetweenDates(fofoIds, "billingTimestamp",
|
- |
|
| 709 |
createOfferRequest.getStartDate(), createOfferRequest.getEndDate());
|
- |
|
| 710 |
Map<Integer, Double> totalPurchaseValueMap = purchaseOrders.stream().collect(
|
- |
|
| 711 |
Collectors.groupingBy(x -> x.getRetailerId(), Collectors.summingDouble(x -> x.getWalletAmount())));*/
|
- |
|
| 712 |
}
|
- |
|
| 713 |
|
- |
|
| 714 |
|
692 |
|
| 715 |
//As of now eligible sale is considered to be without special criteria like brand/
|
693 |
//As of now eligible sale is considered to be without special criteria like brand/
|
| 716 |
for (ItemCriteriaPayout itemCriteriaPayout : createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts()) {
|
694 |
for (ItemCriteriaPayout itemCriteriaPayout : createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts()) {
|
| 717 |
int criteriaId = itemCriteriaPayout.getItemCriteria().getId();
|
695 |
int criteriaId = itemCriteriaPayout.getItemCriteria().getId();
|
| 718 |
Map<Integer, List<FofoOrderItem>> ordersMap = criteriaPartnerwiseTertiary.get(criteriaId);
|
696 |
Map<Integer, List<FofoOrderItem>> ordersMap = criteriaPartnerwiseTertiary.get(criteriaId);
|
| Line 838... |
Line 816... |
| 838 |
}
|
816 |
}
|
| 839 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
817 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
| 840 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
818 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
| 841 |
}
|
819 |
}
|
| 842 |
|
820 |
|
| - |
|
821 |
private void extracted(CreateOfferRequest createOfferRequest, Map<String, Double> serialNumberPaid, ItemCriteriaPayout itemCriteriaPayout, int criteriaId, double totalRolloutAmount, int fofoId, Map<FofoLineItem, Integer> lineItemValueMap, float eligiblePayoutValue) throws ProfitMandiBusinessException {
|
| - |
|
822 |
List<Integer> inventoryItemIds = lineItemValueMap.keySet().stream().map(x -> x.getInventoryItemId()).collect(Collectors.toList());
|
| - |
|
823 |
Map<Integer, InventoryItem> inventoryItemsMap = inventoryItemRepository.selectAllByIds(inventoryItemIds).stream().collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| - |
|
824 |
for (Map.Entry<FofoLineItem, Integer> lineItemValueEntry : lineItemValueMap.entrySet()) {
|
| - |
|
825 |
double amount = 0;
|
| - |
|
826 |
int totalDpValue = lineItemValueMap.values().stream().collect(Collectors.summingInt(x -> x));
|
| - |
|
827 |
LOGGER.info("Total DP Value {}", totalDpValue);
|
| - |
|
828 |
if (AmountType.SLAB_FIXED.equals(itemCriteriaPayout.getAmountType())) {
|
| - |
|
829 |
amount = (eligiblePayoutValue * lineItemValueEntry.getValue()) / totalDpValue;
|
| - |
|
830 |
LOGGER.info("Amount - {}", amount);
|
| - |
|
831 |
//Fixed slab should be treated as fixed after payout
|
| - |
|
832 |
} else {
|
| - |
|
833 |
amount = eligiblePayoutValue;
|
| - |
|
834 |
//Fixed slab has already taken care of that amount;
|
| - |
|
835 |
if (serialNumberPaid.containsKey(lineItemValueEntry.getKey().getSerialNumber())) {
|
| - |
|
836 |
amount = amount - serialNumberPaid.get(lineItemValueEntry.getKey().getSerialNumber());
|
| - |
|
837 |
}
|
| - |
|
838 |
}
|
| - |
|
839 |
LOGGER.info("Amount - {}", amount);
|
| - |
|
840 |
//ignore reasonably small
|
| - |
|
841 |
if (amount < Utils.DOUBLE_EPSILON) continue;
|
| - |
|
842 |
AmountModel amountModel = new AmountModel();
|
| - |
|
843 |
amountModel.setAmountType(itemCriteriaPayout.getAmountType());
|
| - |
|
844 |
amountModel.setAmount(amount);
|
| - |
|
845 |
amountModel.setDiscount(createOfferRequest.isDiscount());
|
| - |
|
846 |
InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(inventoryItemsMap.get(lineItemValueEntry.getKey().getInventoryItemId()));
|
| - |
|
847 |
double rolloutAmount = inventoryPayoutModel.getRolloutAmount(amountModel);
|
| - |
|
848 |
totalRolloutAmount += rolloutAmount;
|
| - |
|
849 |
|
| - |
|
850 |
OfferPayout offerPayout = new OfferPayout(fofoId, createOfferRequest.getId(), criteriaId, amount, lineItemValueEntry.getKey().getSerialNumber(), rolloutAmount, SchemePayoutStatus.CREDITED, createOfferRequest.getDescription(), LocalDateTime.now());
|
| - |
|
851 |
//offerPayout.setInventoryItemId(inventoryItemSaleModelsMap.get(lineItemValueEntry.getKey().getInventoryItemId()));
|
| - |
|
852 |
offerPayoutRepository.persist(offerPayout);
|
| - |
|
853 |
}
|
| - |
|
854 |
walletService.addAmountToWallet((int) fofoId, createOfferRequest.getId(), WalletReferenceType.ADDITIONAL_SCHEME, createOfferRequest.getDescription(), (float) totalRolloutAmount, LocalDateTime.now());
|
| - |
|
855 |
}
|
| - |
|
856 |
|
| 843 |
@Override
|
857 |
@Override
|
| 844 |
public void processSellin(CreateOfferRequest createOfferRequest) throws Exception {
|
858 |
public void processSellin(CreateOfferRequest createOfferRequest) throws Exception {
|
| 845 |
|
859 |
|
| 846 |
//List<OfferRowModel> offerRowModels = new ArrayList<>();
|
860 |
//List<OfferRowModel> offerRowModels = new ArrayList<>();
|
| 847 |
List<OfferPayout> offerPayouts = offerPayoutRepository.selectAllByOfferId(createOfferRequest.getId());
|
861 |
List<OfferPayout> offerPayouts = offerPayoutRepository.selectAllByOfferId(createOfferRequest.getId());
|
| Line 876... |
Line 890... |
| 876 |
|
890 |
|
| 877 |
LOGGER.info("Processing sellin");
|
891 |
LOGGER.info("Processing sellin");
|
| 878 |
List<OfferPayout> offerPayoutsNew = new ArrayList<>();
|
892 |
List<OfferPayout> offerPayoutsNew = new ArrayList<>();
|
| 879 |
for (ItemCriteriaPayout itemCriteriaPayout : createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts()) {
|
893 |
for (ItemCriteriaPayout itemCriteriaPayout : createOfferRequest.getTargetSlabs().get(0).getItemCriteriaPayouts()) {
|
| 880 |
int criteriaId = itemCriteriaPayout.getItemCriteria().getId();
|
894 |
int criteriaId = itemCriteriaPayout.getItemCriteria().getId();
|
| 881 |
LOGGER.info("Criteria Id - {}", criteriaId);
|
- |
|
| 882 |
Map<Integer, List<Order>> ordersMap = criteriaOrdersMap.get(criteriaId).entrySet().stream()
|
895 |
Map<Integer, List<Order>> ordersMap = criteriaOrdersMap.get(criteriaId).entrySet().stream()
|
| 883 |
.filter(x -> !fofoIds.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
896 |
.filter(x -> !fofoIds.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
| 884 |
for (Map.Entry<Integer, List<Order>> orderEntry : ordersMap.entrySet()) {
|
897 |
for (Map.Entry<Integer, List<Order>> orderEntry : ordersMap.entrySet()) {
|
| 885 |
int fofoId = orderEntry.getKey();
|
898 |
int fofoId = orderEntry.getKey();
|
| 886 |
//CustomRetailer retailer = retailerService.getAllFofoRetailers().get(fofoId);
|
899 |
//CustomRetailer retailer = retailerService.getAllFofoRetailers().get(fofoId);
|
| 887 |
List<Order> orders = orderEntry.getValue();
|
900 |
List<Order> orders = orderEntry.getValue();
|
| 888 |
Set<String> returnedSerialNumbers = orders.stream().filter(x -> x.getSerialNumber() != null).flatMap(x -> x.getReturnedImeis().stream()).collect(Collectors.toSet());
|
901 |
Set<String> returnedSerialNumbers = orders.stream().filter(x -> x.getSerialNumber() != null).flatMap(x -> x.getReturnedImeis().stream()).collect(Collectors.toSet());
|
| 889 |
int totalQty = orders.stream().collect(Collectors.summingInt(x -> (x.getLineItem().getQuantity() - x.getLineItem().getReturnQty())));
|
902 |
int totalQty = orders.stream().collect(Collectors.summingInt(x -> (x.getLineItem().getQuantity() - x.getLineItem().getReturnQty())));
|
| 890 |
LOGGER.info("LineItems = {}", orders.stream().map(x -> x.getLineItem().getId()).collect(Collectors.toList()));
|
- |
|
| 891 |
int totalValue = orders.stream().collect(Collectors.summingInt(x -> Math.round(x.getLineItem().
|
903 |
int totalValue = orders.stream().collect(Collectors.summingInt(x -> Math.round(x.getLineItem().
|
| 892 |
getUnitPrice() * (x.getLineItem().getQuantity() - x.getLineItem().getReturnQty()))));
|
904 |
getUnitPrice() * (x.getLineItem().getQuantity() - x.getLineItem().getReturnQty()))));
|
| 893 |
int totalBaseQty = totalQty;
|
905 |
int totalBaseQty = totalQty;
|
| 894 |
int totalBaseValue = totalValue;
|
906 |
int totalBaseValue = totalValue;
|
| 895 |
if (userBaseCriteriaOrdersMap != null) {
|
907 |
if (userBaseCriteriaOrdersMap != null) {
|
| Line 908... |
Line 920... |
| 908 |
purchasedValue = totalBaseQty;
|
920 |
purchasedValue = totalBaseQty;
|
| 909 |
}
|
921 |
}
|
| 910 |
PayoutSlab currentSlab = itemCriteriaPayout.getPayoutSlabs().stream()
|
922 |
PayoutSlab currentSlab = itemCriteriaPayout.getPayoutSlabs().stream()
|
| 911 |
.filter(x -> x.getOnwardsAmount() <= purchasedValue).max(Comparator.comparing(x
|
923 |
.filter(x -> x.getOnwardsAmount() <= purchasedValue).max(Comparator.comparing(x
|
| 912 |
-> x.getOnwardsAmount())).orElse(null);
|
924 |
-> x.getOnwardsAmount())).orElse(null);
|
| 913 |
int targetAchieved = currentSlab ==
|
- |
|
| 914 |
null ? 0 : currentSlab.getOnwardsAmount();
|
- |
|
| 915 |
|
925 |
|
| 916 |
//TODO-- payouts handling is here
|
926 |
//TODO-- payouts handling is here
|
| 917 |
if (currentSlab == null) continue;
|
927 |
if (currentSlab == null) continue;
|
| 918 |
//Need to remove hardcoding on tax
|
928 |
//Need to remove hardcoding on tax
|
| 919 |
List<Integer> orderIds = orders.stream().map(x -> x.getId()).collect(Collectors.toList());
|
929 |
List<Integer> orderIds = orders.stream().map(x -> x.getId()).collect(Collectors.toList());
|
| Line 936... |
Line 946... |
| 936 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
946 |
Map<String, LineItem> serialNumberMap = lineItemImeisRepository.selectByLineItemIds(new ArrayList<>(lineItemMap.keySet()))
|
| 937 |
.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> lineItemMap.get(x.getLineItemId()), (x1, x2) -> x1.getId() > x2.getId() ? x1 : x2));
|
947 |
.stream().collect(Collectors.toMap(x -> x.getSerialNumber(), x -> lineItemMap.get(x.getLineItemId()), (x1, x2) -> x1.getId() > x2.getId() ? x1 : x2));
|
| 938 |
|
948 |
|
| 939 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
949 |
serialNumberMap = serialNumberMap.entrySet().stream().filter(x -> serialNumbers.contains(x.getKey())).collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
|
| 940 |
|
950 |
|
| - |
|
951 |
Map<String, InventoryItem> serialNumberInventoryItemMap = this.getInventoryItemMap(fofoId, serialNumberMap);
|
| - |
|
952 |
//Continue if all imeis havent been grned
|
| - |
|
953 |
if(serialNumberInventoryItemMap.size() < serialNumberCountMap.size()) continue;
|
| - |
|
954 |
|
| 941 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
955 |
LOGGER.info("serialNumberMap {}", serialNumberMap);
|
| 942 |
double amount = 0;
|
956 |
double amount = 0;
|
| 943 |
int lineItemsValue = serialNumberMap.values().stream().collect(Collectors.summingInt(x -> x.getUnitPrice().intValue()));
|
957 |
int lineItemsValue = serialNumberMap.values().stream().collect(Collectors.summingInt(x -> x.getUnitPrice().intValue()));
|
| 944 |
LOGGER.info("lineItemsValue - {}, totalValue - {}", lineItemsValue, totalValue);
|
958 |
LOGGER.info("lineItemsValue - {}, totalValue - {}", lineItemsValue, totalValue);
|
| 945 |
for (Map.Entry<String, LineItem> entry : serialNumberMap.entrySet()) {
|
959 |
for (Map.Entry<String, LineItem> entry : serialNumberMap.entrySet()) {
|
| Line 954... |
Line 968... |
| 954 |
LOGGER.info("Serial no - {}, unitPrice - {}, amount - {}", entry.getKey(), lineItem.getUnitPrice(), amount);
|
968 |
LOGGER.info("Serial no - {}, unitPrice - {}, amount - {}", entry.getKey(), lineItem.getUnitPrice(), amount);
|
| 955 |
} else {
|
969 |
} else {
|
| 956 |
//per unit amount
|
970 |
//per unit amount
|
| 957 |
amount = currentSlab.getPayoutAmount();
|
971 |
amount = currentSlab.getPayoutAmount();
|
| 958 |
}
|
972 |
}
|
| - |
|
973 |
AmountModel amountModel = new AmountModel();
|
| - |
|
974 |
amountModel.setAmountType(itemCriteriaPayout.getAmountType());
|
| - |
|
975 |
amountModel.setAmount(amount);
|
| - |
|
976 |
amountModel.setDiscount(createOfferRequest.isDiscount());
|
| - |
|
977 |
InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(serialNumberInventoryItemMap.get(entry.getKey()));
|
| - |
|
978 |
double rolloutAmount = inventoryPayoutModel.getRolloutAmount(amountModel);
|
| 959 |
if (fofoIds.contains(Long.valueOf(fofoId))) continue;
|
979 |
if (fofoIds.contains(Long.valueOf(fofoId))) continue;
|
| 960 |
OfferPayout offerPayout = new OfferPayout(fofoId, createOfferRequest.getId(), criteriaId, currentSlab.getPayoutAmount(), entry.getKey(), amount, SchemePayoutStatus.CREDITED, createOfferRequest.getDescription(), LocalDateTime.now());
|
980 |
OfferPayout offerPayout = new OfferPayout(fofoId, createOfferRequest.getId(), criteriaId, currentSlab.getPayoutAmount(), entry.getKey(), rolloutAmount, SchemePayoutStatus.CREDITED, createOfferRequest.getDescription(), LocalDateTime.now());
|
| 961 |
//offerPayout.setLineItemId();
|
981 |
//offerPayout.setLineItemId();
|
| 962 |
offerPayoutRepository.persist(offerPayout);
|
982 |
offerPayoutRepository.persist(offerPayout);
|
| 963 |
offerPayoutsNew.add(offerPayout);
|
983 |
offerPayoutsNew.add(offerPayout);
|
| 964 |
}
|
984 |
}
|
| 965 |
|
- |
|
| 966 |
}
|
985 |
}
|
| 967 |
}
|
986 |
}
|
| 968 |
Map<Long, Double> offerPayoutMap = offerPayoutsNew.stream().collect(Collectors.groupingBy(x -> x.getFofoId(), Collectors.summingDouble(x -> x.getAmount())));
|
987 |
Map<Long, Double> offerPayoutMap = offerPayoutsNew.stream().collect(Collectors.groupingBy(x -> x.getFofoId(), Collectors.summingDouble(x -> x.getAmount())));
|
| 969 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutMap.entrySet()) {
|
988 |
for (Map.Entry<Long, Double> offerPayoutEntry : offerPayoutMap.entrySet()) {
|
| 970 |
long fofoId = offerPayoutEntry.getKey();
|
989 |
long fofoId = offerPayoutEntry.getKey();
|
| Line 972... |
Line 991... |
| 972 |
walletService.addAmountToWallet((int) fofoId, createOfferRequest.getId(), WalletReferenceType.ADDITIONAL_SCHEME, createOfferRequest.getDescription(), (float) amountToCredit, LocalDateTime.now());
|
991 |
walletService.addAmountToWallet((int) fofoId, createOfferRequest.getId(), WalletReferenceType.ADDITIONAL_SCHEME, createOfferRequest.getDescription(), (float) amountToCredit, LocalDateTime.now());
|
| 973 |
}
|
992 |
}
|
| 974 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
993 |
Offer offer = offerRepository.selectById(createOfferRequest.getId());
|
| 975 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
994 |
offer.setProcessedTimestamp(LocalDateTime.now());
|
| 976 |
}
|
995 |
}
|
| - |
|
996 |
|
| - |
|
997 |
private Map<String, InventoryItem> getInventoryItemMap(int fofoId, Map<String, LineItem> serialNumberMap) {
|
| - |
|
998 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectBySerialNumbers(serialNumberMap.keySet());
|
| - |
|
999 |
inventoryItems = inventoryItems.stream().filter(x->x.getFofoId()== fofoId).collect(Collectors.toList());
|
| - |
|
1000 |
Map<String,InventoryItem> inventoryItemMap = inventoryItems.stream().collect(Collectors.toMap(x->x.getSerialNumber(), x->x, (u,v)->v.getCreateTimestamp().isAfter(u.getCreateTimestamp()) ? v : u));
|
| - |
|
1001 |
return inventoryItemMap;
|
| - |
|
1002 |
}
|
| 977 |
}
|
1003 |
}
|