Subversion Repositories SmartDukaan

Rev

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

Rev 23297 Rev 23339
Line 17... Line 17...
17
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
17
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
18
import com.spice.profitmandi.common.model.CreateSchemeRequest;
18
import com.spice.profitmandi.common.model.CreateSchemeRequest;
19
import com.spice.profitmandi.common.model.ProfitMandiConstants;
19
import com.spice.profitmandi.common.model.ProfitMandiConstants;
20
import com.spice.profitmandi.common.model.SchemeModel;
20
import com.spice.profitmandi.common.model.SchemeModel;
21
import com.spice.profitmandi.common.util.StringUtils;
21
import com.spice.profitmandi.common.util.StringUtils;
-
 
22
import com.spice.profitmandi.dao.entity.catalog.Item;
22
import com.spice.profitmandi.dao.entity.catalog.RetailerScheme;
23
import com.spice.profitmandi.dao.entity.catalog.RetailerScheme;
23
import com.spice.profitmandi.dao.entity.catalog.Scheme;
24
import com.spice.profitmandi.dao.entity.catalog.Scheme;
24
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
25
import com.spice.profitmandi.dao.entity.fofo.FofoLineItem;
25
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
26
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
26
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
27
import com.spice.profitmandi.dao.entity.fofo.InventoryItem;
-
 
28
import com.spice.profitmandi.dao.entity.fofo.Purchase;
27
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
29
import com.spice.profitmandi.dao.entity.fofo.SchemeInOut;
28
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
30
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
29
import com.spice.profitmandi.dao.enumuration.catalog.SchemeAmountType;
31
import com.spice.profitmandi.dao.enumuration.catalog.SchemeAmountType;
30
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
32
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
31
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
33
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
Line 33... Line 35...
33
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
35
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
34
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
36
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
35
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
37
import com.spice.profitmandi.dao.repository.fofo.FofoLineItemRepository;
36
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
38
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
37
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
39
import com.spice.profitmandi.dao.repository.fofo.InventoryItemRepository;
-
 
40
import com.spice.profitmandi.dao.repository.fofo.PurchaseRepository;
38
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
41
import com.spice.profitmandi.dao.repository.fofo.SchemeInOutRepository;
39
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
42
import com.spice.profitmandi.dao.repository.fofo.SchemeItemRepository;
40
import com.spice.profitmandi.service.inventory.OrderService;
43
import com.spice.profitmandi.service.inventory.OrderService;
41
import com.spice.profitmandi.service.wallet.WalletService;
44
import com.spice.profitmandi.service.wallet.WalletService;
42
 
45
 
Line 79... Line 82...
79
	private FofoOrderItemRepository fofoOrderItemRepository;
82
	private FofoOrderItemRepository fofoOrderItemRepository;
80
	
83
	
81
	@Autowired
84
	@Autowired
82
	private FofoLineItemRepository fofoLineItemRepository;
85
	private FofoLineItemRepository fofoLineItemRepository;
83
	
86
	
-
 
87
	@Autowired
-
 
88
	private PurchaseRepository purchaseRepository;
-
 
89
	
84
	@Override
90
	@Override
85
	public void saveScheme(int creatorId, CreateSchemeRequest createSchemeRequest) throws ProfitMandiBusinessException {
91
	public void saveScheme(int creatorId, CreateSchemeRequest createSchemeRequest) throws ProfitMandiBusinessException {
86
		
92
		
87
		this.validateCreateSchemeRequest(createSchemeRequest);
93
		this.validateCreateSchemeRequest(createSchemeRequest);
88
		
94
		
Line 175... Line 181...
175
		if(!scheme.isRetailerAll()){
181
		if(!scheme.isRetailerAll()){
176
			List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
182
			List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
177
			scheme.getRetailerIds().addAll(retailerIds);
183
			scheme.getRetailerIds().addAll(retailerIds);
178
		}
184
		}
179
		List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
185
		List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
-
 
186
		List<Item> items = itemRepository.selectByIds(new HashSet<>(itemIds));
180
		scheme.setItemIds(new HashSet<>(itemIds));
187
		scheme.setItemStringMap(this.toItemStringMap(items));
181
		return scheme;
188
		return scheme;
182
	}
189
	}
183
	
190
	
-
 
191
	public Map<Integer, String> toItemStringMap(List<Item> items){
-
 
192
		Map<Integer, String> itemMap = new HashMap<>();
-
 
193
		for(Item item : items){
-
 
194
			itemMap.put(item.getId(), this.getItemString(item));
-
 
195
		}
-
 
196
		return itemMap;
-
 
197
	}
-
 
198
	
-
 
199
	public String getItemString(Item item){
-
 
200
		StringBuilder itemString = new StringBuilder();
-
 
201
		if(item.getBrand() != null && !item.getBrand().isEmpty()){
-
 
202
			itemString.append(item.getBrand().trim());
-
 
203
		}
-
 
204
		itemString.append(" ");
-
 
205
		if(item.getModelName() != null && !item.getModelName().isEmpty()){
-
 
206
			itemString.append(item.getModelName().trim());
-
 
207
		}
-
 
208
		itemString.append(" ");
-
 
209
		if(item.getModelNumber() != null && !item.getModelNumber().isEmpty()){
-
 
210
			itemString.append(item.getModelNumber().trim());
-
 
211
		}
-
 
212
		itemString.append(" ");
-
 
213
		if(item.getColor() != null && !item.getColor().isEmpty()){
-
 
214
			itemString.append(item.getColor().trim());
-
 
215
		}
-
 
216
		return itemString.toString();
-
 
217
	}
-
 
218
	
-
 
219
	private Set<Integer> schemeItemsToItemIds(List<SchemeItem> schemeItems){
-
 
220
		Set<Integer> itemIds = new HashSet<>();
-
 
221
		for(SchemeItem schemeItem : schemeItems){
-
 
222
			itemIds.add(schemeItem.getItemId());
-
 
223
		}
-
 
224
		return itemIds;
-
 
225
	}
-
 
226
	
184
	@Override
227
	@Override
185
	public List<SchemeModel> getAllSchemeModels(LocalDateTime startDateTime, LocalDateTime endDateTime) {
228
	public List<SchemeModel> getAllSchemeModels(LocalDateTime startDateTime, LocalDateTime endDateTime) {
186
		List<Scheme> schemes = schemeRepository.selectAllBetweenCreateTimestamp(startDateTime, endDateTime);
229
		List<Scheme> schemes = schemeRepository.selectAllBetweenCreateTimestamp(startDateTime, endDateTime);
187
		Map<Integer, Scheme> schemeIdSchemeMap = this.toSchemeIdSchemeMap(schemes);
230
		Map<Integer, Scheme> schemeIdSchemeMap = this.toSchemeIdSchemeMap(schemes);
188
		List<SchemeItem> schemeItems = schemeItemRepository.selectBySchemeIds(schemeIdSchemeMap.keySet());
231
		List<SchemeItem> schemeItems = schemeItemRepository.selectBySchemeIds(schemeIdSchemeMap.keySet());
-
 
232
		Set<Integer> itemIds = this.schemeItemsToItemIds(schemeItems);
-
 
233
		List<Item> items = itemRepository.selectByIds(itemIds);
-
 
234
		Map<Integer, String> itemStringMap = this.toItemStringMap(items);
189
		this.addItemIdsToSchemes(schemeItems, schemeIdSchemeMap);
235
		this.addItemIdsToSchemes(schemeItems, schemeIdSchemeMap, itemStringMap);
190
		List<RetailerScheme> retailerSchemes = retailerSchemeRepository.selectBySchemeIds(schemeIdSchemeMap.keySet());
236
		List<RetailerScheme> retailerSchemes = retailerSchemeRepository.selectBySchemeIds(schemeIdSchemeMap.keySet());
191
		this.addRetailerIdsToSchemes(retailerSchemes, schemeIdSchemeMap);
237
		this.addRetailerIdsToSchemes(retailerSchemes, schemeIdSchemeMap);
192
		return this.toSchemeModels(schemeIdSchemeMap);
238
		return this.toSchemeModels(schemeIdSchemeMap);
193
	}
239
	}
194
	
240
	
195
	private void addItemIdsToSchemes(List<SchemeItem> schemeItems, Map<Integer, Scheme> schemeIdSchemeMap){
241
	private void addItemIdsToSchemes(List<SchemeItem> schemeItems, Map<Integer, Scheme> schemeIdSchemeMap, Map<Integer, String> itemStringMap){
196
		for(SchemeItem schemeItem : schemeItems){
242
		for(SchemeItem schemeItem : schemeItems){
197
			schemeIdSchemeMap.get(schemeItem.getSchemeId())
243
			schemeIdSchemeMap.get(schemeItem.getSchemeId())
198
			.getItemIds()
244
			.getItemStringMap()
199
			.add(schemeItem.getItemId());
245
			.put(schemeItem.getItemId(), itemStringMap.get(schemeItem.getItemId()));
200
		}
246
		}
201
	}
247
	}
202
	
248
	
203
	private void addRetailerIdsToSchemes(List<RetailerScheme> retailerSchemes, Map<Integer, Scheme> schemeIdSchemeMap){
249
	private void addRetailerIdsToSchemes(List<RetailerScheme> retailerSchemes, Map<Integer, Scheme> schemeIdSchemeMap){
204
		for(RetailerScheme retailerScheme : retailerSchemes){
250
		for(RetailerScheme retailerScheme : retailerSchemes){
Line 228... Line 274...
228
		schemeModel.setEndDateTime(StringUtils.toString(scheme.getEndDateTime()));
274
		schemeModel.setEndDateTime(StringUtils.toString(scheme.getEndDateTime()));
229
		schemeModel.setCreateTimestamp(StringUtils.toString(scheme.getCreateTimestamp()));
275
		schemeModel.setCreateTimestamp(StringUtils.toString(scheme.getCreateTimestamp()));
230
		schemeModel.setActiveTimestamp(StringUtils.toString(scheme.getActiveTimestamp()));
276
		schemeModel.setActiveTimestamp(StringUtils.toString(scheme.getActiveTimestamp()));
231
		schemeModel.setExpireTimestamp(StringUtils.toString(scheme.getExpireTimestamp()));
277
		schemeModel.setExpireTimestamp(StringUtils.toString(scheme.getExpireTimestamp()));
232
		schemeModel.setCreatedBy(scheme.getCreatedBy());
278
		schemeModel.setCreatedBy(scheme.getCreatedBy());
233
		schemeModel.setItemIds(scheme.getItemIds());
279
		schemeModel.setItemStringMap(scheme.getItemStringMap());
234
		schemeModel.setRetailerIds(scheme.getRetailerIds());
280
		schemeModel.setRetailerIds(scheme.getRetailerIds());
235
		return schemeModel;
281
		return schemeModel;
236
	}
282
	}
237
 
283
 
238
	@Override
284
	@Override
Line 254... Line 300...
254
	}
300
	}
255
	
301
	
256
	private void processPreviousPurchases(Scheme scheme) throws ProfitMandiBusinessException{
302
	private void processPreviousPurchases(Scheme scheme) throws ProfitMandiBusinessException{
257
		List<InventoryItem> inventoryItems = inventoryItemRepository.selectBetweenDates(scheme.getStartDateTime(), LocalDateTime.now());
303
		List<InventoryItem> inventoryItems = inventoryItemRepository.selectBetweenDates(scheme.getStartDateTime(), LocalDateTime.now());
258
		List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
304
		List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(scheme.getId());
-
 
305
		List<Item> items = itemRepository.selectByIds(new HashSet<>(itemIds));
-
 
306
		Map<Integer, String> itemStringMap = this.toItemStringMap(items);
259
		List<InventoryItem> completedInventoryItems = this.toFilteredPurchaseCompletedInventoryItems(inventoryItems, itemIds, true);
307
		List<InventoryItem> completedInventoryItems = this.toFilteredPurchaseCompletedInventoryItems(inventoryItems, itemIds, true);
260
		
308
		
261
		if(scheme.isRetailerAll()){
309
		if(scheme.isRetailerAll()){
262
			for(InventoryItem inventoryItem : completedInventoryItems){
310
			for(InventoryItem inventoryItem : completedInventoryItems){
263
				float cashback = this.createSchemeInOut(scheme, inventoryItem);
311
				float cashback = this.createSchemeInOut(scheme, inventoryItem);
264
				walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_IN, "Added for SCHEME_IN", cashback);
312
				walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_IN, "Added SCHEME_IN for item "+itemStringMap.get(inventoryItem.getItemId())+" against invoiceNumber ["+inventoryItem.getPurchase().getPurchaseReference() +"]", cashback);
265
			}
313
			}
266
		}else{
314
		}else{
267
			List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
315
			List<Integer> retailerIds = retailerSchemeRepository.selectRetailerIdsBySchemeId(scheme.getId());
268
			for(InventoryItem inventoryItem : completedInventoryItems){
316
			for(InventoryItem inventoryItem : completedInventoryItems){
269
				if(retailerIds.contains(inventoryItem.getFofoId())){
317
				if(retailerIds.contains(inventoryItem.getFofoId())){
270
					float cashback = this.createSchemeInOut(scheme, inventoryItem);
318
					float cashback = this.createSchemeInOut(scheme, inventoryItem);
271
					walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_IN, "Added for SCHEME_IN", cashback);
319
					walletService.addAmountToWallet(inventoryItem.getFofoId(), inventoryItem.getPurchaseId(), WalletReferenceType.SCHEME_IN, "Added SCHEME_IN for item "+itemStringMap.get(inventoryItem.getItemId())+" against invoiceNumber ["+inventoryItem.getPurchase().getPurchaseReference() +"]", cashback);
272
				}
320
				}
273
			}
321
			}
274
		}
322
		}
275
		
323
		
276
	}
324
	}
Line 459... Line 507...
459
			return 0;
507
			return 0;
460
		}
508
		}
461
		List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
509
		List<InventoryItem> inventoryItems = inventoryItemRepository.selectByPurchaseId(purchaseId);
462
		LOGGER.info("SchemeIn filter inventoryItems {}", inventoryItems);
510
		LOGGER.info("SchemeIn filter inventoryItems {}", inventoryItems);
463
		
511
		
-
 
512
		Purchase purchase = purchaseRepository.selectByIdAndFofoId(purchaseId, retailerId);
-
 
513
		
464
		Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes, inventoryItems);
514
		Map<InventoryItem, Set<Scheme>> inventoryItemSchemesMap = this.toInventoryItemSchemesMap(schemes, inventoryItems);
465
		
515
		
466
		if(inventoryItemSchemesMap.isEmpty()){
516
		if(inventoryItemSchemesMap.isEmpty()){
467
			return 0;
517
			return 0;
468
		}
518
		}
469
		Map<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesMap = new HashMap<>();
519
		Map<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesMap = new HashMap<>();
470
		Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
520
		Map<InventoryItem, Set<Scheme>> allInventoryItemSchemesMap = new HashMap<>();
-
 
521
		Set<Integer> itemIds = new HashSet<>();
471
		
522
		
472
		for(Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()){
523
		for(Map.Entry<InventoryItem, Set<Scheme>> inventoryItemSchemesEntry : inventoryItemSchemesMap.entrySet()){
473
			Set<Scheme> notAllSchemes = new HashSet<>();
524
			Set<Scheme> notAllSchemes = new HashSet<>();
474
			Set<Scheme> allSchemes = new HashSet<>();
525
			Set<Scheme> allSchemes = new HashSet<>();
475
			for(Scheme scheme : inventoryItemSchemesEntry.getValue()){
526
			for(Scheme scheme : inventoryItemSchemesEntry.getValue()){
Line 479... Line 530...
479
					allSchemes.add(scheme);
530
					allSchemes.add(scheme);
480
				}
531
				}
481
			}
532
			}
482
			notAllInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), notAllSchemes);
533
			notAllInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), notAllSchemes);
483
			allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
534
			allInventoryItemSchemesMap.put(inventoryItemSchemesEntry.getKey(), allSchemes);
-
 
535
			itemIds.add(inventoryItemSchemesEntry.getKey().getItemId());
484
		}
536
		}
-
 
537
		
-
 
538
		List<Item> items = itemRepository.selectByIds(itemIds);
-
 
539
		Map<Integer, String> itemStringMap = this.toItemStringMap(items);
485
			
540
		
-
 
541
		Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
-
 
542
		Map<Integer, Integer> itemIdCashbackCountMap = new HashMap<>();
-
 
543
		
486
		for(Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap.entrySet()){
544
		for(Map.Entry<InventoryItem, Set<Scheme>> allInventoryItemSchemesEntry : allInventoryItemSchemesMap.entrySet()){
487
			for(Scheme scheme : allInventoryItemSchemesEntry.getValue()){
545
			for(Scheme scheme : allInventoryItemSchemesEntry.getValue()){
-
 
546
				InventoryItem inventoryItem = allInventoryItemSchemesEntry.getKey();
488
				float cashback = this.createSchemeInOut(scheme, allInventoryItemSchemesEntry.getKey());
547
				float cashback = this.createSchemeInOut(scheme, inventoryItem);
-
 
548
				if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
-
 
549
					itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
-
 
550
					itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
-
 
551
				}else{
-
 
552
					itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
-
 
553
					itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
-
 
554
				}
489
				totalCashback = totalCashback + cashback;
555
				totalCashback = totalCashback + cashback;
490
			}
556
			}
491
		}
557
		}
-
 
558
		
-
 
559
		//Map<Integer, Float> itemIdCashbackMap = new HashMap<>();
-
 
560
		
492
			
561
			
493
		Set<Integer> schemeIds = this.inventoryItemSchemesMapToSchemeIds(notAllInventoryItemSchemesMap);
562
		Set<Integer> schemeIds = this.inventoryItemSchemesMapToSchemeIds(notAllInventoryItemSchemesMap);
494
		if(!schemeIds.isEmpty()){
563
		if(!schemeIds.isEmpty()){
495
			List<Integer> foundSchemeIds = retailerSchemeRepository.selectSchemeIds(schemeIds, retailerId);
564
			List<Integer> foundSchemeIds = retailerSchemeRepository.selectSchemeIds(schemeIds, retailerId);
496
			
-
 
497
			for(Map.Entry<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesEntry : notAllInventoryItemSchemesMap.entrySet()){
565
			for(Map.Entry<InventoryItem, Set<Scheme>> notAllInventoryItemSchemesEntry : notAllInventoryItemSchemesMap.entrySet()){
498
				for(Scheme scheme : notAllInventoryItemSchemesEntry.getValue()){
566
				for(Scheme scheme : notAllInventoryItemSchemesEntry.getValue()){
499
					if(foundSchemeIds.contains(scheme.getId())){
567
					if(foundSchemeIds.contains(scheme.getId())){
-
 
568
						InventoryItem inventoryItem = notAllInventoryItemSchemesEntry.getKey();
500
						float cashback = this.createSchemeInOut(scheme, notAllInventoryItemSchemesEntry.getKey());
569
						float cashback = this.createSchemeInOut(scheme, inventoryItem);
-
 
570
						if(!itemIdCashbackMap.containsKey(inventoryItem.getItemId())){
-
 
571
							itemIdCashbackMap.put(inventoryItem.getItemId(), cashback);
-
 
572
							itemIdCashbackCountMap.put(inventoryItem.getItemId(), 1);
-
 
573
						}else{
-
 
574
							itemIdCashbackMap.put(inventoryItem.getItemId(), itemIdCashbackMap.get(inventoryItem.getItemId()) + cashback);
-
 
575
							itemIdCashbackCountMap.put(inventoryItem.getItemId(), itemIdCashbackCountMap.get(inventoryItem.getItemId()) + 1);
-
 
576
						}
501
						totalCashback = totalCashback + cashback;
577
						totalCashback = totalCashback + cashback;
502
					}
578
					}
503
				}
579
				}
504
			}
580
			}
505
		}
581
		}
506
		if(totalCashback > 0){
582
		for(Map.Entry<Integer, Float> itemIdCashbackEntry : itemIdCashbackMap.entrySet()){
507
			walletService.addAmountToWallet(retailerId, purchaseId, WalletReferenceType.SCHEME_IN, "Added for SCHEME_IN", totalCashback);
583
			walletService.addAmountToWallet(retailerId, purchaseId, WalletReferenceType.SCHEME_IN,
-
 
584
					itemIdCashbackCountMap.get(itemIdCashbackEntry.getKey())+"pcs of item "+
-
 
585
					itemStringMap.get(itemIdCashbackEntry.getKey()) +
-
 
586
			" Added for SCHEME_IN against invoiceNumber ["+purchase.getPurchaseReference()+"]", totalCashback);
508
		}
587
		}
509
		return totalCashback;
588
		return totalCashback;
510
	}
589
	}
511
	
590
	
512
	private float createSchemeInOut(Scheme scheme, InventoryItem inventoryItem){
591
	private float createSchemeInOut(Scheme scheme, InventoryItem inventoryItem){