| Line 515... |
Line 515... |
| 515 |
|
515 |
|
| 516 |
int itemsCount = 0;
|
516 |
int itemsCount = 0;
|
| 517 |
float totalCashback = 0;
|
517 |
float totalCashback = 0;
|
| 518 |
for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
|
518 |
for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
|
| 519 |
CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
|
519 |
CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
|
| 520 |
List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x->x !=null).collect(Collectors.toList());
|
520 |
List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x -> x != null).collect(Collectors.toList());
|
| 521 |
schemeSummaryModels.stream().filter(x -> x!=null && x.getSchemeType().equals(SchemeType.IN)).forEach(x -> x.setProcess(true));
|
521 |
schemeSummaryModels.stream().filter(x -> x != null && x.getSchemeType().equals(SchemeType.IN)).forEach(x -> x.setProcess(true));
|
| 522 |
if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
|
522 |
if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
|
| 523 |
List<InventoryItem> modelInventoryItems = catalogInventoryItemMap.get(catalogSummaryModel.getCatalogId());
|
523 |
List<InventoryItem> modelInventoryItems = catalogInventoryItemMap.get(catalogSummaryModel.getCatalogId());
|
| 524 |
for (InventoryItem inventoryItem : modelInventoryItems) {
|
524 |
for (InventoryItem inventoryItem : modelInventoryItems) {
|
| 525 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem, partnerType);
|
525 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem, partnerType);
|
| 526 |
if (inventoryItemCashback > 0) {
|
526 |
if (inventoryItemCashback > 0) {
|
| Line 753... |
Line 753... |
| 753 |
|
753 |
|
| 754 |
|
754 |
|
| 755 |
int count = 0;
|
755 |
int count = 0;
|
| 756 |
for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
|
756 |
for (Map.Entry<CatalogSummaryModel, List<SchemeSummaryModel>> catalogSummaryModelListEntry : catalogSchemeSummaryMap.entrySet()) {
|
| 757 |
CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
|
757 |
CatalogSummaryModel catalogSummaryModel = catalogSummaryModelListEntry.getKey();
|
| 758 |
List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x->x != null).collect(Collectors.toList());
|
758 |
List<SchemeSummaryModel> schemeSummaryModels = catalogSummaryModelListEntry.getValue().stream().filter(x -> x != null).collect(Collectors.toList());
|
| 759 |
List<SchemeType> allOutSchemeTypes = new ArrayList<>();
|
759 |
List<SchemeType> allOutSchemeTypes = new ArrayList<>();
|
| 760 |
allOutSchemeTypes.addAll(Arrays.asList(SchemeType.ACTIVATION, SchemeType.INVESTMENT, SchemeType.SPECIAL_SUPPORT, SchemeType.SELLOUT));
|
760 |
allOutSchemeTypes.addAll(Arrays.asList(SchemeType.ACTIVATION, SchemeType.INVESTMENT, SchemeType.SPECIAL_SUPPORT, SchemeType.SELLOUT));
|
| 761 |
allOutSchemeTypes.addAll(OUT_SCHEME_TYPES);
|
761 |
allOutSchemeTypes.addAll(OUT_SCHEME_TYPES);
|
| 762 |
schemeSummaryModels.stream().filter(x -> allOutSchemeTypes.contains(x.getSchemeType())).forEach(x -> x.setProcess(true));
|
762 |
schemeSummaryModels.stream().filter(x -> allOutSchemeTypes.contains(x.getSchemeType())).forEach(x -> x.setProcess(true));
|
| 763 |
if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
|
763 |
if (schemeSummaryModels.stream().filter(x -> x.isProcess()).count() == 0) continue;
|
| Line 1034... |
Line 1034... |
| 1034 |
WalletReferenceType walletReferenceType = schemeTypes.containsAll(SchemeService.OUT_SCHEME_TYPES) ? WalletReferenceType.SCHEME_OUT
|
1034 |
WalletReferenceType walletReferenceType = schemeTypes.containsAll(SchemeService.OUT_SCHEME_TYPES) ? WalletReferenceType.SCHEME_OUT
|
| 1035 |
: schemeTypes.contains(SchemeType.ACTIVATION) ? WalletReferenceType.ACTIVATION_SCHEME
|
1035 |
: schemeTypes.contains(SchemeType.ACTIVATION) ? WalletReferenceType.ACTIVATION_SCHEME
|
| 1036 |
: schemeTypes.contains(SchemeType.SPECIAL_SUPPORT) ? WalletReferenceType.SPECIAL_SUPPORT
|
1036 |
: schemeTypes.contains(SchemeType.SPECIAL_SUPPORT) ? WalletReferenceType.SPECIAL_SUPPORT
|
| 1037 |
: schemeTypes.contains(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT : null;
|
1037 |
: schemeTypes.contains(SchemeType.INVESTMENT) ? WalletReferenceType.INVESTMENT_PAYOUT : null;
|
| 1038 |
|
1038 |
|
| 1039 |
if (walletReferenceType == null)
|
- |
|
| 1040 |
if (amountToRollback > 0 && walletReferenceType != null) {
|
1039 |
if (amountToRollback > 0 && walletReferenceType != null) {
|
| 1041 |
// Mark appropriate reference of rollback investment margin
|
1040 |
// Mark appropriate reference of rollback investment margin
|
| 1042 |
if (schemeTypes.contains(SchemeType.INVESTMENT)) {
|
1041 |
if (schemeTypes.contains(SchemeType.INVESTMENT)) {
|
| 1043 |
List<UserWalletHistory> userWalletHistoryList = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(reversalReference, walletReferenceType);
|
1042 |
List<UserWalletHistory> userWalletHistoryList = userWalletHistoryRepository.selectAllByreferenceIdandreferenceType(reversalReference, walletReferenceType);
|
| 1044 |
if (userWalletHistoryList.size() == 0) {
|
1043 |
if (userWalletHistoryList.size() == 0) {
|
| 1045 |
reversalReference = Integer
|
1044 |
reversalReference = Integer
|
| 1046 |
.parseInt(FormattingUtils.getYearMonth(schemeTypeMap.get(SchemeType.INVESTMENT).getCreditTimestamp().minusMonths(1)));
|
1045 |
.parseInt(FormattingUtils.getYearMonth(schemeTypeMap.get(SchemeType.INVESTMENT).getCreditTimestamp().minusMonths(1)));
|
| 1047 |
}
|
- |
|
| 1048 |
|
- |
|
| 1049 |
}
|
1046 |
}
|
| 1050 |
walletService.rollbackAmountFromWallet(fofoId, amountToRollback, reversalReference, walletReferenceType,
|
- |
|
| 1051 |
reversalReason, LocalDateTime.now());
|
- |
|
| - |
|
1047 |
|
| 1052 |
}
|
1048 |
}
|
| - |
|
1049 |
walletService.rollbackAmountFromWallet(fofoId, amountToRollback, reversalReference, walletReferenceType,
|
| - |
|
1050 |
reversalReason, LocalDateTime.now());
|
| - |
|
1051 |
}
|
| 1053 |
}
|
1052 |
}
|
| 1054 |
|
1053 |
|
| 1055 |
@Override
|
1054 |
@Override
|
| 1056 |
public double getTotalMargin(int itemId, PartnerType partnerType, LocalDateTime dateTime) {
|
1055 |
public double getTotalMargin(int itemId, PartnerType partnerType, LocalDateTime dateTime) {
|
| 1057 |
Session session = sessionFactory.getCurrentSession();
|
1056 |
Session session = sessionFactory.getCurrentSession();
|
| Line 1211... |
Line 1210... |
| 1211 |
InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(ii);
|
1210 |
InventoryPayoutModel inventoryPayoutModel = priceCircularService.getPayouts(ii);
|
| 1212 |
AmountModel amountModel = new AmountModel();
|
1211 |
AmountModel amountModel = new AmountModel();
|
| 1213 |
amountModel.setAmount(scheme.getAmount());
|
1212 |
amountModel.setAmount(scheme.getAmount());
|
| 1214 |
amountModel.setAmountType(scheme.getAmountType());
|
1213 |
amountModel.setAmountType(scheme.getAmountType());
|
| 1215 |
double amountToRollout = inventoryPayoutModel.getRolloutAmount(amountModel);
|
1214 |
double amountToRollout = inventoryPayoutModel.getRolloutAmount(amountModel);
|
| 1216 |
pendingPayout.setAmount((float)amountToRollout);
|
1215 |
pendingPayout.setAmount((float) amountToRollout);
|
| 1217 |
if (scheme.getType().equals(SchemeType.ACTIVATION)) {
|
1216 |
if (scheme.getType().equals(SchemeType.ACTIVATION)) {
|
| 1218 |
walletService.addAmountToWallet(fofoId, orderId, WalletReferenceType.ACTIVATION_SCHEME,
|
1217 |
walletService.addAmountToWallet(fofoId, orderId, WalletReferenceType.ACTIVATION_SCHEME,
|
| 1219 |
"Activation margin for " + ii.getItem().getItemDescriptionNoColor() + ", Imei - " + serialNumber, (float) amountToRollout,
|
1218 |
"Activation margin for " + ii.getItem().getItemDescriptionNoColor() + ", Imei - " + serialNumber, (float) amountToRollout,
|
| 1220 |
fofoOrder.getCreateTimestamp());
|
1219 |
fofoOrder.getCreateTimestamp());
|
| 1221 |
pendingPayout.setStatusDescription("Activation margin credited, activated on " + FormattingUtils.formatDate(activatedImei.getActivationTimestamp()));
|
1220 |
pendingPayout.setStatusDescription("Activation margin credited, activated on " + FormattingUtils.formatDate(activatedImei.getActivationTimestamp()));
|