| Line 54... |
Line 54... |
| 54 |
import com.spice.profitmandi.common.model.UnsettledPaymentModel;
|
54 |
import com.spice.profitmandi.common.model.UnsettledPaymentModel;
|
| 55 |
import com.spice.profitmandi.common.util.ExcelUtils;
|
55 |
import com.spice.profitmandi.common.util.ExcelUtils;
|
| 56 |
import com.spice.profitmandi.common.util.FileUtil;
|
56 |
import com.spice.profitmandi.common.util.FileUtil;
|
| 57 |
import com.spice.profitmandi.common.util.StringUtils;
|
57 |
import com.spice.profitmandi.common.util.StringUtils;
|
| 58 |
import com.spice.profitmandi.common.util.WalletHistoryModel;
|
58 |
import com.spice.profitmandi.common.util.WalletHistoryModel;
|
| - |
|
59 |
import com.spice.profitmandi.dao.entity.dtr.CreditAccount;
|
| 59 |
import com.spice.profitmandi.dao.entity.transaction.AddWalletRequest;
|
60 |
import com.spice.profitmandi.dao.entity.transaction.AddWalletRequest;
|
| 60 |
import com.spice.profitmandi.dao.entity.transaction.ManualPaymentType;
|
61 |
import com.spice.profitmandi.dao.entity.transaction.ManualPaymentType;
|
| 61 |
import com.spice.profitmandi.dao.entity.transaction.UnsettledPayment;
|
62 |
import com.spice.profitmandi.dao.entity.transaction.UnsettledPayment;
|
| 62 |
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
|
63 |
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
|
| 63 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
64 |
import com.spice.profitmandi.dao.entity.transaction.UserWalletHistory;
|
| 64 |
import com.spice.profitmandi.dao.enumuration.transaction.AddWalletRequestStatus;
|
65 |
import com.spice.profitmandi.dao.enumuration.transaction.AddWalletRequestStatus;
|
| 65 |
import com.spice.profitmandi.dao.enumuration.transaction.TransactionType;
|
66 |
import com.spice.profitmandi.dao.enumuration.transaction.TransactionType;
|
| 66 |
import com.spice.profitmandi.dao.repository.catalog.AddWalletRequestRepository;
|
67 |
import com.spice.profitmandi.dao.repository.catalog.AddWalletRequestRepository;
|
| 67 |
import com.spice.profitmandi.dao.repository.catalog.ManualPaymentRequestRepository;
|
68 |
import com.spice.profitmandi.dao.repository.catalog.ManualPaymentRequestRepository;
|
| 68 |
import com.spice.profitmandi.dao.repository.catalog.UnsettledPaymentsRepository;
|
69 |
import com.spice.profitmandi.dao.repository.catalog.UnsettledPaymentsRepository;
|
| - |
|
70 |
import com.spice.profitmandi.dao.repository.dtr.CreditAccountRepository;
|
| 69 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
71 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| 70 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
72 |
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
|
| 71 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
73 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
| 72 |
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
|
74 |
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
|
| 73 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
75 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| Line 170... |
Line 172... |
| 170 |
|
172 |
|
| 171 |
@Autowired
|
173 |
@Autowired
|
| 172 |
AddWalletRequestRepository addWalletRequestRepository;
|
174 |
AddWalletRequestRepository addWalletRequestRepository;
|
| 173 |
|
175 |
|
| 174 |
@Autowired
|
176 |
@Autowired
|
| 175 |
private RetailerRepository retailerRepository;
|
177 |
private CreditAccountRepository creditAccountRepository;
|
| 176 |
|
- |
|
| 177 |
@Autowired
|
- |
|
| 178 |
private UserRepository userRepository;
|
- |
|
| 179 |
private static final Logger LOGGER = LogManager.getLogger(WalletController.class);
|
178 |
private static final Logger LOGGER = LogManager.getLogger(WalletController.class);
|
| 180 |
|
179 |
|
| 181 |
@PostMapping(value = "/wallet/upload")
|
180 |
@PostMapping(value = "/wallet/upload")
|
| 182 |
public String uploadWalletBulk(HttpServletRequest request, @RequestPart("file") MultipartFile file, Model model)
|
181 |
public String uploadWalletBulk(HttpServletRequest request, @RequestPart("file") MultipartFile file, Model model)
|
| 183 |
throws Exception {
|
182 |
throws Exception {
|
| Line 647... |
Line 646... |
| 647 |
return "walletStatement";
|
646 |
return "walletStatement";
|
| 648 |
}
|
647 |
}
|
| 649 |
|
648 |
|
| 650 |
@Autowired
|
649 |
@Autowired
|
| 651 |
TransactionService transactionService;
|
650 |
TransactionService transactionService;
|
| 652 |
|
651 |
|
| 653 |
@RequestMapping(value = "/account/reco", method = RequestMethod.GET)
|
652 |
@RequestMapping(value = "/account/reco", method = RequestMethod.GET)
|
| 654 |
public ResponseEntity<?> accountReco(HttpServletRequest request, @RequestParam LocalDate closingDate,
|
653 |
public ResponseEntity<?> accountReco(HttpServletRequest request, @RequestParam LocalDate closingDate, Model model)
|
| 655 |
Model model) throws Exception {
|
654 |
throws Exception {
|
| 656 |
boolean isAdmin = roleManager.isAdmin(cookiesProcessor.getCookiesObject(request).getRoleIds());
|
655 |
boolean isAdmin = roleManager.isAdmin(cookiesProcessor.getCookiesObject(request).getRoleIds());
|
| 657 |
if (!isAdmin) {
|
656 |
if (!isAdmin) {
|
| 658 |
throw new ProfitMandiBusinessException("Unauthorised access", "PartnerId", "Permission Denied");
|
657 |
throw new ProfitMandiBusinessException("Unauthorised access", "PartnerId", "Permission Denied");
|
| 659 |
}
|
658 |
}
|
| 660 |
LocalDateTime closingDateTime = LocalDate.now().atStartOfDay().plusDays(1);
|
659 |
LocalDateTime closingDateTime = LocalDate.now().atStartOfDay().plusDays(1);
|
| 661 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
660 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
| 662 |
Set<Integer> retailersSet = customRetailerMap.keySet();
|
661 |
Set<Integer> retailersSet = customRetailerMap.keySet();
|
| 663 |
|
662 |
|
| 664 |
Map<Integer, Float> closingPurchaseMap = orderRepository.selectOpeningAmount(closingDateTime, retailersSet);
|
663 |
Map<Integer, Float> closingPurchaseMap = orderRepository.selectOpeningAmount(closingDateTime, retailersSet);
|
| 665 |
|
664 |
|
| 666 |
|
- |
|
| 667 |
Map<Integer, UserWallet> retailerWalletMap = walletService.getRetailerIdUserWalletMap(retailersSet);
|
665 |
Map<Integer, UserWallet> retailerWalletMap = walletService.getRetailerIdUserWalletMap(retailersSet);
|
| 668 |
Map<Integer, Integer> walletRetailerMap = retailerWalletMap.entrySet().stream().collect(Collectors.toMap(x->x.getValue().getId(), x->x.getKey()));
|
666 |
Map<Integer, Integer> walletRetailerMap = retailerWalletMap.entrySet().stream()
|
| - |
|
667 |
.collect(Collectors.toMap(x -> x.getValue().getId(), x -> x.getKey()));
|
| 669 |
|
668 |
|
| 670 |
Set<Integer> walletSet = walletRetailerMap.keySet();
|
669 |
Set<Integer> walletSet = walletRetailerMap.keySet();
|
| 671 |
Map<Integer, Float> closingBalanceMap = userWalletHistoryRepository.getSumTillDateExcludingPurchase(closingDateTime, walletSet);
|
670 |
Map<Integer, Float> closingBalanceMap = userWalletHistoryRepository
|
| - |
|
671 |
.getSumTillDateExcludingPurchase(closingDateTime, walletSet);
|
| 672 |
Map<Integer, Float> closingWalletMap = userWalletHistoryRepository.getSumTillDate(closingDateTime, walletSet);
|
672 |
Map<Integer, Float> closingWalletMap = userWalletHistoryRepository.getSumTillDate(closingDateTime, walletSet);
|
| 673 |
Map<Integer, Float> peindingIndentMap = transactionService.getPendingIndentValueMap();
|
673 |
Map<Integer, Float> peindingIndentMap = transactionService.getPendingIndentValueMap();
|
| 674 |
|
674 |
|
| 675 |
List<List<?>> rows = new ArrayList<>();
|
675 |
List<List<?>> rows = new ArrayList<>();
|
| 676 |
for (Map.Entry<Integer, Float> closingBalance : closingBalanceMap.entrySet()) {
|
676 |
for (Map.Entry<Integer, Float> closingBalance : closingBalanceMap.entrySet()) {
|
| 677 |
int walletId = closingBalance.getKey();
|
677 |
int walletId = closingBalance.getKey();
|
| 678 |
int retailerId = walletRetailerMap.get(walletId);
|
678 |
int retailerId = walletRetailerMap.get(walletId);
|
| 679 |
|
679 |
|
| 680 |
float accountClosing = 0f;
|
680 |
float accountClosing = 0f;
|
| 681 |
if (!closingPurchaseMap.containsKey(retailerId)) {
|
681 |
if (!closingPurchaseMap.containsKey(retailerId)) {
|
| 682 |
accountClosing = closingBalance.getValue();
|
682 |
accountClosing = closingBalance.getValue();
|
| 683 |
} else {
|
683 |
} else {
|
| 684 |
accountClosing = closingBalance.getValue() - closingPurchaseMap.get(retailerId);
|
684 |
accountClosing = closingBalance.getValue() - closingPurchaseMap.get(retailerId);
|
| 685 |
}
|
685 |
}
|
| 686 |
|
686 |
|
| 687 |
CustomRetailer cr = customRetailerMap.get(retailerId);
|
687 |
CustomRetailer cr = customRetailerMap.get(retailerId);
|
| 688 |
|
688 |
|
| 689 |
rows.add(Arrays.asList(retailerId, cr.getBusinessName(), cr.getAddress().getCity(),
|
689 |
rows.add(Arrays.asList(retailerId, cr.getBusinessName(), cr.getAddress().getCity(),
|
| 690 |
cr.getAddress().getState(), accountClosing, closingWalletMap.get(walletId), peindingIndentMap.get(retailerId)));
|
690 |
cr.getAddress().getState(), accountClosing, closingWalletMap.get(walletId),
|
| - |
|
691 |
peindingIndentMap.get(retailerId)));
|
| 691 |
}
|
692 |
}
|
| 692 |
|
- |
|
| 693 |
|
693 |
|
| 694 |
org.apache.commons.io.output.ByteArrayOutputStream byteArrayOutputStream = FileUtil
|
694 |
org.apache.commons.io.output.ByteArrayOutputStream byteArrayOutputStream = FileUtil.getCSVByteStream(
|
| 695 |
.getCSVByteStream(Arrays.asList("Id", "Partner Name", "City", "State", "Closing Balance", "Closing Wallet", "In Transit"), rows);
|
695 |
Arrays.asList("Id", "Partner Name", "City", "State", "Closing Balance", "Closing Wallet", "In Transit"),
|
| - |
|
696 |
rows);
|
| 696 |
final HttpHeaders headers = new HttpHeaders();
|
697 |
final HttpHeaders headers = new HttpHeaders();
|
| 697 |
headers.set("Content-Type", "text/csv");
|
698 |
headers.set("Content-Type", "text/csv");
|
| 698 |
headers.set("Content-disposition",
|
699 |
headers.set("Content-disposition",
|
| 699 |
"inline; filename=account-statement-closing-." + StringUtils.toHyphenatedString(closingDate) + ".csv");
|
700 |
"inline; filename=account-statement-closing-." + StringUtils.toHyphenatedString(closingDate) + ".csv");
|
| 700 |
headers.setContentLength(byteArrayOutputStream.toByteArray().length);
|
701 |
headers.setContentLength(byteArrayOutputStream.toByteArray().length);
|
| Line 702... |
Line 703... |
| 702 |
final InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
|
703 |
final InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
|
| 703 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
704 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
| 704 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
705 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
| 705 |
}
|
706 |
}
|
| 706 |
|
707 |
|
| 707 |
|
- |
|
| 708 |
@RequestMapping(value = "/account/closing-statements", method = RequestMethod.GET)
|
708 |
@RequestMapping(value = "/account/closing-statements", method = RequestMethod.GET)
|
| 709 |
public ResponseEntity<?> getAccountStatement(HttpServletRequest request, @RequestParam LocalDate closingDate,
|
709 |
public ResponseEntity<?> getAccountStatement(HttpServletRequest request, @RequestParam LocalDate closingDate,
|
| 710 |
Model model) throws Exception {
|
710 |
Model model) throws Exception {
|
| 711 |
boolean isAdmin = roleManager.isAdmin(cookiesProcessor.getCookiesObject(request).getRoleIds());
|
711 |
boolean isAdmin = roleManager.isAdmin(cookiesProcessor.getCookiesObject(request).getRoleIds());
|
| 712 |
if (!isAdmin) {
|
712 |
if (!isAdmin) {
|
| 713 |
throw new ProfitMandiBusinessException("Unauthorised access", "PartnerId", "Permission Denied");
|
713 |
throw new ProfitMandiBusinessException("Unauthorised access", "PartnerId", "Permission Denied");
|
| 714 |
}
|
714 |
}
|
| 715 |
LocalDateTime closingDateTime = closingDate.atStartOfDay().plusDays(1);
|
715 |
LocalDateTime closingDateTime = closingDate.atStartOfDay().plusDays(1);
|
| 716 |
|
716 |
|
| 717 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
717 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
| 718 |
Set<Integer> retailersSet = customRetailerMap.keySet();
|
718 |
Set<Integer> retailersSet = customRetailerMap.keySet();
|
| 719 |
|
719 |
|
| 720 |
Map<Integer, Float> closingPurchaseMap = orderRepository.selectOpeningAmount(closingDateTime, retailersSet);
|
720 |
Map<Integer, Float> closingPurchaseMap = orderRepository.selectOpeningAmount(closingDateTime, retailersSet);
|
| 721 |
|
721 |
|
| 722 |
|
- |
|
| 723 |
Map<Integer, UserWallet> retailerWalletMap = walletService.getRetailerIdUserWalletMap(retailersSet);
|
722 |
Map<Integer, UserWallet> retailerWalletMap = walletService.getRetailerIdUserWalletMap(retailersSet);
|
| 724 |
Map<Integer, Integer> walletRetailerMap = retailerWalletMap.entrySet().stream().collect(Collectors.toMap(x->x.getValue().getId(), x->x.getKey()));
|
723 |
Map<Integer, Integer> walletRetailerMap = retailerWalletMap.entrySet().stream()
|
| - |
|
724 |
.collect(Collectors.toMap(x -> x.getValue().getId(), x -> x.getKey()));
|
| 725 |
|
725 |
|
| 726 |
Set<Integer> walletSet = walletRetailerMap.keySet();
|
726 |
Set<Integer> walletSet = walletRetailerMap.keySet();
|
| 727 |
Map<Integer, Float> closingBalanceMap = userWalletHistoryRepository.getSumTillDateExcludingPurchase(closingDateTime, walletSet);
|
727 |
Map<Integer, Float> closingBalanceMap = userWalletHistoryRepository
|
| - |
|
728 |
.getSumTillDateExcludingPurchase(closingDateTime, walletSet);
|
| 728 |
|
729 |
|
| 729 |
List<List<?>> rows = new ArrayList<>();
|
730 |
List<List<?>> rows = new ArrayList<>();
|
| 730 |
for (Map.Entry<Integer, Float> closingWalletBalance : closingBalanceMap.entrySet()) {
|
731 |
for (Map.Entry<Integer, Float> closingWalletBalance : closingBalanceMap.entrySet()) {
|
| 731 |
int walletId = closingWalletBalance.getKey();
|
732 |
int walletId = closingWalletBalance.getKey();
|
| 732 |
int retailerId = walletRetailerMap.get(walletId);
|
733 |
int retailerId = walletRetailerMap.get(walletId);
|
| 733 |
if (!closingPurchaseMap.containsKey(retailerId)) {
|
734 |
if (!closingPurchaseMap.containsKey(retailerId)) {
|
| Line 1041... |
Line 1042... |
| 1041 |
|
1042 |
|
| 1042 |
addWalletRequestRepository.persist(addWalletRequest);
|
1043 |
addWalletRequestRepository.persist(addWalletRequest);
|
| 1043 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
1044 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| 1044 |
return "response";
|
1045 |
return "response";
|
| 1045 |
}
|
1046 |
}
|
| - |
|
1047 |
|
| - |
|
1048 |
@RequestMapping(value = "/getCreditDetail", method = RequestMethod.GET)
|
| - |
|
1049 |
public String getCreditDetail(HttpServletRequest request, Model model) throws Exception {
|
| - |
|
1050 |
List<CreditAccount> creditAccounts = creditAccountRepository.selectAll();
|
| - |
|
1051 |
Map<Integer, CustomRetailer> customRetailers = retailerService.getAllFofoRetailers();
|
| - |
|
1052 |
|
| - |
|
1053 |
model.addAttribute("creditAccounts", creditAccounts);
|
| - |
|
1054 |
model.addAttribute("customRetailers", customRetailers);
|
| - |
|
1055 |
return "partner-credit-detail";
|
| - |
|
1056 |
}
|
| - |
|
1057 |
|
| - |
|
1058 |
@RequestMapping(value = "/activateKred", method = RequestMethod.POST)
|
| - |
|
1059 |
public String activateKred(HttpServletRequest request, @RequestParam int fofoId, Model model) throws Exception {
|
| - |
|
1060 |
CreditAccount creditAccount = creditAccountRepository.selectByFofoId(fofoId);
|
| - |
|
1061 |
|
| - |
|
1062 |
creditAccount.setActive(true);
|
| - |
|
1063 |
|
| - |
|
1064 |
Map<Integer, CustomRetailer> customRetailers = retailerService.getAllFofoRetailers();
|
| - |
|
1065 |
|
| - |
|
1066 |
model.addAttribute("creditAccount", creditAccount);
|
| - |
|
1067 |
model.addAttribute("customRetailers", customRetailers);
|
| - |
|
1068 |
return "partner-credit-detail-row";
|
| - |
|
1069 |
}
|
| - |
|
1070 |
|
| - |
|
1071 |
@RequestMapping(value = "/deactivateKred", method = RequestMethod.POST)
|
| - |
|
1072 |
public String deactivateKred(HttpServletRequest request, @RequestParam int fofoId, Model model) throws Exception {
|
| - |
|
1073 |
CreditAccount creditAccount = creditAccountRepository.selectByFofoId(fofoId);
|
| - |
|
1074 |
|
| - |
|
1075 |
creditAccount.setActive(false);
|
| - |
|
1076 |
|
| - |
|
1077 |
Map<Integer, CustomRetailer> customRetailers = retailerService.getAllFofoRetailers();
|
| - |
|
1078 |
|
| - |
|
1079 |
model.addAttribute("creditAccount", creditAccount);
|
| - |
|
1080 |
model.addAttribute("customRetailers", customRetailers);
|
| - |
|
1081 |
return "partner-credit-detail-row";
|
| - |
|
1082 |
}
|
| - |
|
1083 |
|
| 1046 |
}
|
1084 |
}
|