Subversion Repositories SmartDukaan

Rev

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

Rev 32972 Rev 33087
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());