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