| Line 18... |
Line 18... |
| 18 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
18 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| 19 |
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
|
19 |
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
|
| 20 |
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
|
20 |
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
|
| 21 |
import com.spice.profitmandi.dao.repository.fofo.PendingOrderItemRepository;
|
21 |
import com.spice.profitmandi.dao.repository.fofo.PendingOrderItemRepository;
|
| 22 |
import com.spice.profitmandi.dao.repository.fofo.PendingOrderService;
|
22 |
import com.spice.profitmandi.dao.repository.fofo.PendingOrderService;
|
| 23 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
23 |
import com.spice.profitmandi.dao.repository.transaction.*;
|
| 24 |
import com.spice.profitmandi.dao.repository.transaction.StatementDetailModel;
|
- |
|
| 25 |
import com.spice.profitmandi.dao.repository.transaction.UserWalletHistoryRepository;
|
- |
|
| 26 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
24 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 27 |
import com.spice.profitmandi.service.order.OrderService;
|
25 |
import com.spice.profitmandi.service.order.OrderService;
|
| 28 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
26 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
| 29 |
import com.spice.profitmandi.service.user.RetailerService;
|
27 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 30 |
import com.spice.profitmandi.service.wallet.WalletService;
|
28 |
import com.spice.profitmandi.service.wallet.WalletService;
|
| Line 88... |
Line 86... |
| 88 |
private WalletService walletService;
|
86 |
private WalletService walletService;
|
| 89 |
@Autowired
|
87 |
@Autowired
|
| 90 |
private UserWalletHistoryRepository userWalletHistoryRepository;
|
88 |
private UserWalletHistoryRepository userWalletHistoryRepository;
|
| 91 |
@Autowired
|
89 |
@Autowired
|
| 92 |
private TransactionService transactionService;
|
90 |
private TransactionService transactionService;
|
| - |
|
91 |
@Autowired
|
| - |
|
92 |
private LoanStatementRepository loanStatementRepository;
|
| 93 |
|
93 |
|
| 94 |
@PostMapping(value = "/reports/{projectName}/{fileName}")
|
94 |
@PostMapping(value = "/reports/{projectName}/{fileName}")
|
| 95 |
public ResponseEntity<?> fetchReport(HttpServletRequest request, @PathVariable String fileName,
|
95 |
public ResponseEntity<?> fetchReport(HttpServletRequest request, @PathVariable String fileName,
|
| 96 |
@PathVariable ReporticoProject projectName, @RequestBody Map<String, String> paramsMap)
|
96 |
@PathVariable ReporticoProject projectName, @RequestBody Map<String, String> paramsMap)
|
| 97 |
throws ProfitMandiBusinessException, UnsupportedOperationException, IOException {
|
97 |
throws ProfitMandiBusinessException, UnsupportedOperationException, IOException {
|
| Line 1129... |
Line 1129... |
| 1129 |
model.addAttribute("grandTotalDebit", grandTotalDebit);
|
1129 |
model.addAttribute("grandTotalDebit", grandTotalDebit);
|
| 1130 |
model.addAttribute("grandTotalCredit", grandTotalCredit);
|
1130 |
model.addAttribute("grandTotalCredit", grandTotalCredit);
|
| 1131 |
|
1131 |
|
| 1132 |
return "account-statement-list";
|
1132 |
return "account-statement-list";
|
| 1133 |
}
|
1133 |
}
|
| - |
|
1134 |
|
| - |
|
1135 |
@RequestMapping(value = "/loan/loan-statement", method = RequestMethod.GET)
|
| - |
|
1136 |
public String loanStatement(HttpServletRequest request, Model model, @RequestParam(defaultValue = "0") int fofoId,
|
| - |
|
1137 |
@RequestParam(required = false) LocalDate startDate,
|
| - |
|
1138 |
@RequestParam(required = false) LocalDate endDate)
|
| - |
|
1139 |
throws Exception {
|
| - |
|
1140 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| - |
|
1141 |
boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
|
| - |
|
1142 |
|
| - |
|
1143 |
model.addAttribute("isAdmin", isAdmin);
|
| - |
|
1144 |
|
| - |
|
1145 |
return "partner-loan-statement";
|
| - |
|
1146 |
|
| - |
|
1147 |
}
|
| - |
|
1148 |
|
| - |
|
1149 |
@RequestMapping(value = "/loan/partner-loan-statement-report", method = RequestMethod.GET)
|
| - |
|
1150 |
public String partnerLoanStatement(HttpServletRequest request, Model model, @RequestParam(defaultValue = "0") int fofoId,
|
| - |
|
1151 |
@RequestParam(required = false) LocalDateTime startDate,
|
| - |
|
1152 |
@RequestParam(required = false) LocalDateTime endDate)
|
| - |
|
1153 |
throws Exception {
|
| - |
|
1154 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| - |
|
1155 |
boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
|
| - |
|
1156 |
int partnerId = 0;
|
| - |
|
1157 |
|
| - |
|
1158 |
if (fofoId > 0) {
|
| - |
|
1159 |
partnerId = fofoId;
|
| - |
|
1160 |
} else {
|
| - |
|
1161 |
partnerId = loginDetails.getFofoId();
|
| - |
|
1162 |
}
|
| - |
|
1163 |
|
| - |
|
1164 |
FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(partnerId);
|
| - |
|
1165 |
|
| - |
|
1166 |
List<LoanStatementReportModel> loanStatementReportModels = loanStatementRepository.selectByDatesAndStoreCode(startDate, endDate, fofoStore.getCode());
|
| - |
|
1167 |
|
| - |
|
1168 |
model.addAttribute("isAdmin", isAdmin);
|
| - |
|
1169 |
model.addAttribute("loanStatementReportModels", loanStatementReportModels);
|
| - |
|
1170 |
|
| - |
|
1171 |
return "partner-loan-statement-summary";
|
| - |
|
1172 |
|
| - |
|
1173 |
}
|
| - |
|
1174 |
|
| - |
|
1175 |
@RequestMapping(value = "/loan/download-partner-loan-statement-report", method = RequestMethod.GET)
|
| - |
|
1176 |
public ResponseEntity<?> downloadPartnerLoanStatement(HttpServletRequest request, Model model, @RequestParam(defaultValue = "0") int fofoId,
|
| - |
|
1177 |
@RequestParam(required = false) LocalDateTime startDate,
|
| - |
|
1178 |
@RequestParam(required = false) LocalDateTime endDate)
|
| - |
|
1179 |
throws Exception {
|
| - |
|
1180 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| - |
|
1181 |
boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
|
| - |
|
1182 |
|
| - |
|
1183 |
int partnerId = 0;
|
| - |
|
1184 |
|
| - |
|
1185 |
if (fofoId > 0) {
|
| - |
|
1186 |
partnerId = fofoId;
|
| - |
|
1187 |
} else {
|
| - |
|
1188 |
partnerId = loginDetails.getFofoId();
|
| - |
|
1189 |
}
|
| - |
|
1190 |
|
| - |
|
1191 |
FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(partnerId);
|
| - |
|
1192 |
|
| - |
|
1193 |
List<List<?>> rows = new ArrayList<>();
|
| - |
|
1194 |
|
| - |
|
1195 |
List<LoanStatementReportModel> loanStatementReportModels = loanStatementRepository.selectByDatesAndStoreCode(startDate, endDate, fofoStore.getCode());// Extract the store name from the first loan statement
|
| - |
|
1196 |
String storeName = loanStatementReportModels.get(0).getStoreName();
|
| - |
|
1197 |
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
|
| - |
|
1198 |
for (LoanStatementReportModel loanStatement : loanStatementReportModels) {
|
| - |
|
1199 |
rows.add(Arrays.asList(
|
| - |
|
1200 |
loanStatement.getCode(), // Code
|
| - |
|
1201 |
String.valueOf(loanStatement.getId()), // ID (convert int to string)
|
| - |
|
1202 |
loanStatement.getStoreName(), // Store Name
|
| - |
|
1203 |
loanStatement.getState(), // State
|
| - |
|
1204 |
loanStatement.getZone(), // Zone
|
| - |
|
1205 |
loanStatement.getArea(), // Area
|
| - |
|
1206 |
loanStatement.getTerritory(), // Territory
|
| - |
|
1207 |
String.valueOf(loanStatement.getLoanId()), // Loan ID
|
| - |
|
1208 |
loanStatement.getInterestRate().toString(), // Interest Rate (BigDecimal to String)
|
| - |
|
1209 |
loanStatement.getIntialAmount().toString(), // Initial Amount (BigDecimal to String)
|
| - |
|
1210 |
loanStatement.getPendingAmount().toString(), // Pending Amount (BigDecimal to String)
|
| - |
|
1211 |
loanStatement.getCreatedOn().format(dateTimeFormatter), // Created On (format LocalDateTime)
|
| - |
|
1212 |
loanStatement.getDueDate().format(dateTimeFormatter), // Due Date (format LocalDateTime)
|
| - |
|
1213 |
loanStatement.getInterestAccrued().toString(), // Interest Accrued (BigDecimal to String)
|
| - |
|
1214 |
loanStatement.getInterestPaid().toString(), // Interest Paid (BigDecimal to String)
|
| - |
|
1215 |
String.valueOf(loanStatement.getFreeDays()), // Free Days (convert int to string)
|
| - |
|
1216 |
loanStatement.getLoanReferenceType().toString(), // Loan Reference Type (enum or string)
|
| - |
|
1217 |
loanStatement.getAmount().toString(), // Amount (BigDecimal to String)
|
| - |
|
1218 |
loanStatement.getBusinessDate().format(dateTimeFormatter), // Business Date (format LocalDateTime)
|
| - |
|
1219 |
loanStatement.getCreatedAt().format(dateTimeFormatter), // Created At (format LocalDateTime)
|
| - |
|
1220 |
loanStatement.getDescription(), // Description
|
| - |
|
1221 |
loanStatement.getStatus() // Status (calculated value)
|
| - |
|
1222 |
));
|
| - |
|
1223 |
}
|
| - |
|
1224 |
|
| - |
|
1225 |
// Set up the headers and create the CSV
|
| - |
|
1226 |
List<String> headers = Arrays.asList("Code", "ID", "Store Name", "State", "Zone", "Area", "Territory", "Loan ID",
|
| - |
|
1227 |
"Interest Rate", "Initial Amount", "Pending Amount", "Created On", "Due Date",
|
| - |
|
1228 |
"Interest Accrued", "Interest Paid", "Free Days", "Loan Reference Type",
|
| - |
|
1229 |
"Amount", "Business Date", "Created At", "Description", "Status");
|
| - |
|
1230 |
|
| - |
|
1231 |
// Create the CSV byte stream
|
| - |
|
1232 |
org.apache.commons.io.output.ByteArrayOutputStream baos = FileUtil.getCSVByteStream(headers, rows);
|
| - |
|
1233 |
ResponseEntity<?> responseEntity = orderService.downloadReportInCsv(baos, rows, "Partner Loan Summary Report");
|
| - |
|
1234 |
|
| - |
|
1235 |
return responseEntity;
|
| - |
|
1236 |
|
| - |
|
1237 |
}
|
| 1134 |
}
|
1238 |
}
|