Subversion Repositories SmartDukaan

Rev

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

Rev 26713 Rev 26722
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;