Subversion Repositories SmartDukaan

Rev

Rev 23383 | Rev 23394 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 23383 Rev 23393
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());