| Line 17... |
Line 17... |
| 17 |
import com.spice.profitmandi.dao.entity.fofo.*;
|
17 |
import com.spice.profitmandi.dao.entity.fofo.*;
|
| 18 |
import com.spice.profitmandi.dao.entity.inventory.PartnerAgeingModel;
|
18 |
import com.spice.profitmandi.dao.entity.inventory.PartnerAgeingModel;
|
| 19 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
19 |
import com.spice.profitmandi.dao.entity.transaction.PriceDrop;
|
| 20 |
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
|
20 |
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
|
| 21 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
21 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
| - |
|
22 |
import com.spice.profitmandi.dao.entity.warehouse.WarehouseInventoryItem;
|
| 22 |
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
|
23 |
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
|
| 23 |
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
|
24 |
import com.spice.profitmandi.dao.enumuration.catalog.SchemeType;
|
| 24 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
25 |
import com.spice.profitmandi.dao.enumuration.fofo.ScanType;
|
| 25 |
import com.spice.profitmandi.dao.enumuration.transaction.SchemePayoutStatus;
|
26 |
import com.spice.profitmandi.dao.enumuration.transaction.SchemePayoutStatus;
|
| 26 |
import com.spice.profitmandi.dao.model.AmountModel;
|
27 |
import com.spice.profitmandi.dao.model.AmountModel;
|
| Line 30... |
Line 31... |
| 30 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
31 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
| 31 |
import com.spice.profitmandi.dao.repository.fofo.*;
|
32 |
import com.spice.profitmandi.dao.repository.fofo.*;
|
| 32 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
33 |
import com.spice.profitmandi.dao.repository.transaction.PriceDropRepository;
|
| 33 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
|
34 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
|
| 34 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
|
35 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
|
| - |
|
36 |
import com.spice.profitmandi.dao.repository.warehouse.AgeingSummaryModel;
|
| - |
|
37 |
import com.spice.profitmandi.dao.repository.warehouse.BilledImeiModel;
|
| - |
|
38 |
import com.spice.profitmandi.dao.repository.warehouse.WarehouseInventoryItemRepository;
|
| 35 |
import com.spice.profitmandi.service.NotificationService;
|
39 |
import com.spice.profitmandi.service.NotificationService;
|
| 36 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
40 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 37 |
import com.spice.profitmandi.service.inventory.AgeingService;
|
41 |
import com.spice.profitmandi.service.inventory.AgeingService;
|
| 38 |
import com.spice.profitmandi.service.inventory.PurchaseService;
|
42 |
import com.spice.profitmandi.service.inventory.PurchaseService;
|
| 39 |
import com.spice.profitmandi.service.pricecircular.CatalogSummaryModel;
|
43 |
import com.spice.profitmandi.service.pricecircular.CatalogSummaryModel;
|
| Line 727... |
Line 731... |
| 727 |
}
|
731 |
}
|
| 728 |
}
|
732 |
}
|
| 729 |
return filteredInventoryIds;
|
733 |
return filteredInventoryIds;
|
| 730 |
}
|
734 |
}
|
| 731 |
|
735 |
|
| - |
|
736 |
@Autowired
|
| - |
|
737 |
WarehouseInventoryItemRepository warehouseInventoryItemRepository;
|
| - |
|
738 |
|
| 732 |
@Override
|
739 |
@Override
|
| 733 |
public float processSchemeOut(int fofoOrderId, int retailerId) throws ProfitMandiBusinessException {
|
740 |
public float processSchemeOut(int fofoOrderId, int retailerId) throws ProfitMandiBusinessException {
|
| 734 |
float totalCashback = 0;
|
741 |
float totalCashback = 0;
|
| 735 |
FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(retailerId, fofoOrderId);
|
742 |
FofoOrder fofoOrder = fofoOrderRepository.selectByFofoIdAndOrderId(retailerId, fofoOrderId);
|
| 736 |
// Process only if order is not cancelled
|
743 |
// Process only if order is not cancelled
|
| Line 757... |
Line 764... |
| 757 |
Set<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
764 |
Set<InventoryItem> inventoryItems = inventoryItemRepository.selectByIds(inventoryItemIds).stream()
|
| 758 |
.filter(x -> x.getSerialNumber() != null && !x.getSerialNumber().equals(""))
|
765 |
.filter(x -> x.getSerialNumber() != null && !x.getSerialNumber().equals(""))
|
| 759 |
.collect(Collectors.toSet());
|
766 |
.collect(Collectors.toSet());
|
| 760 |
inventoryItems = inventoryItems.stream().filter(inventoryItem -> !BLOCKED_IMEIS.contains(inventoryItem.getSerialNumber())).collect(Collectors.toSet());
|
767 |
inventoryItems = inventoryItems.stream().filter(inventoryItem -> !BLOCKED_IMEIS.contains(inventoryItem.getSerialNumber())).collect(Collectors.toSet());
|
| 761 |
|
768 |
|
| - |
|
769 |
//Do not consider imei above 90 days for samsung
|
| - |
|
770 |
List<String> samsungSerialNumbers = inventoryItems.stream().filter(x->x.getItem().getBrand().equalsIgnoreCase("samsung")).map(x->x.getSerialNumber()).collect(Collectors.toList());
|
| - |
|
771 |
if(samsungSerialNumbers.size() > 0) {
|
| - |
|
772 |
List<AgeingSummaryModel> billedImeiModels = warehouseInventoryItemRepository.findStockAgeingByFofoIdSerialNumbers(retailerId, samsungSerialNumbers);
|
| - |
|
773 |
Set<String> agedSerialNumbers = billedImeiModels.stream().filter(x->x.isAgedAbove(90)).map(x->x.getSerialNumber()).collect(Collectors.toSet());
|
| - |
|
774 |
inventoryItems = inventoryItems.stream().filter(x->!agedSerialNumbers.contains(x.getSerialNumber())).collect(Collectors.toSet());
|
| - |
|
775 |
}
|
| - |
|
776 |
|
| 762 |
if (inventoryItems.size() == 0) return 0;
|
777 |
if (inventoryItems.size() == 0) return 0;
|
| 763 |
|
778 |
|
| 764 |
Map<Integer, List<InventoryItem>> catalogInventoryItemMap = inventoryItems.stream().collect(Collectors.groupingBy(x -> x.getItem().getCatalogItemId()));
|
779 |
Map<Integer, List<InventoryItem>> catalogInventoryItemMap = inventoryItems.stream().collect(Collectors.groupingBy(x -> x.getItem().getCatalogItemId()));
|
| 765 |
Map<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSchemeSummaryMap = tagListingRepository.getModelSchemesByCatalogIdsAndType(retailerId,
|
780 |
Map<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSchemeSummaryMap = tagListingRepository.getModelSchemesByCatalogIdsAndType(retailerId,
|
| 766 |
partnerType, new ArrayList<>(catalogInventoryItemMap.keySet()), fofoOrder.getCreateTimestamp());
|
781 |
partnerType, new ArrayList<>(catalogInventoryItemMap.keySet()), fofoOrder.getCreateTimestamp());
|