Subversion Repositories SmartDukaan

Rev

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

Rev 24594 Rev 24598
Line 891... Line 891...
891
		LocalDateTime startDate = LocalDate.of(2018, 9, 4).atStartOfDay();
891
		LocalDateTime startDate = LocalDate.of(2018, 9, 4).atStartOfDay();
892
		LocalDateTime endDate = LocalDate.now().atStartOfDay();
892
		LocalDateTime endDate = LocalDate.now().atStartOfDay();
893
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
893
		List<FofoOrder> allOrders = fofoOrderRepository.selectBetweenSaleDate(startDate, endDate);
894
		allOrders.stream().forEach(fofoOrder -> {
894
		allOrders.stream().forEach(fofoOrder -> {
895
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
895
			String description = "Adjustment of Duplicate Scheme for Sale Invoice " + fofoOrder.getInvoiceNumber();
896
			List<Integer> inventoryItemIds = new ArrayList<>();
896
			Map<Integer, String> inventorySerialNumberMap = new HashMap<>();
897
			float amountToRollback = 0;
897
			float amountToRollback = 0;
898
			List<FofoOrderItem> orderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
898
			List<FofoOrderItem> orderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
899
			orderItems.forEach(x -> {
899
			orderItems.forEach(x -> {
900
				inventoryItemIds.addAll(x.getFofoLineItems().stream().map(FofoLineItem::getInventoryItemId)
900
				inventorySerialNumberMap.putAll(x.getFofoLineItems().stream()
901
						.collect(Collectors.toSet()));
901
						.collect(Collectors.toMap(FofoLineItem::getInventoryItemId, FofoLineItem::getSerialNumber)));
902
			});
902
			});
903
			List<SchemeInOut> sios = schemeInOutRepository.selectAllDuplicate(inventoryItemIds).stream()
903
			List<SchemeInOut> sios = schemeInOutRepository
-
 
904
					.selectAllDuplicate(fofoOrder.getFofoId(), new ArrayList<String>(inventorySerialNumberMap.values()))
904
					.filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
905
					.stream().filter(x -> schemeTypeMap.get(x.getSchemeId()).equals(SchemeType.OUT))
905
					.collect(Collectors.toList());
906
					.collect(Collectors.toList());
906
			if (sios.size() > 0) {
-
 
907
				LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
907
			LOGGER.info("Found {} duplicate schemeouts for Orderid {}", sios.size(), fofoOrder.getId());
908
				UserWalletHistory uwh = new UserWalletHistory();
908
			UserWalletHistory uwh = new UserWalletHistory();
909
				for (SchemeInOut sio : sios) {
909
			for (SchemeInOut sio : sios) {
910
 
-
 
911
					List<SchemeInOut> souts = schemeInOutRepository.selectByScheme(sio.getSchemeId(),
-
 
912
							sio.getInventoryItemId());
-
 
913
					if (souts.size() > 2) {
-
 
914
						LOGGER.info("Ignoring Scheme outs for Scheme {}, InventoryItem {} as Qty is {}",
-
 
915
								sio.getSchemeId(), sio.getInventoryItemId(), souts.size());
-
 
916
					} else {
-
 
917
						String serialNumber = inventoryItemRepository.selectById(sio.getInventoryItemId())
910
				String serialNumber = inventoryItemRepository.selectById(sio.getInventoryItemId()).getSerialNumber();
918
								.getSerialNumber();
-
 
919
						souts.get(0).setRolledBackTimestamp(LocalDateTime.now());
911
				sio.setRolledBackTimestamp(LocalDateTime.now());
920
						amountToRollback += souts.get(0).getAmount();
912
				amountToRollback += sio.getAmount();
921
						souts.get(0).setSchemeType(SchemeType.OUT);
913
				sio.setSchemeType(SchemeType.OUT);
922
						souts.get(0).setSerialNumber(serialNumber);
914
				sio.setSerialNumber(serialNumber);
923
						souts.get(0).setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
915
				sio.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
924
						rolledbackSios.add(souts.get(0));
916
				rolledbackSios.add(sio);
925
					}
-
 
926
				}
-
 
927
				uwh.setAmount(Math.round(amountToRollback));
-
 
928
				uwh.setDescription(description);
-
 
929
				uwh.setTimestamp(LocalDateTime.now());
-
 
930
				uwh.setReferenceType(WalletReferenceType.SCHEME_OUT);
-
 
931
				uwh.setReference(fofoOrder.getId());
-
 
932
				uwh.setWalletId(userWalletMap.get(fofoOrder.getFofoId()));
-
 
933
				uwh.setFofoId(fofoOrder.getFofoId());
-
 
934
				uwh.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
-
 
935
				userWalletHistory.add(uwh);
-
 
936
			}
917
			}
-
 
918
			uwh.setAmount(Math.round(amountToRollback));
-
 
919
			uwh.setDescription(description);
-
 
920
			uwh.setTimestamp(LocalDateTime.now());
-
 
921
			uwh.setReferenceType(WalletReferenceType.SCHEME_OUT);
-
 
922
			uwh.setReference(fofoOrder.getId());
-
 
923
			uwh.setWalletId(userWalletMap.get(fofoOrder.getFofoId()));
-
 
924
			uwh.setFofoId(fofoOrder.getFofoId());
-
 
925
			uwh.setStoreCode(fofoOrder.getInvoiceNumber().split("/")[0]);
-
 
926
			userWalletHistory.add(uwh);
937
		});
927
		});
-
 
928
 
938
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
929
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
939
				Arrays.asList("User Id", "Reference Type", "Reference", "Amount", "Description", "Timestamp"),
930
				Arrays.asList("User Id", "Reference Type", "Reference", "Amount", "Description", "Timestamp"),
940
				userWalletHistory.stream().map(x -> Arrays.asList(x.getWalletId(), x.getReferenceType(),
931
				userWalletHistory.stream().map(x -> Arrays.asList(x.getWalletId(), x.getReferenceType(),
941
						x.getReference(), x.getAmount(), x.getDescription(), x.getTimestamp()))
932
						x.getReference(), x.getAmount(), x.getDescription(), x.getTimestamp()))
942
						.collect(Collectors.toList()));
933
						.collect(Collectors.toList()));
Line 948... Line 939...
948
						.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
939
						.map(x -> Arrays.asList(x.getSchemeId(), x.getSchemeType(), x.getStoreCode(),
949
								x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
940
								x.getSerialNumber(), x.getAmount(), x.getCreateTimestamp(), x.getRolledBackTimestamp()))
950
						.collect(Collectors.toList()));
941
						.collect(Collectors.toList()));
951
 
942
 
952
		Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in" }, null,
943
		Utils.sendMailWithAttachments(googleMailSender, new String[] { "amit.gupta@shop2020.in" }, null,
953
				"Partner Excess Amount", "PFA",new Attachment[] {
944
				"Partner Excess Amount", "PFA",
954
				new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
945
				new Attachment[] { new Attachment("WalletSummary.csv", new ByteArrayResource(baos.toByteArray())),
955
				new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) }
946
						new Attachment("SchemeOutRolledback.csv", new ByteArrayResource(baosOuts.toByteArray())) });
956
		);
-
 
957
	}
947
	}
958
}
948
}
959
 
949
 
960
/*
950
/*
961
 * public void processSchemeForModel(String string) { pricingService
951
 * public void processSchemeForModel(String string) { pricingService