| 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 |
|