Subversion Repositories SmartDukaan

Rev

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

Rev 24604 Rev 24606
Line 880... Line 880...
880
	}
880
	}
881
 
881
 
882
	public void dryRunSchemeReco() throws Exception {
882
	public void dryRunSchemeReco() throws Exception {
883
		List<UserWalletHistory> userWalletHistory = new ArrayList<>();
883
		List<UserWalletHistory> userWalletHistory = new ArrayList<>();
884
		List<SchemeInOut> rolledbackSios = new ArrayList<>();
884
		List<SchemeInOut> rolledbackSios = new ArrayList<>();
885
		Map<Integer, Integer> userWalletMap = userWalletRepository
885
		Map<Integer, Integer> userWalletMap = userWalletRepository.selectAll().stream()
886
				.selectByRetailerIds(
-
 
887
						fofoStoreRepository.selectAll().stream().map(x -> x.getId()).collect(Collectors.toSet()))
-
 
888
				.stream().collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
886
				.collect(Collectors.toMap(UserWallet::getUserId, UserWallet::getId));
889
		Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
887
		Map<Integer, SchemeType> schemeTypeMap = schemeRepository.selectAll().stream()
890
				.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
888
				.collect(Collectors.toMap(Scheme::getId, Scheme::getType));
891
		LocalDateTime startDate = LocalDate.of(2018, 9, 4).atStartOfDay();
889
		LocalDateTime startDate = LocalDate.of(2018, 9, 4).atStartOfDay();
892
		LocalDateTime endDate = LocalDate.now().atStartOfDay();
890
		LocalDateTime endDate = LocalDate.now().atStartOfDay();
893
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
891
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
Line 895... Line 893...
895
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
893
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
896
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
894
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
897
			float amountToRollback = 0;
895
			float amountToRollback = 0;
898
			List<FofoOrderItem> orderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
896
			List<FofoOrderItem> orderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
899
			orderItems.forEach(x -> {
897
			orderItems.forEach(x -> {
900
				inventorySerialNumberMap.putAll(x.getFofoLineItems().stream().filter(li->li.getSerialNumber()!=null)
898
				inventorySerialNumberMap.putAll(x.getFofoLineItems().stream().filter(li -> li.getSerialNumber() != null)
901
						.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
899
						.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
902
			});
900
			});
903
			if(inventorySerialNumberMap.size() > 0) {
901
			if (inventorySerialNumberMap.size() > 0) {
904
				List<SchemeInOut> sios = schemeInOutRepository
902
				List<SchemeInOut> sios = schemeInOutRepository
-
 
903
						.selectAllDuplicate(fofoOrder.getFofoId(),
905
						.selectAllDuplicate(fofoOrder.getFofoId(), new ArrayList<String>(inventorySerialNumberMap.values()))
904
								new ArrayList<String>(inventorySerialNumberMap.values()))
906
						.stream().filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
905
						.stream().filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
907
						.collect(Collectors.toList());
906
						.collect(Collectors.toList());
908
				LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
907
				LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
909
				UserWalletHistory uwh = new UserWalletHistory();
908
				UserWalletHistory uwh = new UserWalletHistory();
910
				for (SchemeInOut sio : sios) {
909
				for (SchemeInOut sio : sios) {
911
					String serialNumber = inventoryItemRepository.selectById(sio.getInventoryItemId()).getSerialNumber();
910
					String serialNumber = inventoryItemRepository.selectById(sio.getInventoryItemId())
-
 
911
							.getSerialNumber();
912
					sio.setRolledBackTimestamp(LocalDateTime.now());
912
					sio.setRolledBackTimestamp(LocalDateTime.now());
913
					amountToRollback += sio.getAmount();
913
					amountToRollback += sio.getAmount();
914
					sio.setSchemeType(SchemeType.OUT);
914
					sio.setSchemeType(SchemeType.OUT);
915
					sio.setSerialNumber(serialNumber);
915
					sio.setSerialNumber(serialNumber);
916
					sio.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
916
					sio.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);