Subversion Repositories SmartDukaan

Rev

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

Rev 28416 Rev 28417
Line 740... Line 740...
740
	// Always being called from cancel order means no SCHEME IN is considered
740
	// Always being called from cancel order means no SCHEME IN is considered
741
	public void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason,
741
	public void reverseSchemes(List<InventoryItem> inventoryItems, int reversalReference, String reversalReason,
742
			SchemeType schemeType) throws ProfitMandiBusinessException {
742
			SchemeType schemeType) throws ProfitMandiBusinessException {
743
		Map<Integer, InventoryItem> inventoryItemsMap = inventoryItems.stream()
743
		Map<Integer, InventoryItem> inventoryItemsMap = inventoryItems.stream()
744
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
744
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
-
 
745
		LOGGER.info("inventoryItems" + inventoryItems);
-
 
746
 
745
		List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(inventoryItemsMap.keySet());
747
		List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(inventoryItemsMap.keySet());
746
		LOGGER.info("schemeInOuts" + schemeInOuts);
748
		LOGGER.info("schemeInOuts" + schemeInOuts);
-
 
749
		float amountToRollback = 0;
747
 
750
 
-
 
751
		if (!schemeInOuts.isEmpty()) {
748
		List<Integer> schemeIds = schemeInOuts.stream().map(x -> x.getSchemeId()).collect(Collectors.toList());
752
			List<Integer> schemeIds = schemeInOuts.stream().map(x -> x.getSchemeId()).collect(Collectors.toList());
749
		LOGGER.info("schemeIds" + schemeIds);
753
			LOGGER.info("schemeIds" + schemeIds);
750
 
754
 
751
		float amountToRollback = 0;
-
 
752
		Map<Integer, Scheme> schemesMap = schemeRepository.selectBySchemeIds(schemeIds, 0, schemeIds.size()).stream()
755
			Map<Integer, Scheme> schemesMap = schemeRepository.selectBySchemeIds(schemeIds, 0, schemeIds.size())
753
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
756
					.stream().collect(Collectors.toMap(x -> x.getId(), x -> x));
754
		for (SchemeInOut schemeInOut : schemeInOuts) {
757
			for (SchemeInOut schemeInOut : schemeInOuts) {
755
			Scheme scheme = schemesMap.get(schemeInOut.getSchemeId());
758
				Scheme scheme = schemesMap.get(schemeInOut.getSchemeId());
756
			if (scheme.getType().equals(schemeType)) {
759
				if (scheme.getType().equals(schemeType)) {
757
				if (schemeInOut.getRolledBackTimestamp() == null) {
760
					if (schemeInOut.getRolledBackTimestamp() == null) {
758
					schemeInOut.setRolledBackTimestamp(LocalDateTime.now());
761
						schemeInOut.setRolledBackTimestamp(LocalDateTime.now());
759
					if (schemeInOut.getStatus().equals(SchemePayoutStatus.CREDITED)) {
762
						if (schemeInOut.getStatus().equals(SchemePayoutStatus.CREDITED)) {
760
						amountToRollback += schemeInOut.getAmount();
763
							amountToRollback += schemeInOut.getAmount();
-
 
764
						}
-
 
765
						schemeInOut.setStatus(SchemePayoutStatus.REJECTED);
-
 
766
						schemeInOut.setStatusDescription(reversalReason);
761
					}
767
					}
762
					schemeInOut.setStatus(SchemePayoutStatus.REJECTED);
-
 
763
					schemeInOut.setStatusDescription(reversalReason);
-
 
764
				}
768
				}
765
			}
769
			}
-
 
770
 
766
		}
771
		}
767
		int fofoId = inventoryItems.get(0).getFofoId();
772
		int fofoId = inventoryItems.get(0).getFofoId();
768
		WalletReferenceType walletReferenceType = schemeType.equals(SchemeType.OUT) ? WalletReferenceType.SCHEME_OUT
773
		WalletReferenceType walletReferenceType = schemeType.equals(SchemeType.OUT) ? WalletReferenceType.SCHEME_OUT
769
				: schemeType.equals(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT
774
				: schemeType.equals(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT
770
						: WalletReferenceType.ACTIVATION_SCHEME;
775
						: WalletReferenceType.ACTIVATION_SCHEME;