Subversion Repositories SmartDukaan

Rev

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

Rev 24767 Rev 24772
Line 29... Line 29...
29
import com.spice.profitmandi.dao.entity.fofo.Purchase;
29
import com.spice.profitmandi.dao.entity.fofo.Purchase;
30
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
30
import com.spice.profitmandi.dao.entity.fofo.ScanRecord;
31
import com.spice.profitmandi.dao.entity.transaction.LineItem;
31
import com.spice.profitmandi.dao.entity.transaction.LineItem;
32
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
32
import com.spice.profitmandi.dao.entity.transaction.LineItemImei;
33
import com.spice.profitmandi.dao.entity.transaction.Order;
33
import com.spice.profitmandi.dao.entity.transaction.Order;
-
 
34
import com.spice.profitmandi.dao.entity.transaction.ReturnOrder;
34
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
35
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
35
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
36
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
36
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
37
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
37
import com.spice.profitmandi.dao.repository.GenericRepository;
38
import com.spice.profitmandi.dao.repository.GenericRepository;
38
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
39
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
Line 43... Line 44...
43
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
44
import com.spice.profitmandi.dao.repository.fofo.ScanRecordRepository;
44
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
45
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
45
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
46
import com.spice.profitmandi.dao.repository.transaction.LineItemImeisRepository;
46
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
47
import com.spice.profitmandi.dao.repository.transaction.LineItemRepository;
47
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
48
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
-
 
49
import com.spice.profitmandi.dao.repository.transaction.ReturnOrderRepository;
48
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
50
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
49
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
51
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
50
import com.spice.profitmandi.dao.repository.user.UserRepository;
52
import com.spice.profitmandi.dao.repository.user.UserRepository;
51
import com.spice.profitmandi.service.inventory.InventoryService;
53
import com.spice.profitmandi.service.inventory.InventoryService;
52
import com.spice.profitmandi.service.order.OrderService;
54
import com.spice.profitmandi.service.order.OrderService;
Line 89... Line 91...
89
	// Service for Tertiary/Partner Orders
91
	// Service for Tertiary/Partner Orders
90
	@Autowired
92
	@Autowired
91
	private OrderService orderService;
93
	private OrderService orderService;
92
 
94
 
93
	@Autowired
95
	@Autowired
-
 
96
	private ReturnOrderRepository returnOrderRepository;
-
 
97
 
-
 
98
	@Autowired
94
	private FofoStoreRepository fofoStoreRepository;
99
	private FofoStoreRepository fofoStoreRepository;
95
 
100
 
96
	@Autowired
101
	@Autowired
97
	private LineItemImeisRepository lineItemImeisRepository;
102
	private LineItemImeisRepository lineItemImeisRepository;
98
 
103
 
Line 297... Line 302...
297
		for (Map.Entry<LocalDate, List<UserWalletHistory>> entry : dateWiseWalletHistory.entrySet()) {
302
		for (Map.Entry<LocalDate, List<UserWalletHistory>> entry : dateWiseWalletHistory.entrySet()) {
298
			LocalDate dateToReconcile = entry.getKey();
303
			LocalDate dateToReconcile = entry.getKey();
299
			List<UserWalletHistory> history = entry.getValue();
304
			List<UserWalletHistory> history = entry.getValue();
300
			rows.add(reconcileOrdersAndWallet(uw.getUserId(), dateToReconcile, history));
305
			rows.add(reconcileOrdersAndWallet(uw.getUserId(), dateToReconcile, history));
301
		}
306
		}
302
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(Arrays.asList("Date", "Wallet Total", "Order Total"),
307
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(Arrays.asList("Date", "Wallet amount",
303
				rows);
308
				"Ordered Total", "Cancelled Total", "Refunded Total"), rows);
304
 
309
 
305
		Utils.sendMailWithAttachment(mailSender, new String[] { "amit.gupta@shop2020.in" }, new String[] {}, "Test",
310
		Utils.sendMailWithAttachment(mailSender, new String[] { "amit.gupta@shop2020.in" }, new String[] {}, "Test",
306
				"test", "File.csv", new ByteArrayResource(baos.toByteArray()));
311
				"test", "File.csv", new ByteArrayResource(baos.toByteArray()));
307
	}
312
	}
308
 
313
 
Line 310... Line 315...
310
			throws Exception {
315
			throws Exception {
311
		Map<Integer, Integer> transactionsOnThatDate = history.stream()
316
		Map<Integer, Integer> transactionsOnThatDate = history.stream()
312
				.filter(x -> x.getReferenceType().equals(WalletReferenceType.PURCHASE))
317
				.filter(x -> x.getReferenceType().equals(WalletReferenceType.PURCHASE))
313
				.collect(Collectors.groupingBy(x -> x.getReference(), Collectors.summingInt(x -> x.getAmount())));
318
				.collect(Collectors.groupingBy(x -> x.getReference(), Collectors.summingInt(x -> x.getAmount())));
314
 
319
 
315
		int walletConsumed = 0;
320
		int totalWallet = 0;
-
 
321
		float cancelledAmount = 0;
-
 
322
		float returnedAmount = 0;
316
		float totalOrderAmount = 0;
323
		float totalDeductedAmount = 0;
317
		for (int transactionId : transactionsOnThatDate.keySet()) {
324
		for (int transactionId : transactionsOnThatDate.keySet()) {
318
			walletConsumed -= transactionsOnThatDate.get(transactionId);
-
 
319
			List<Order> orders = orderRepository.selectAllByTransactionId(transactionId);
325
			List<Order> orders = orderRepository.selectAllByTransactionId(transactionId);
320
			for (Order o : orders) {
326
			for (Order o : orders) {
321
				if (o.getRefundTimestamp() == null) {
327
				if (o.getRefundTimestamp() == null) {
322
					if (Arrays.asList(OrderStatus.PAYMENT_PENDING, OrderStatus.PAYMENT_FAILED)
328
					if (Arrays.asList(OrderStatus.PAYMENT_PENDING, OrderStatus.PAYMENT_FAILED)
323
							.contains(o.getStatus())) {
329
							.contains(o.getStatus())) {
324
						totalOrderAmount -= o.getWalletAmount();
330
						cancelledAmount += o.getWalletAmount();
325
					} else {
331
					} 
326
						totalOrderAmount += o.getWalletAmount();
332
				} else if (o.getRefundTimestamp().toLocalDate().equals(localDate)) {
327
					}
-
 
328
				} else {
333
						ReturnOrder returnedOrder = returnOrderRepository.selectByOrderId(o.getId());
329
					totalOrderAmount -= o.getWalletAmount();
334
						returnedAmount += returnedOrder.getTotalPrice();
330
				}
335
				}
-
 
336
				totalDeductedAmount += o.getWalletAmount();
331
			}
337
			}
-
 
338
			totalWallet += transactionsOnThatDate.get(transactionId);
332
		}
339
		}
333
 
340
 
334
		return Arrays.asList(localDate, walletConsumed, totalOrderAmount);
341
		return Arrays.asList(localDate, totalWallet, cancelledAmount, returnedAmount, totalDeductedAmount);
335
 
342
 
336
	}
343
	}
337
 
344
 
338
	private void reconcileDailySchemeIn() {
345
	private void reconcileDailySchemeIn() {
339
 
346