Subversion Repositories SmartDukaan

Rev

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

Rev 27296 Rev 27297
Line 990... Line 990...
990
			orders = orders.stream().skip(1).collect(Collectors.toList());
990
			orders = orders.stream().skip(1).collect(Collectors.toList());
991
			for (FofoOrder fofoOrder : orders) {
991
			for (FofoOrder fofoOrder : orders) {
992
				LOGGER.info("Fofo Order Id - {}, Invoice {}", fofoOrder.getId(), invoiceNumber);
992
				LOGGER.info("Fofo Order Id - {}, Invoice {}", fofoOrder.getId(), invoiceNumber);
993
				int inventoryItemId = 0;
993
				int inventoryItemId = 0;
994
				saleAmount += fofoOrder.getTotalAmount();
994
				saleAmount += fofoOrder.getTotalAmount();
995
				//fofoOrderRepository.delete(fofoOrder);
995
				fofoOrderRepository.delete(fofoOrder);
996
				List<FofoOrderItem> fofoOrderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
996
				List<FofoOrderItem> fofoOrderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
997
				List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
997
				List<PaymentOptionTransaction> paymentOptionTransactions = paymentOptionTransactionRepository.selectByReferenceIdAndType(fofoOrder.getId(), PaymentOptionReferenceType.ORDER);
998
				for(PaymentOptionTransaction paymentOptionTransaction : paymentOptionTransactions) {
998
				for(PaymentOptionTransaction paymentOptionTransaction : paymentOptionTransactions) {
999
					//paymentOptionTransactionRepository.delete(paymentOptionTransaction);
999
					paymentOptionTransactionRepository.delete(paymentOptionTransaction);
1000
				}
1000
				}
1001
				for(FofoOrderItem foi : fofoOrderItems) {
1001
				for(FofoOrderItem foi : fofoOrderItems) {
1002
					//fofoOrderItemRepository.delete(foi);
1002
					fofoOrderItemRepository.delete(foi);
1003
					List<FofoLineItem> flis = fofoLineItemRepository.selectByFofoOrderItemId(foi.getId());
1003
					List<FofoLineItem> flis = fofoLineItemRepository.selectByFofoOrderItemId(foi.getId());
1004
					for(FofoLineItem fli : flis) {
1004
					for(FofoLineItem fli : flis) {
1005
						//fofoLineItemRepository.delete(fli);
1005
						fofoLineItemRepository.delete(fli);
1006
						inventoryItemId = fli.getInventoryItemId();
1006
						inventoryItemId = fli.getInventoryItemId();
1007
					}
1007
					}
1008
				}
1008
				}
1009
				//Rollback entry with reversal reason
1009
				//Rollback entry with reversal reason
1010
				if(fofoOrder.getCreateTimestamp().isAfter(LocalDate.of(2020, 4, 1).atStartOfDay())) {
1010
				if(fofoOrder.getCreateTimestamp().isAfter(LocalDate.of(2020, 4, 1).atStartOfDay())) {
1011
					float invoiceWalletAmount = 0;
1011
					float invoiceWalletAmount = 0;
1012
					float invoiceSchemeReversalAmount = 0;
1012
					float invoiceSchemeReversalAmount = 0;
1013
					List<UserWalletHistory> userWalletHistory = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(fofoOrder.getId(), WalletReferenceType.SCHEME_OUT);
1013
					List<UserWalletHistory> userWalletHistory = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(fofoOrder.getId(), WalletReferenceType.SCHEME_OUT);
1014
					totalAmount += userWalletHistory.stream().collect(Collectors.summingInt(y->y.getAmount()));
1014
					totalAmount += userWalletHistory.stream().collect(Collectors.summingInt(y->y.getAmount()));
1015
					invoiceWalletAmount += userWalletHistory.stream().collect(Collectors.summingInt(y->y.getAmount()));
1015
					invoiceWalletAmount += userWalletHistory.stream().collect(Collectors.summingInt(y->y.getAmount()));
1016
					/*walletService.rollbackAmountFromWallet(fofoOrder.getFofoId(), totalAmount, fofoOrder.getId(), WalletReferenceType.SCHEME_OUT, 
1016
					walletService.rollbackAmountFromWallet(fofoOrder.getFofoId(), totalAmount, fofoOrder.getId(), WalletReferenceType.SCHEME_OUT, 
1017
							"Same order for Invoice-"+ invoiceNumber + "created twice, duplicate invoice rollback", fofoOrder.getCancelledTimestamp());*/
1017
							"Same order for Invoice-"+ invoiceNumber + "created twice, duplicate invoice rollback", fofoOrder.getCancelledTimestamp());
1018
					List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(new HashSet<>(Arrays.asList(inventoryItemId)));
1018
					List<SchemeInOut> schemeInOuts = schemeInOutRepository.selectByInventoryItemIds(new HashSet<>(Arrays.asList(inventoryItemId)));
1019
					Set<Integer> schemeIds = new HashSet<>();
1019
					Set<Integer> schemeIds = new HashSet<>();
1020
					for(SchemeInOut sio : schemeInOuts) {
1020
					for(SchemeInOut sio : schemeInOuts) {
1021
						if(Math.abs(sio.getCreateTimestamp().getMinute() - fofoOrder.getCreateTimestamp().getMinute()) <= 1 && sio.getRolledBackTimestamp() == null) {
1021
						if(Math.abs(sio.getCreateTimestamp().getMinute() - fofoOrder.getCreateTimestamp().getMinute()) <= 1 && sio.getRolledBackTimestamp() == null) {
1022
							LOGGER.info(sio);
1022
							LOGGER.info(sio);
1023
							if(!schemeIds.contains(sio.getSchemeId())) {
1023
							if(!schemeIds.contains(sio.getSchemeId())) {
1024
								schemeIds.add(sio.getSchemeId());
1024
								schemeIds.add(sio.getSchemeId());
1025
							} else {
1025
							} else {
-
 
1026
								sio.setRolledBackTimestamp(LocalDateTime.now());
1026
								schemeReverseAmount += sio.getAmount();
1027
								schemeReverseAmount += sio.getAmount();
1027
								invoiceSchemeReversalAmount += sio.getAmount();
1028
								invoiceSchemeReversalAmount += sio.getAmount();
1028
							}
1029
							}
1029
						}
1030
						}
1030
					}
1031
					}