| Line 628... |
Line 628... |
| 628 |
double fixedToPay = 0d;
|
628 |
double fixedToPay = 0d;
|
| 629 |
Map<SchemeSummaryModel, AmountModel> payoutSchemeSummaryModelMap = new HashMap<>();
|
629 |
Map<SchemeSummaryModel, AmountModel> payoutSchemeSummaryModelMap = new HashMap<>();
|
| 630 |
for (SchemeSummaryModel schemeSummaryModelToProcess : inventoryPayoutModelToProcess) {
|
630 |
for (SchemeSummaryModel schemeSummaryModelToProcess : inventoryPayoutModelToProcess) {
|
| 631 |
if (paidSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()) || pendingSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()))
|
631 |
if (paidSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()) || pendingSchemesMap.containsKey(schemeSummaryModelToProcess.getSchemeId()))
|
| 632 |
continue;
|
632 |
continue;
|
| 633 |
//If different type but on higher side provide the higher margin
|
633 |
//All Valid margins are supposed to be credited invalid margins should be rejected
|
| 634 |
if (Arrays.asList(SchemeType.SPECIAL_SUPPORT).contains(schemeSummaryModelToProcess.getSchemeType())) {
|
634 |
if (SchemeType.SPECIAL_SUPPORT.equals(schemeSummaryModelToProcess.getSchemeType())) {
|
| 635 |
Scheme scheme = schemeRepository.selectById(schemeSummaryModelToProcess.getSchemeId());
|
- |
|
| 636 |
//Create only if the activation if the activation date is not known
|
635 |
//Create only if the activation date is not known
|
| 637 |
ActivatedImei activatedImei = activatedImeiRepository.selectBySerialNumber(inventoryItem.getSerialNumber());
|
636 |
ActivatedImei activatedImei = activatedImeiRepository.selectBySerialNumber(inventoryItem.getSerialNumber());
|
| 638 |
if (activatedImei == null || activatedImei.getActivationTimestamp() == null) {
|
637 |
if (activatedImei == null || activatedImei.getActivationTimestamp() == null) {
|
| 639 |
SchemeInOut sio = new SchemeInOut();
|
638 |
SchemeInOut sio = new SchemeInOut();
|
| 640 |
sio.setAmount(0);
|
639 |
sio.setAmount(0);
|
| 641 |
sio.setInventoryItemId(inventoryItem.getId());
|
640 |
sio.setInventoryItemId(inventoryItem.getId());
|
| Line 758... |
Line 757... |
| 758 |
// PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(retailerId,
|
757 |
// PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(retailerId,
|
| 759 |
// fofoOrder.getCreateTimestamp().toLocalDate());
|
758 |
// fofoOrder.getCreateTimestamp().toLocalDate());
|
| 760 |
// TODO - SCHEME
|
759 |
// TODO - SCHEME
|
| 761 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnMonth(retailerId,
|
760 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnMonth(retailerId,
|
| 762 |
YearMonth.from(fofoOrder.getCreateTimestamp()));
|
761 |
YearMonth.from(fofoOrder.getCreateTimestamp()));
|
| - |
|
762 |
LOGGER.info("OrderDate - {}, Partner Type - {}", fofoOrder.getCreateTimestamp(), partnerType);
|
| 763 |
|
763 |
|
| 764 |
List<ScanRecord> scanRecords = scanRecordRepository.selectAllByOrderId(fofoOrderId);
|
764 |
List<ScanRecord> scanRecords = scanRecordRepository.selectAllByOrderId(fofoOrderId);
|
| 765 |
if (scanRecords.size() == 0) return 0;
|
765 |
if (scanRecords.size() == 0) return 0;
|
| 766 |
Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
|
766 |
Set<Integer> inventoryItemIds = scanRecords.stream().map(x -> x.getInventoryItemId())
|
| 767 |
.collect(Collectors.toSet());
|
767 |
.collect(Collectors.toSet());
|
| Line 818... |
Line 818... |
| 818 |
.filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
|
818 |
.filter(x -> x.getStatus().equals(SchemePayoutStatus.CREDITED))
|
| 819 |
.map(x -> x.getSchemeId()).collect(Collectors.toList());
|
819 |
.map(x -> x.getSchemeId()).collect(Collectors.toList());
|
| 820 |
|
820 |
|
| 821 |
double sioRejectedValue = 0;
|
821 |
double sioRejectedValue = 0;
|
| 822 |
if (creditedSchemeIds.size() > 0) {
|
822 |
if (creditedSchemeIds.size() > 0) {
|
| - |
|
823 |
//Also ignore special support
|
| 823 |
List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
|
824 |
List<Integer> schemeIdsToReject = schemeRepository.selectBySchemeIds(creditedSchemeIds).stream()
|
| 824 |
.filter(x -> SchemeType.OUT_TYPES.contains(x.getType())).map(x -> x.getId()).collect(Collectors.toList());
|
825 |
.filter(x -> SchemeType.OUT_TYPES.contains(x.getType()) && !SchemeType.SPECIAL_SUPPORT.equals(x.getType()))
|
| - |
|
826 |
.map(x -> x.getId()).collect(Collectors.toList());
|
| 825 |
//Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
|
827 |
//Reject invalid scheme payouts due to upgrade in Category or any change in schemes historically
|
| - |
|
828 |
//Lets not touchs
|
| 826 |
for (SchemeInOut sio : sios) {
|
829 |
for (SchemeInOut sio : sios) {
|
| 827 |
if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
|
830 |
if (schemeIdsToReject.contains(sio.getSchemeId()) && !schemeSummaryModelMap.containsKey(sio.getSchemeId())) {
|
| 828 |
Scheme scheme = schemeRepository.selectById(sio.getSchemeId());
|
831 |
Scheme scheme = schemeRepository.selectById(sio.getSchemeId());
|
| 829 |
if (!scheme.getType().equals(SchemeType.SPECIAL_SUPPORT)) {
|
- |
|
| 830 |
sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
|
832 |
sio.setStatusDescription("Rolledback due to Category upgrade/invalid scheme");
|
| 831 |
sio.setStatus(SchemePayoutStatus.REJECTED);
|
833 |
sio.setStatus(SchemePayoutStatus.REJECTED);
|
| 832 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
834 |
sio.setRolledBackTimestamp(LocalDateTime.now());
|
| 833 |
sioRejectedValue += sio.getAmount();
|
835 |
sioRejectedValue += sio.getAmount();
|
| 834 |
}
|
- |
|
| 835 |
}
|
836 |
}
|
| 836 |
}
|
837 |
}
|
| 837 |
}
|
838 |
}
|
| 838 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
|
839 |
float inventoryItemCashback = this.createSchemeInOut(schemeSummaryModels, inventoryItem);
|
| 839 |
if (inventoryItemCashback > 0 || sioRejectedValue > 0) {
|
840 |
if (inventoryItemCashback > 0 || sioRejectedValue > 0) {
|