| Line 78... |
Line 78... |
| 78 |
public class OrderServiceImpl implements OrderService {
|
78 |
public class OrderServiceImpl implements OrderService {
|
| 79 |
|
79 |
|
| 80 |
private static final Logger LOGGER = LogManager.getLogger(OrderServiceImpl.class);
|
80 |
private static final Logger LOGGER = LogManager.getLogger(OrderServiceImpl.class);
|
| 81 |
|
81 |
|
| 82 |
private static Map<String, Integer> serialNumberOrderIdMap = new HashMap<>();
|
82 |
private static Map<String, Integer> serialNumberOrderIdMap = new HashMap<>();
|
| - |
|
83 |
|
| 83 |
static {
|
84 |
static {
|
| 84 |
serialNumberOrderIdMap.put("862897055749275", 67228);
|
85 |
serialNumberOrderIdMap.put("862897055749275", 67228);
|
| 85 |
}
|
86 |
}
|
| - |
|
87 |
|
| 86 |
@Autowired
|
88 |
@Autowired
|
| 87 |
@Qualifier("fofoInventoryItemRepository")
|
89 |
@Qualifier("fofoInventoryItemRepository")
|
| 88 |
private InventoryItemRepository inventoryItemRepository;
|
90 |
private InventoryItemRepository inventoryItemRepository;
|
| 89 |
|
91 |
|
| 90 |
@Autowired
|
92 |
@Autowired
|
| Line 378... |
Line 380... |
| 378 |
|
380 |
|
| 379 |
this.validateItemsSerializedNonSerialized(items, itemIdCustomFofoOrderItemMap);
|
381 |
this.validateItemsSerializedNonSerialized(items, itemIdCustomFofoOrderItemMap);
|
| 380 |
|
382 |
|
| 381 |
Map<Integer, Set<InventoryItem>> inventoryItemsToBill = new HashMap<>();
|
383 |
Map<Integer, Set<InventoryItem>> inventoryItemsToBill = new HashMap<>();
|
| 382 |
Map<Integer, Integer> inventoryItemIdQuantityUsed = new HashMap<>(); // to keep track of inventoryitem quanity
|
384 |
Map<Integer, Integer> inventoryItemIdQuantityUsed = new HashMap<>(); // to keep track of inventoryitem quanity
|
| 383 |
// used for scan records insertion
|
385 |
// used for scan records insertion
|
| 384 |
|
386 |
|
| 385 |
LOGGER.info("itemMap keys {}", itemMap.keySet());
|
387 |
LOGGER.info("itemMap keys {}", itemMap.keySet());
|
| 386 |
// Lets reduce quantity and decide what inventory items to use.
|
388 |
// Lets reduce quantity and decide what inventory items to use.
|
| 387 |
for (Item item : items) {
|
389 |
for (Item item : items) {
|
| 388 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
390 |
if (item.getType().equals(ItemType.SERIALIZED)) {
|
| 389 |
// TODO:handle null
|
391 |
// TODO:handle null
|
| 390 |
if (serializedInventoryItemMap.get(item.getId()) == null
|
392 |
if (serializedInventoryItemMap.get(item.getId()) == null
|
| 391 |
|| itemIdCustomFofoOrderItemMap.get(item.getId()).getSerialNumberDetails()
|
393 |
|| itemIdCustomFofoOrderItemMap.get(item.getId()).getSerialNumberDetails()
|
| 392 |
.size() != serializedInventoryItemMap.get(item.getId()).size()) {
|
394 |
.size() != serializedInventoryItemMap.get(item.getId()).size()) {
|
| 393 |
|
395 |
|
| 394 |
List<String> invalidSerialNumbers = itemIdCustomFofoOrderItemMap.get(item.getId())
|
396 |
List<String> invalidSerialNumbers = itemIdCustomFofoOrderItemMap.get(item.getId())
|
| 395 |
.getSerialNumberDetails().stream().map(x -> x.getSerialNumber())
|
397 |
.getSerialNumberDetails().stream().map(x -> x.getSerialNumber())
|
| 396 |
.collect(Collectors.toList());
|
398 |
.collect(Collectors.toList());
|
| 397 |
throw new ProfitMandiBusinessException("invalidSerialNumbers", invalidSerialNumbers, "FFORDR_1004");
|
399 |
throw new ProfitMandiBusinessException("invalidSerialNumbers", invalidSerialNumbers, "FFORDR_1004");
|
| Line 1152... |
Line 1154... |
| 1152 |
}
|
1154 |
}
|
| 1153 |
}
|
1155 |
}
|
| 1154 |
|
1156 |
|
| 1155 |
@Override
|
1157 |
@Override
|
| 1156 |
public Map<String, Object> getSaleHistory(int fofoId, SearchType searchType, String searchValue,
|
1158 |
public Map<String, Object> getSaleHistory(int fofoId, SearchType searchType, String searchValue,
|
| 1157 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
1159 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
| 1158 |
long countItems = 0;
|
1160 |
long countItems = 0;
|
| 1159 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
1161 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
| 1160 |
|
1162 |
|
| 1161 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
1163 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
| 1162 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, null, null,
|
1164 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, null, null,
|
| Line 1197... |
Line 1199... |
| 1197 |
}
|
1199 |
}
|
| 1198 |
return map;
|
1200 |
return map;
|
| 1199 |
}
|
1201 |
}
|
| 1200 |
|
1202 |
|
| 1201 |
public ResponseEntity<?> downloadReportInCsv(org.apache.commons.io.output.ByteArrayOutputStream baos,
|
1203 |
public ResponseEntity<?> downloadReportInCsv(org.apache.commons.io.output.ByteArrayOutputStream baos,
|
| 1202 |
List<List<?>> rows, String fileName) {
|
1204 |
List<List<?>> rows, String fileName) {
|
| 1203 |
final HttpHeaders headers = new HttpHeaders();
|
1205 |
final HttpHeaders headers = new HttpHeaders();
|
| 1204 |
headers.set("Content-Type", "text/csv");
|
1206 |
headers.set("Content-Type", "text/csv");
|
| 1205 |
|
1207 |
|
| 1206 |
headers.set("Content-disposition", "inline; filename=" + fileName + ".csv");
|
1208 |
headers.set("Content-disposition", "inline; filename=" + fileName + ".csv");
|
| 1207 |
headers.setContentLength(baos.toByteArray().length);
|
1209 |
headers.setContentLength(baos.toByteArray().length);
|
| Line 1212... |
Line 1214... |
| 1212 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
1214 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
| 1213 |
}
|
1215 |
}
|
| 1214 |
|
1216 |
|
| 1215 |
@Override
|
1217 |
@Override
|
| 1216 |
public Map<String, Object> getSaleHistoryPaginated(int fofoId, SearchType searchType, String searchValue,
|
1218 |
public Map<String, Object> getSaleHistoryPaginated(int fofoId, SearchType searchType, String searchValue,
|
| 1217 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
1219 |
LocalDateTime startDate, LocalDateTime endDate, int offset, int limit) throws ProfitMandiBusinessException {
|
| 1218 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
1220 |
List<FofoOrder> fofoOrders = new ArrayList<>();
|
| 1219 |
|
1221 |
|
| 1220 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
1222 |
if (searchType == SearchType.CUSTOMER_MOBILE_NUMBER && !searchValue.isEmpty()) {
|
| 1221 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, startDate,
|
1223 |
fofoOrders = fofoOrderRepository.selectByFofoIdAndCustomerMobileNumber(fofoId, searchValue, startDate,
|
| 1222 |
endDate, offset, limit);
|
1224 |
endDate, offset, limit);
|
| Line 1261... |
Line 1263... |
| 1261 |
}
|
1263 |
}
|
| 1262 |
return serialNumbers;
|
1264 |
return serialNumbers;
|
| 1263 |
}
|
1265 |
}
|
| 1264 |
|
1266 |
|
| 1265 |
private void validateDpPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
1267 |
private void validateDpPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
| 1266 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
1268 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
| 1267 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoLineItemMap.entrySet()) {
|
1269 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoLineItemMap.entrySet()) {
|
| 1268 |
int itemId = entry.getKey();
|
1270 |
int itemId = entry.getKey();
|
| 1269 |
CustomFofoOrderItem customFofoOrderItem = entry.getValue();
|
1271 |
CustomFofoOrderItem customFofoOrderItem = entry.getValue();
|
| 1270 |
LOGGER.info("CustomFofoOrderItem -- {}", customFofoOrderItem);
|
1272 |
LOGGER.info("CustomFofoOrderItem -- {}", customFofoOrderItem);
|
| 1271 |
PriceModel priceModel = itemIdMopPriceMap.get(itemId);
|
1273 |
PriceModel priceModel = itemIdMopPriceMap.get(itemId);
|
| 1272 |
Item item = itemRepository.selectById(itemId);
|
1274 |
Item item = itemRepository.selectById(itemId);
|
| 1273 |
if (!item.getBrand().equals("Live Demo")
|
1275 |
if (!item.getBrand().equals("Live Demo")
|
| 1274 |
&& (item.getCategoryId() == ProfitMandiConstants.MOBILE_CATEGORY_ID
|
1276 |
&& (item.getCategoryId() == ProfitMandiConstants.MOBILE_CATEGORY_ID
|
| 1275 |
|| item.getCategoryId() == ProfitMandiConstants.TABLET_CATEGORY_ID || item.getCategoryId() == ProfitMandiConstants.LED_CATEGORY_ID)
|
1277 |
|| item.getCategoryId() == ProfitMandiConstants.TABLET_CATEGORY_ID || item.getCategoryId() == ProfitMandiConstants.LED_CATEGORY_ID)
|
| 1276 |
&& customFofoOrderItem.getSerialNumberDetails().stream()
|
1278 |
&& customFofoOrderItem.getSerialNumberDetails().stream()
|
| 1277 |
.filter(x -> org.apache.commons.lang.StringUtils.isNotEmpty(x.getSerialNumber()))
|
1279 |
.filter(x -> org.apache.commons.lang.StringUtils.isNotEmpty(x.getSerialNumber()))
|
| 1278 |
.collect(Collectors.toList()).size() > 0) {
|
1280 |
.collect(Collectors.toList()).size() > 0) {
|
| 1279 |
if (Utils.compareFloat(priceModel.getPrice(),
|
1281 |
if (Utils.compareFloat(priceModel.getPrice(),
|
| 1280 |
customFofoOrderItem.getSellingPrice() + customFofoOrderItem.getDiscountAmount()) > 0) {
|
1282 |
customFofoOrderItem.getSellingPrice() + customFofoOrderItem.getDiscountAmount()) > 0) {
|
| 1281 |
throw new ProfitMandiBusinessException("Selling Price for ", item.getItemDescription(),
|
1283 |
throw new ProfitMandiBusinessException("Selling Price for ", item.getItemDescription(),
|
| 1282 |
"FFORDR_1010");
|
1284 |
"FFORDR_1010");
|
| 1283 |
}
|
1285 |
}
|
| Line 1291... |
Line 1293... |
| 1291 |
}
|
1293 |
}
|
| 1292 |
}
|
1294 |
}
|
| 1293 |
}
|
1295 |
}
|
| 1294 |
|
1296 |
|
| 1295 |
private void validateMopPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
1297 |
private void validateMopPrice(Map<Integer, PriceModel> itemIdMopPriceMap,
|
| 1296 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
1298 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoLineItemMap) throws ProfitMandiBusinessException {
|
| 1297 |
Map<Integer, Float> invalidMopItemIdPriceMap = new HashMap<>();
|
1299 |
Map<Integer, Float> invalidMopItemIdPriceMap = new HashMap<>();
|
| 1298 |
for (Map.Entry<Integer, PriceModel> entry : itemIdMopPriceMap.entrySet()) {
|
1300 |
for (Map.Entry<Integer, PriceModel> entry : itemIdMopPriceMap.entrySet()) {
|
| 1299 |
CustomFofoOrderItem customFofoOrderItem = itemIdCustomFofoLineItemMap.get(entry.getKey());
|
1301 |
CustomFofoOrderItem customFofoOrderItem = itemIdCustomFofoLineItemMap.get(entry.getKey());
|
| 1300 |
Item item = itemRepository.selectById(customFofoOrderItem.getItemId());
|
1302 |
Item item = itemRepository.selectById(customFofoOrderItem.getItemId());
|
| 1301 |
if (!(item.getBrand().equals("Live Demo") || item.getCategoryId() != ProfitMandiConstants.MOBILE_CATEGORY_ID
|
1303 |
if (!(item.getBrand().equals("Live Demo") || item.getCategoryId() != ProfitMandiConstants.MOBILE_CATEGORY_ID
|
| 1302 |
|| item.getCategoryId() != ProfitMandiConstants.TABLET_CATEGORY_ID)
|
1304 |
|| item.getCategoryId() != ProfitMandiConstants.TABLET_CATEGORY_ID)
|
| 1303 |
&& customFofoOrderItem.getSellingPrice() + customFofoOrderItem.getDiscountAmount() < entry
|
1305 |
&& customFofoOrderItem.getSellingPrice() + customFofoOrderItem.getDiscountAmount() < entry
|
| 1304 |
.getValue().getPrice()) {
|
1306 |
.getValue().getPrice()) {
|
| 1305 |
invalidMopItemIdPriceMap.put(entry.getKey(), customFofoOrderItem.getSellingPrice());
|
1307 |
invalidMopItemIdPriceMap.put(entry.getKey(), customFofoOrderItem.getSellingPrice());
|
| 1306 |
}
|
1308 |
}
|
| 1307 |
}
|
1309 |
}
|
| 1308 |
|
1310 |
|
| 1309 |
if (!invalidMopItemIdPriceMap.isEmpty()) {
|
1311 |
if (!invalidMopItemIdPriceMap.isEmpty()) {
|
| Line 1313... |
Line 1315... |
| 1313 |
}
|
1315 |
}
|
| 1314 |
|
1316 |
|
| 1315 |
}
|
1317 |
}
|
| 1316 |
|
1318 |
|
| 1317 |
private void updateInventoryItemsAndScanRecord(Set<InventoryItem> inventoryItems, int fofoId,
|
1319 |
private void updateInventoryItemsAndScanRecord(Set<InventoryItem> inventoryItems, int fofoId,
|
| 1318 |
Map<Integer, Integer> inventoryItemQuantityUsed, int fofoOrderId) {
|
1320 |
Map<Integer, Integer> inventoryItemQuantityUsed, int fofoOrderId) {
|
| 1319 |
for (InventoryItem inventoryItem : inventoryItems) {
|
1321 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| 1320 |
inventoryItem.setLastScanType(ScanType.SALE);
|
1322 |
inventoryItem.setLastScanType(ScanType.SALE);
|
| 1321 |
ScanRecord scanRecord = new ScanRecord();
|
1323 |
ScanRecord scanRecord = new ScanRecord();
|
| 1322 |
scanRecord.setInventoryItemId(inventoryItem.getId());
|
1324 |
scanRecord.setInventoryItemId(inventoryItem.getId());
|
| 1323 |
scanRecord.setFofoId(fofoId);
|
1325 |
scanRecord.setFofoId(fofoId);
|
| Line 1330... |
Line 1332... |
| 1330 |
|
1332 |
|
| 1331 |
}
|
1333 |
}
|
| 1332 |
}
|
1334 |
}
|
| 1333 |
|
1335 |
|
| 1334 |
private void createFofoLineItem(int fofoOrderItemId, Set<InventoryItem> inventoryItems,
|
1336 |
private void createFofoLineItem(int fofoOrderItemId, Set<InventoryItem> inventoryItems,
|
| 1335 |
Map<Integer, Integer> inventoryItemIdQuantityUsed) {
|
1337 |
Map<Integer, Integer> inventoryItemIdQuantityUsed) {
|
| 1336 |
for (InventoryItem inventoryItem : inventoryItems) {
|
1338 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| 1337 |
FofoLineItem fofoLineItem = new FofoLineItem();
|
1339 |
FofoLineItem fofoLineItem = new FofoLineItem();
|
| 1338 |
fofoLineItem.setFofoOrderItemId(fofoOrderItemId);
|
1340 |
fofoLineItem.setFofoOrderItemId(fofoOrderItemId);
|
| 1339 |
fofoLineItem.setSerialNumber(inventoryItem.getSerialNumber());
|
1341 |
fofoLineItem.setSerialNumber(inventoryItem.getSerialNumber());
|
| 1340 |
fofoLineItem.setInventoryItemId(inventoryItem.getId());
|
1342 |
fofoLineItem.setInventoryItemId(inventoryItem.getId());
|
| Line 1342... |
Line 1344... |
| 1342 |
fofoLineItemRepository.persist(fofoLineItem);
|
1344 |
fofoLineItemRepository.persist(fofoLineItem);
|
| 1343 |
}
|
1345 |
}
|
| 1344 |
}
|
1346 |
}
|
| 1345 |
|
1347 |
|
| 1346 |
private FofoOrderItem createAndGetFofoOrderItem(CustomFofoOrderItem customFofoOrderItem, int fofoOrderId,
|
1348 |
private FofoOrderItem createAndGetFofoOrderItem(CustomFofoOrderItem customFofoOrderItem, int fofoOrderId,
|
| 1347 |
Map<Integer, Item> itemMap, Set<InventoryItem> inventoryItems, Integer stateId)
|
1349 |
Map<Integer, Item> itemMap, Set<InventoryItem> inventoryItems, Integer stateId)
|
| 1348 |
throws ProfitMandiBusinessException {
|
1350 |
throws ProfitMandiBusinessException {
|
| 1349 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
1351 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
| 1350 |
fofoOrderItem.setItemId(customFofoOrderItem.getItemId());
|
1352 |
fofoOrderItem.setItemId(customFofoOrderItem.getItemId());
|
| 1351 |
fofoOrderItem.setQuantity(customFofoOrderItem.getQuantity());
|
1353 |
fofoOrderItem.setQuantity(customFofoOrderItem.getQuantity());
|
| 1352 |
fofoOrderItem.setSellingPrice(customFofoOrderItem.getSellingPrice());
|
1354 |
fofoOrderItem.setSellingPrice(customFofoOrderItem.getSellingPrice());
|
| Line 1433... |
Line 1435... |
| 1433 |
|
1435 |
|
| 1434 |
return fofoOrderItem;
|
1436 |
return fofoOrderItem;
|
| 1435 |
}
|
1437 |
}
|
| 1436 |
|
1438 |
|
| 1437 |
private void updateCurrentInventorySnapshot(List<CurrentInventorySnapshot> currentInventorySnapshots, int fofoId,
|
1439 |
private void updateCurrentInventorySnapshot(List<CurrentInventorySnapshot> currentInventorySnapshots, int fofoId,
|
| 1438 |
int itemId, int quantity) throws ProfitMandiBusinessException {
|
1440 |
int itemId, int quantity) throws ProfitMandiBusinessException {
|
| 1439 |
for (CurrentInventorySnapshot currentInventorySnapshot : currentInventorySnapshots) {
|
1441 |
for (CurrentInventorySnapshot currentInventorySnapshot : currentInventorySnapshots) {
|
| 1440 |
if (currentInventorySnapshot.getItemId() == itemId && currentInventorySnapshot.getFofoId() == fofoId) {
|
1442 |
if (currentInventorySnapshot.getItemId() == itemId && currentInventorySnapshot.getFofoId() == fofoId) {
|
| 1441 |
currentInventorySnapshotRepository.updateAvailabilityByItemIdAndFofoId(itemId, fofoId,
|
1443 |
currentInventorySnapshotRepository.updateAvailabilityByItemIdAndFofoId(itemId, fofoId,
|
| 1442 |
currentInventorySnapshot.getAvailability() - quantity);
|
1444 |
currentInventorySnapshot.getAvailability() - quantity);
|
| 1443 |
}
|
1445 |
}
|
| Line 1458... |
Line 1460... |
| 1458 |
}
|
1460 |
}
|
| 1459 |
}
|
1461 |
}
|
| 1460 |
}
|
1462 |
}
|
| 1461 |
|
1463 |
|
| 1462 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId, String documentNumber,
|
1464 |
private FofoOrder createAndGetFofoOrder(int customerId, String customerGstNumber, int fofoId, String documentNumber,
|
| 1463 |
float totalAmount, int customerAddressId) {
|
1465 |
float totalAmount, int customerAddressId) {
|
| 1464 |
FofoOrder fofoOrder = new FofoOrder();
|
1466 |
FofoOrder fofoOrder = new FofoOrder();
|
| 1465 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
1467 |
fofoOrder.setCustomerGstNumber(customerGstNumber);
|
| 1466 |
fofoOrder.setCustomerId(customerId);
|
1468 |
fofoOrder.setCustomerId(customerId);
|
| 1467 |
fofoOrder.setFofoId(fofoId);
|
1469 |
fofoOrder.setFofoId(fofoId);
|
| 1468 |
fofoOrder.setInvoiceNumber(documentNumber);
|
1470 |
fofoOrder.setInvoiceNumber(documentNumber);
|
| Line 1471... |
Line 1473... |
| 1471 |
fofoOrderRepository.persist(fofoOrder);
|
1473 |
fofoOrderRepository.persist(fofoOrder);
|
| 1472 |
return fofoOrder;
|
1474 |
return fofoOrder;
|
| 1473 |
}
|
1475 |
}
|
| 1474 |
|
1476 |
|
| 1475 |
private void validateItemsSerializedNonSerialized(List<Item> items,
|
1477 |
private void validateItemsSerializedNonSerialized(List<Item> items,
|
| 1476 |
Map<Integer, CustomFofoOrderItem> customFofoOrderItemMap) throws ProfitMandiBusinessException {
|
1478 |
Map<Integer, CustomFofoOrderItem> customFofoOrderItemMap) throws ProfitMandiBusinessException {
|
| 1477 |
List<Integer> invalidItemIdSerialNumbers = new ArrayList<Integer>();
|
1479 |
List<Integer> invalidItemIdSerialNumbers = new ArrayList<Integer>();
|
| 1478 |
List<Integer> itemIdNonSerializedSerialNumbers = new ArrayList<Integer>();
|
1480 |
List<Integer> itemIdNonSerializedSerialNumbers = new ArrayList<Integer>();
|
| 1479 |
for (Item i : items) {
|
1481 |
for (Item i : items) {
|
| 1480 |
CustomFofoOrderItem customFofoOrderItem = customFofoOrderItemMap.get(i.getId());
|
1482 |
CustomFofoOrderItem customFofoOrderItem = customFofoOrderItemMap.get(i.getId());
|
| 1481 |
if (i.getType().equals(ItemType.SERIALIZED)) {
|
1483 |
if (i.getType().equals(ItemType.SERIALIZED)) {
|
| Line 1505... |
Line 1507... |
| 1505 |
"FFORDR_1014");
|
1507 |
"FFORDR_1014");
|
| 1506 |
}
|
1508 |
}
|
| 1507 |
}
|
1509 |
}
|
| 1508 |
|
1510 |
|
| 1509 |
private void validateCurrentInventorySnapshotQuantities(List<CurrentInventorySnapshot> currentInventorySnapshots,
|
1511 |
private void validateCurrentInventorySnapshotQuantities(List<CurrentInventorySnapshot> currentInventorySnapshots,
|
| 1510 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap) throws ProfitMandiBusinessException {
|
1512 |
Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap) throws ProfitMandiBusinessException {
|
| 1511 |
if (itemIdCustomFofoOrderItemMap.keySet().size() != currentInventorySnapshots.size()) {
|
1513 |
if (itemIdCustomFofoOrderItemMap.keySet().size() != currentInventorySnapshots.size()) {
|
| 1512 |
throw new ProfitMandiBusinessException("quantiiesSize", currentInventorySnapshots.size(), "");
|
1514 |
throw new ProfitMandiBusinessException("quantiiesSize", currentInventorySnapshots.size(), "");
|
| 1513 |
}
|
1515 |
}
|
| 1514 |
List<ItemIdQuantityAvailability> itemIdQuantityAvailabilities = new ArrayList<>(); // this is for error
|
1516 |
List<ItemIdQuantityAvailability> itemIdQuantityAvailabilities = new ArrayList<>(); // this is for error
|
| 1515 |
LOGGER.info("currentInventorySnapshots " + currentInventorySnapshots);
|
1517 |
LOGGER.info("currentInventorySnapshots " + currentInventorySnapshots);
|
| Line 1537... |
Line 1539... |
| 1537 |
"FFORDR_1015");
|
1539 |
"FFORDR_1015");
|
| 1538 |
}
|
1540 |
}
|
| 1539 |
}
|
1541 |
}
|
| 1540 |
|
1542 |
|
| 1541 |
private int getItemIdFromSerialNumber(Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap,
|
1543 |
private int getItemIdFromSerialNumber(Map<Integer, CustomFofoOrderItem> itemIdCustomFofoOrderItemMap,
|
| 1542 |
String serialNumber) {
|
1544 |
String serialNumber) {
|
| 1543 |
int itemId = 0;
|
1545 |
int itemId = 0;
|
| 1544 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoOrderItemMap.entrySet()) {
|
1546 |
for (Map.Entry<Integer, CustomFofoOrderItem> entry : itemIdCustomFofoOrderItemMap.entrySet()) {
|
| 1545 |
Set<SerialNumberDetail> serialNumberDetails = entry.getValue().getSerialNumberDetails();
|
1547 |
Set<SerialNumberDetail> serialNumberDetails = entry.getValue().getSerialNumberDetails();
|
| 1546 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
1548 |
for (SerialNumberDetail serialNumberDetail : serialNumberDetails) {
|
| 1547 |
if (serialNumberDetail.getSerialNumber().equals(serialNumber)) {
|
1549 |
if (serialNumberDetail.getSerialNumber().equals(serialNumber)) {
|
| Line 1922... |
Line 1924... |
| 1922 |
Arrays.asList(SchemeType.SPECIAL_SUPPORT));
|
1924 |
Arrays.asList(SchemeType.SPECIAL_SUPPORT));
|
| 1923 |
|
1925 |
|
| 1924 |
}
|
1926 |
}
|
| 1925 |
|
1927 |
|
| 1926 |
@Override
|
1928 |
@Override
|
| - |
|
1929 |
public void reverseActivationScheme(List<Integer> inventoryItemIds) throws ProfitMandiBusinessException {
|
| - |
|
1930 |
List<InventoryItem> inventoryItems = inventoryItemRepository.selectAllByIds(inventoryItemIds);
|
| - |
|
1931 |
for (InventoryItem inventoryItem : inventoryItems) {
|
| - |
|
1932 |
List<FofoLineItem> fofoLineItems = fofoLineItemRepository.selectByInventoryItemId(inventoryItem.getId());
|
| - |
|
1933 |
FofoLineItem fofoLineItem = fofoLineItems.get(0);
|
| - |
|
1934 |
FofoOrderItem fofoOrderItem = fofoOrderItemRepository.selectById(fofoLineItem.getFofoOrderItemId());
|
| - |
|
1935 |
FofoOrder fofoOrder = fofoOrderRepository.selectByOrderId(fofoOrderItem.getOrderId());
|
| - |
|
1936 |
String reversalReason = "Scheme rolled back as activation date is invalid for imei " + inventoryItem.getSerialNumber();
|
| - |
|
1937 |
schemeService.reverseSchemes(Arrays.asList(inventoryItem), fofoOrder.getId(), reversalReason,
|
| - |
|
1938 |
Arrays.asList(SchemeType.ACTIVATION));
|
| - |
|
1939 |
schemeService.reverseSchemes(inventoryItems, fofoOrder.getId(), reversalReason,
|
| - |
|
1940 |
Arrays.asList(SchemeType.SPECIAL_SUPPORT));
|
| - |
|
1941 |
|
| - |
|
1942 |
}
|
| - |
|
1943 |
|
| - |
|
1944 |
}
|
| - |
|
1945 |
|
| - |
|
1946 |
@Override
|
| 1927 |
public float getSales(int fofoId, LocalDateTime startDate, LocalDateTime endDate) {
|
1947 |
public float getSales(int fofoId, LocalDateTime startDate, LocalDateTime endDate) {
|
| 1928 |
Float sales = fofoOrderRepository.selectSaleSumGroupByFofoIds(startDate, endDate).get(fofoId);
|
1948 |
Float sales = fofoOrderRepository.selectSaleSumGroupByFofoIds(startDate, endDate).get(fofoId);
|
| 1929 |
return sales == null ? 0f : sales;
|
1949 |
return sales == null ? 0f : sales;
|
| 1930 |
}
|
1950 |
}
|
| 1931 |
|
1951 |
|