| 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]);
|