| Line 259... |
Line 259... |
| 259 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()){
|
259 |
for (SerialNumberDetail serialNumberDetail : customFofoOrderItem.getSerialNumberDetails()){
|
| 260 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
260 |
serialNumbers.add(serialNumberDetail.getSerialNumber());
|
| 261 |
if(serialNumberDetail.isInsurance()){
|
261 |
if(serialNumberDetail.isInsurance()){
|
| 262 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(), customFofoOrderItem.getSellingPrice());
|
262 |
insuranceSerialNumberItemPrice.put(serialNumberDetail.getSerialNumber(), customFofoOrderItem.getSellingPrice());
|
| 263 |
insuranceSerialNumberSaleAmount.put(serialNumberDetail.getSerialNumber(), serialNumberDetail.getAmount());
|
263 |
insuranceSerialNumberSaleAmount.put(serialNumberDetail.getSerialNumber(), serialNumberDetail.getAmount());
|
| 264 |
serialNumberModelName.put(serialNumberDetail.getSerialNumber(), item.getModelName());
|
264 |
serialNumberModelName.put(serialNumberDetail.getSerialNumber(), (item.getModelName() + item.getModelNumber()).trim());
|
| 265 |
serialNumberBrand.put(serialNumberDetail.getSerialNumber(), item.getBrand());
|
265 |
serialNumberBrand.put(serialNumberDetail.getSerialNumber(), item.getBrand());
|
| 266 |
}
|
266 |
}
|
| 267 |
}
|
267 |
}
|
| 268 |
}
|
268 |
}
|
| 269 |
else{
|
269 |
else{
|
| Line 271... |
Line 271... |
| 271 |
}
|
271 |
}
|
| 272 |
}
|
272 |
}
|
| 273 |
|
273 |
|
| 274 |
Map<Integer, Set<InventoryItem>> serializedInventoryItemMap = new HashMap<>();
|
274 |
Map<Integer, Set<InventoryItem>> serializedInventoryItemMap = new HashMap<>();
|
| 275 |
Map<Integer, Set<InventoryItem>> nonSerializedInventoryItemMap = new HashMap<>();
|
275 |
Map<Integer, Set<InventoryItem>> nonSerializedInventoryItemMap = new HashMap<>();
|
| 276 |
Map<Integer, List<Float>> itemIdPriceDropAmount = new HashMap<>();
|
- |
|
| 277 |
//Map<String, Float> serialNumberItemPrice = new HashMap<>();
|
276 |
//Map<String, Float> serialNumberItemPrice = new HashMap<>();
|
| 278 |
|
277 |
|
| 279 |
if (!serialNumbers.isEmpty()){
|
- |
|
| 280 |
List<InventoryItem> serializedInventoryItems = inventoryItemRepository.selectByFofoIdSerialNumbers(fofoId, serialNumbers);
|
- |
|
| 281 |
LOGGER.info("serializedInventoryItems {}", serializedInventoryItems);
|
- |
|
| 282 |
for (InventoryItem inventoryItem : serializedInventoryItems){
|
- |
|
| 283 |
if (inventoryItem.getGoodQuantity() == 1){
|
- |
|
| 284 |
if (serializedInventoryItemMap.containsKey(inventoryItem.getItemId())){
|
- |
|
| 285 |
serializedInventoryItemMap.get(inventoryItem.getItemId()).add(inventoryItem);
|
- |
|
| 286 |
itemIdPriceDropAmount.get(inventoryItem.getItemId()).
|
- |
|
| 287 |
add(inventoryItem.getUnitPrice() - inventoryItem.getPriceDropAmount());
|
- |
|
| 288 |
}else{
|
- |
|
| 289 |
Set<InventoryItem> itemIdInventoryItems = new HashSet<>();
|
- |
|
| 290 |
itemIdInventoryItems.add(inventoryItem);
|
- |
|
| 291 |
serializedInventoryItemMap.put(inventoryItem.getItemId(), itemIdInventoryItems);
|
- |
|
| 292 |
ArrayList<Float> priceDropAmouts = new ArrayList<>();
|
- |
|
| 293 |
priceDropAmouts.add(inventoryItem.getUnitPrice() - (inventoryItem.getPriceDropAmount()));
|
- |
|
| 294 |
itemIdPriceDropAmount.put(inventoryItem.getItemId(), priceDropAmouts);
|
- |
|
| 295 |
}
|
- |
|
| 296 |
}
|
- |
|
| 297 |
}
|
- |
|
| 298 |
}
|
- |
|
| 299 |
|
- |
|
| 300 |
if (!nonSerializedItemIds.isEmpty()){
|
278 |
if (!nonSerializedItemIds.isEmpty()){
|
| 301 |
List<InventoryItem> nonSerializedInventoryItems = inventoryItemRepository.selectByFofoIdItemIds(fofoId, nonSerializedItemIds);
|
279 |
List<InventoryItem> nonSerializedInventoryItems = inventoryItemRepository.selectByFofoIdItemIds(fofoId, nonSerializedItemIds);
|
| 302 |
LOGGER.info("nonSerializedInventoryItems {}", nonSerializedInventoryItems);
|
280 |
LOGGER.info("nonSerializedInventoryItems {}", nonSerializedInventoryItems);
|
| 303 |
for (InventoryItem it : nonSerializedInventoryItems){
|
281 |
for (InventoryItem it : nonSerializedInventoryItems){
|
| 304 |
if (it.getGoodQuantity() > 0){
|
282 |
if (it.getGoodQuantity() > 0){
|
| Line 397... |
Line 375... |
| 397 |
LOGGER.error("Unable to get state rates");
|
375 |
LOGGER.error("Unable to get state rates");
|
| 398 |
}
|
376 |
}
|
| 399 |
}
|
377 |
}
|
| 400 |
|
378 |
|
| 401 |
for(CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()){
|
379 |
for(CustomFofoOrderItem customFofoOrderItem : createOrderRequest.getFofoOrderItems()){
|
| 402 |
FofoOrderItem fofoOrderItem = this.createAndGetFofoOrderItem(customFofoOrderItem, fofoOrder.getId(), itemMap, inventoryItemsToBill.get(customFofoOrderItem.getItemId()), itemIdPriceDropAmount, stateId);
|
380 |
FofoOrderItem fofoOrderItem = this.createAndGetFofoOrderItem(customFofoOrderItem, fofoOrder.getId(), itemMap, inventoryItemsToBill.get(customFofoOrderItem.getItemId()), stateId);
|
| 403 |
|
381 |
|
| 404 |
Set<InventoryItem> inventoryItems = inventoryItemsToBill.get(customFofoOrderItem.getItemId());
|
382 |
Set<InventoryItem> inventoryItems = inventoryItemsToBill.get(customFofoOrderItem.getItemId());
|
| 405 |
|
383 |
|
| 406 |
this.createFofoLineItem(fofoOrderItem.getId(), inventoryItems, inventoryItemIdQuantityUsed);
|
384 |
this.createFofoLineItem(fofoOrderItem.getId(), inventoryItems, inventoryItemIdQuantityUsed);
|
| 407 |
|
385 |
|
| Line 923... |
Line 901... |
| 923 |
fofoLineItem.setQuantity(inventoryItemIdQuantityUsed.get(inventoryItem.getId()));
|
901 |
fofoLineItem.setQuantity(inventoryItemIdQuantityUsed.get(inventoryItem.getId()));
|
| 924 |
fofoLineItemRepository.persist(fofoLineItem);
|
902 |
fofoLineItemRepository.persist(fofoLineItem);
|
| 925 |
}
|
903 |
}
|
| 926 |
}
|
904 |
}
|
| 927 |
|
905 |
|
| 928 |
private FofoOrderItem createAndGetFofoOrderItem(CustomFofoOrderItem customFofoOrderItem, int fofoOrderId, Map<Integer, Item> itemMap, Set<InventoryItem> inventoryItems, Map<Integer, List<Float>> itemIdPriceDropAmount, Integer stateId) throws ProfitMandiBusinessException{
|
906 |
private FofoOrderItem createAndGetFofoOrderItem(CustomFofoOrderItem customFofoOrderItem, int fofoOrderId, Map<Integer, Item> itemMap, Set<InventoryItem> inventoryItems, Integer stateId) throws ProfitMandiBusinessException{
|
| 929 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
907 |
FofoOrderItem fofoOrderItem = new FofoOrderItem();
|
| 930 |
fofoOrderItem.setItemId(customFofoOrderItem.getItemId());
|
908 |
fofoOrderItem.setItemId(customFofoOrderItem.getItemId());
|
| 931 |
fofoOrderItem.setQuantity(customFofoOrderItem.getQuantity());
|
909 |
fofoOrderItem.setQuantity(customFofoOrderItem.getQuantity());
|
| 932 |
fofoOrderItem.setSellingPrice(customFofoOrderItem.getSellingPrice());
|
910 |
fofoOrderItem.setSellingPrice(customFofoOrderItem.getSellingPrice());
|
| 933 |
fofoOrderItem.setOrderId(fofoOrderId);
|
911 |
fofoOrderItem.setOrderId(fofoOrderId);
|
| Line 939... |
Line 917... |
| 939 |
if(stateId != null){
|
917 |
if(stateId != null){
|
| 940 |
itemIdStateTaxRateMap = Utils.getStateTaxRate(new ArrayList<>(itemMap.keySet()), stateId);
|
918 |
itemIdStateTaxRateMap = Utils.getStateTaxRate(new ArrayList<>(itemMap.keySet()), stateId);
|
| 941 |
}else{
|
919 |
}else{
|
| 942 |
itemIdIgstTaxRateMap = Utils.getIgstTaxRate(new ArrayList<>(itemMap.keySet()));
|
920 |
itemIdIgstTaxRateMap = Utils.getIgstTaxRate(new ArrayList<>(itemMap.keySet()));
|
| 943 |
}
|
921 |
}
|
| - |
|
922 |
float cost = 0;
|
| 944 |
for(InventoryItem inventoryItem : inventoryItems){
|
923 |
for(InventoryItem inventoryItem : inventoryItems){
|
| 945 |
if(stateId == null){
|
924 |
if(stateId == null){
|
| 946 |
fofoOrderItem.setIgstRate(itemIdIgstTaxRateMap.get(inventoryItem.getItemId()));
|
925 |
fofoOrderItem.setIgstRate(itemIdIgstTaxRateMap.get(inventoryItem.getItemId()));
|
| 947 |
}else{
|
926 |
}else{
|
| 948 |
fofoOrderItem.setCgstRate(itemIdStateTaxRateMap.get(inventoryItem.getItemId()).getCgstRate());
|
927 |
fofoOrderItem.setCgstRate(itemIdStateTaxRateMap.get(inventoryItem.getItemId()).getCgstRate());
|
| 949 |
fofoOrderItem.setSgstRate(itemIdStateTaxRateMap.get(inventoryItem.getItemId()).getSgstRate());
|
928 |
fofoOrderItem.setSgstRate(itemIdStateTaxRateMap.get(inventoryItem.getItemId()).getSgstRate());
|
| 950 |
}
|
929 |
}
|
| 951 |
|
- |
|
| 952 |
fofoOrderItem.setHsnCode(inventoryItem.getHsnCode());
|
930 |
fofoOrderItem.setHsnCode(inventoryItem.getHsnCode());
|
| 953 |
break;
|
931 |
break;
|
| 954 |
}
|
932 |
}
|
| 955 |
List<Float> priceDropAmounts = itemIdPriceDropAmount.get(customFofoOrderItem.getItemId());
|
933 |
for(InventoryItem inventoryItem : inventoryItems){
|
| 956 |
float cost = 0;
|
- |
|
| 957 |
if (priceDropAmounts != null){
|
934 |
if(inventoryItem.getSerialNumber() != null) {
|
| 958 |
for (Float pda : priceDropAmounts){
|
935 |
cost += inventoryItem.getUnitPrice() - inventoryItem.getPriceDropAmount();
|
| - |
|
936 |
} else {
|
| 959 |
cost = cost + pda;
|
937 |
cost += inventoryItem.getUnitPrice();
|
| 960 |
}
|
938 |
}
|
| 961 |
}else{
|
- |
|
| 962 |
cost = customFofoOrderItem.getSellingPrice() * customFofoOrderItem.getQuantity();
|
- |
|
| 963 |
}
|
939 |
}
|
| - |
|
940 |
cost = cost/customFofoOrderItem.getQuantity();
|
| 964 |
fofoOrderItem.setCost(cost);
|
941 |
fofoOrderItem.setCost(cost);
|
| 965 |
fofoOrderItem.setBrand(item.getBrand());
|
942 |
fofoOrderItem.setBrand(item.getBrand());
|
| 966 |
fofoOrderItem.setModelName(item.getModelName());
|
943 |
fofoOrderItem.setModelName(item.getModelName());
|
| 967 |
fofoOrderItem.setModelNumber(item.getModelNumber());
|
944 |
fofoOrderItem.setModelNumber(item.getModelNumber());
|
| 968 |
fofoOrderItem.setColor(item.getColor());
|
945 |
fofoOrderItem.setColor(item.getColor());
|