| Line 2... |
Line 2... |
| 2 |
|
2 |
|
| 3 |
import java.text.MessageFormat;
|
3 |
import java.text.MessageFormat;
|
| 4 |
import java.time.LocalDate;
|
4 |
import java.time.LocalDate;
|
| 5 |
import java.time.LocalDateTime;
|
5 |
import java.time.LocalDateTime;
|
| 6 |
import java.util.ArrayList;
|
6 |
import java.util.ArrayList;
|
| - |
|
7 |
import java.util.Arrays;
|
| 7 |
import java.util.HashMap;
|
8 |
import java.util.HashMap;
|
| 8 |
import java.util.HashSet;
|
9 |
import java.util.HashSet;
|
| 9 |
import java.util.List;
|
10 |
import java.util.List;
|
| 10 |
import java.util.Map;
|
11 |
import java.util.Map;
|
| 11 |
import java.util.Set;
|
12 |
import java.util.Set;
|
| Line 59... |
Line 60... |
| 59 |
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
|
60 |
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
|
| 60 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
61 |
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
|
| 61 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
62 |
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
|
| 62 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
63 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
| 63 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
64 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| - |
|
65 |
import com.spice.profitmandi.service.inventory.PurchaseService;
|
| 64 |
import com.spice.profitmandi.service.wallet.WalletService;
|
66 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| 65 |
|
67 |
|
| 66 |
import in.shop2020.model.v1.order.WalletReferenceType;
|
68 |
import in.shop2020.model.v1.order.WalletReferenceType;
|
| 67 |
|
69 |
|
| 68 |
@Component
|
70 |
@Component
|
| Line 76... |
Line 78... |
| 76 |
|
78 |
|
| 77 |
@Autowired
|
79 |
@Autowired
|
| 78 |
private PartnerTypeChangeService partnerTypeChangeService;
|
80 |
private PartnerTypeChangeService partnerTypeChangeService;
|
| 79 |
|
81 |
|
| 80 |
@Autowired
|
82 |
@Autowired
|
| - |
|
83 |
private PurchaseService purchaseService;
|
| - |
|
84 |
|
| - |
|
85 |
@Autowired
|
| 81 |
private ScanRecordRepository scanRecordRepository;
|
86 |
private ScanRecordRepository scanRecordRepository;
|
| 82 |
|
87 |
|
| 83 |
@Autowired
|
88 |
@Autowired
|
| 84 |
private SessionFactory sessionFactory;
|
89 |
private SessionFactory sessionFactory;
|
| 85 |
|
90 |
|
| - |
|
91 |
private Set<Integer> tagIds = new HashSet<Integer>(Arrays.asList(4));
|
| - |
|
92 |
|
| 86 |
@Autowired
|
93 |
@Autowired
|
| 87 |
private SchemeRepository schemeRepository;
|
94 |
private SchemeRepository schemeRepository;
|
| 88 |
|
95 |
|
| 89 |
@Autowired
|
96 |
@Autowired
|
| 90 |
private PriceDropRepository priceDropRepository;
|
97 |
private PriceDropRepository priceDropRepository;
|
| Line 403... |
Line 410... |
| 403 |
if (schemes.isEmpty()) {
|
410 |
if (schemes.isEmpty()) {
|
| 404 |
return;
|
411 |
return;
|
| 405 |
}
|
412 |
}
|
| 406 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
|
413 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
|
| 407 |
|
414 |
|
| - |
|
415 |
Set<Integer> itemIds = inventoryItems.stream().map(x -> x.getItemId()).collect(Collectors.toSet());
|
| - |
|
416 |
LocalDateTime billingDate = purchaseService.getBillingDateOfPurchase(purchaseId);
|
| - |
|
417 |
Set<Integer> itemIdsSet = tagListingRepository.selectByItemIdsAndTagIds(itemIds, tagIds).stream()
|
| - |
|
418 |
.filter(x -> x.getEolDate().isAfter(billingDate)).map(x -> x.getItemId())
|
| - |
|
419 |
.collect(Collectors.toSet());
|
| 408 |
// Only consider inventory items that were not returned
|
420 |
// Only consider inventory items that were not returned
|
| - |
|
421 |
inventoryItems = inventoryItems.stream().filter(x -> itemIdsSet.contains(x.getItemId()))
|
| 409 |
inventoryItems = inventoryItems.stream().filter(x -> !x.getLastScanType().equals(ScanType.PURCHASE_RET_BAD)
|
422 |
.filter(x -> !x.getLastScanType().equals(ScanType.PURCHASE_RET_BAD))
|
| 410 |
&& !x.getLastScanType().equals(ScanType.PURCHASE_RET)).collect(Collectors.toList());
|
423 |
.filter(x -> !x.getLastScanType().equals(ScanType.PURCHASE_RET)).collect(Collectors.toList());
|
| 411 |
LOGGER.info(inventoryItems);
|
424 |
LOGGER.info(inventoryItems);
|
| 412 |
if (inventoryItems.size() == 0)
|
425 |
if (inventoryItems.size() == 0)
|
| 413 |
return;
|
426 |
return;
|
| 414 |
Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes,
|
427 |
Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes,
|
| 415 |
inventoryItems);
|
428 |
inventoryItems);
|
| 416 |
|
429 |
|
| 417 |
if (inventoryItemSchemesMap.isEmpty()) {
|
430 |
if (inventoryItemSchemesMap.isEmpty()) {
|
| 418 |
return;
|
431 |
return;
|
| 419 |
}
|
432 |
}
|
| 420 |
Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
|
433 |
Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
|
| 421 |
Set<Integer> itemIds = new HashSet<>();
|
- |
|
| 422 |
|
434 |
|
| 423 |
for (Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()) {
|
435 |
for (Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()) {
|
| 424 |
Set<Scheme> allSchemes = new HashSet<>();
|
436 |
Set<Scheme> allSchemes = new HashSet<>();
|
| 425 |
for (Scheme scheme : inventoryItemSchemesEntry.getValue()) {
|
437 |
for (Scheme scheme : inventoryItemSchemesEntry.getValue()) {
|
| 426 |
allSchemes.add(scheme);
|
438 |
allSchemes.add(scheme);
|
| 427 |
}
|
439 |
}
|
| 428 |
allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
|
440 |
allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
|
| 429 |
itemIds.add(inventoryItemSchemesEntry.getKey().getItemId());
|
- |
|
| 430 |
}
|
441 |
}
|
| 431 |
|
442 |
|
| - |
|
443 |
//
|
| - |
|
444 |
|
| 432 |
int itemsCount = 0;
|
445 |
int itemsCount = 0;
|
| 433 |
for (Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap
|
446 |
for (Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap
|
| 434 |
.entrySet()) {
|
447 |
.entrySet()) {
|
| 435 |
float inventoryItemCashback = 0;
|
448 |
float inventoryItemCashback = 0;
|
| 436 |
for (Scheme scheme : allInventoryItemSchemesEntry.getValue()) {
|
449 |
for (Scheme scheme : allInventoryItemSchemesEntry.getValue()) {
|
| Line 524... |
Line 537... |
| 524 |
Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
|
537 |
Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
|
| 525 |
.collect(Collectors.toSet());
|
538 |
.collect(Collectors.toSet());
|
| 526 |
Set<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
539 |
Set<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
| 527 |
.filter(x -> x.getSerialNumber() != null && !x.getSerialNumber().equals(""))
|
540 |
.filter(x -> x.getSerialNumber() != null && !x.getSerialNumber().equals(""))
|
| 528 |
.collect(Collectors.toSet());
|
541 |
.collect(Collectors.toSet());
|
| - |
|
542 |
Set<Integer> itemIds = inventoryItems.stream().map(x -> x.getItemId()).collect(Collectors.toSet());
|
| - |
|
543 |
|
| - |
|
544 |
Set<Integer> itemIdsSet = tagListingRepository.selectByItemIdsAndTagIds(itemIds, tagIds).stream()
|
| - |
|
545 |
.filter(x -> x.getEolDate().isAfter(fofoOrder.getCreateTimestamp())).map(x -> x.getItemId())
|
| - |
|
546 |
.collect(Collectors.toSet());
|
| - |
|
547 |
// Only consider inventory items that were not returned
|
| - |
|
548 |
inventoryItems = inventoryItems.stream().filter(x -> itemIdsSet.contains(x.getItemId()))
|
| - |
|
549 |
.collect(Collectors.toSet());
|
| 529 |
|
550 |
|
| 530 |
if (inventoryItems.size() == 0) {
|
551 |
if (inventoryItems.size() == 0) {
|
| 531 |
return;
|
552 |
return;
|
| 532 |
}
|
553 |
}
|
| 533 |
|
554 |
|
| Line 751... |
Line 772... |
| 751 |
Map<Integer, Float> itemCashbackMap = new HashMap<>();
|
772 |
Map<Integer, Float> itemCashbackMap = new HashMap<>();
|
| 752 |
Map<Integer, Scheme> cashbackSchemesMap = schemeRepository
|
773 |
Map<Integer, Scheme> cashbackSchemesMap = schemeRepository
|
| 753 |
.selectActiveAll(SchemeType.OUT, PartnerType.ALL, LocalDateTime.now(), true).stream()
|
774 |
.selectActiveAll(SchemeType.OUT, PartnerType.ALL, LocalDateTime.now(), true).stream()
|
| 754 |
.filter(x -> x.getAmountType().equals(AmountType.FIXED))
|
775 |
.filter(x -> x.getAmountType().equals(AmountType.FIXED))
|
| 755 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
776 |
.collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| 756 |
if(cashbackSchemesMap.size() > 0) {
|
777 |
if (cashbackSchemesMap.size() > 0) {
|
| 757 |
List<SchemeItem> schemeItems = schemeItemRepository.selectBySchemeIds(cashbackSchemesMap.keySet());
|
778 |
List<SchemeItem> schemeItems = schemeItemRepository.selectBySchemeIds(cashbackSchemesMap.keySet());
|
| 758 |
schemeItems.stream().forEach(x -> {
|
779 |
schemeItems.stream().forEach(x -> {
|
| 759 |
itemCashbackMap.put(x.getItemId(), cashbackSchemesMap.get(x.getSchemeId()).getAmount());
|
780 |
itemCashbackMap.put(x.getItemId(), cashbackSchemesMap.get(x.getSchemeId()).getAmount());
|
| 760 |
});
|
781 |
});
|
| 761 |
}
|
782 |
}
|
| 762 |
//A107FD Model needs to removed
|
783 |
// A107FD Model needs to removed
|
| 763 |
itemCashbackMap.remove(30211);
|
784 |
itemCashbackMap.remove(30211);
|
| 764 |
itemCashbackMap.remove(30212);
|
785 |
itemCashbackMap.remove(30212);
|
| 765 |
itemCashbackMap.remove(30213);
|
786 |
itemCashbackMap.remove(30213);
|
| 766 |
itemCashbackMap.remove(30756);
|
787 |
itemCashbackMap.remove(30756);
|
| 767 |
return itemCashbackMap;
|
788 |
return itemCashbackMap;
|