lending alert
import [Link];
import [Link];
import [Link].*;
@Controller
public class LendingController {
@Autowired
private LendingService lendingService;
@GetMapping("/lendings")
public String showLendings(Model model, HttpSession session) {
User user = (User) [Link]("user");
int userId = [Link]();
List<Lending> lendings = [Link](userId);
LocalDate today = [Link]();
List<Map<String, Object>> lendingWithAlerts = new ArrayList<>();
for (Lending lending : lendings) {
LocalDate expectedReturnDate =
lending.getExpected_return_date().toLocalDate();
long daysBetween = [Link](today, expectedReturnDate);
String alertStatus = "NO_ALERT";
if (daysBetween >= 0 && daysBetween <= 2) {
alertStatus = "ALERT_2_DAYS";
} else if (daysBetween > 2 && daysBetween <= 30) {
alertStatus = "ALERT_1_MONTH";
} else if (daysBetween > 30 && daysBetween <= 90) {
alertStatus = "ALERT_3_MONTHS";
}
Map<String, Object> map = new HashMap<>();
[Link]("lending", lending);
[Link]("alertStatus", alertStatus);
[Link](map);
}
[Link]("lendingsWithAlerts", lendingWithAlerts);
[Link]("user", user);
return "lend/lendings";
}
}
[Link]
<%
List<Map<String, Object>> lendingsWithAlerts = (List<Map<String, Object>>)
[Link]("lendingsWithAlerts");
%>
<!-- Lending Cards -->
<%
for (Map<String, Object> map : lendingsWithAlerts) {
Lending lending = (Lending) [Link]("lending");
String alertStatus = (String) [Link]("alertStatus");
%>
<div class="lending-card">
<div class="lending-header">
<%= lending.getBorrower_name() %>
<% if ("ALERT_2_DAYS".equals(alertStatus)) { %>
<span style="color: #e74c3c; font-weight:bold; margin-left:10px;">⚠
Due within 2 days!</span>
<% } else if ("ALERT_1_MONTH".equals(alertStatus)) { %>
<span style="color: #f39c12; font-weight:bold; margin-left:10px;">⚠
Due within 1 month</span>
<% } else if ("ALERT_3_MONTHS".equals(alertStatus)) { %>
<span style="color: #3498db; font-weight:bold; margin-left:10px;">⚠
Due within 3 months</span>
<% } %>
</div>
<div class="lending-detail"><strong>Lending ID:</strong> <%=
lending.getLending_id() %></div>
<div class="lending-detail"><strong>Amount:</strong> ₹<%=
[Link]() %></div>
<div class="lending-detail"><strong>Expected Return Date:</strong> <%=
lending.getExpected_return_date() %></div>
<div class="lending-detail"><strong>Amount to be Received:</strong> ₹<%=
[Link]() - lending.getAmount_received() %></div>
<div class="lending-actions">
<form action="viewPayments" method="get">
<input type="hidden" name="lendingId" value="<%=
lending.getLending_id() %>"/>
<input type="hidden" name="userId" value="<%= [Link]() %>"/>
<button type="submit" class="btn btn-primary">View
Payments</button>
</form>
<form action="editLending" method="post">
<input type="hidden" name="lendingId" value="<%=
lending.getLending_id() %>"/>
<input type="hidden" name="userId" value="<%= [Link]() %>"/>
<button type="submit" class="btn btn-warning">Edit Lending</button>
</form>
<form action="deleteLending" method="post" onsubmit="return
confirm('Are you sure you want to delete this lending?');">
<input type="hidden" name="lendingId" value="<%=
lending.getLending_id() %>"/>
<button type="submit" class="btn btn-danger">Delete
Lending</button>
</form>
</div>
</div>
<%
}
%>
loans:
@Override
public void deletePayment(int paymentId) {
// Get amount_paid and loan_id before deleting
String getPaymentQuery = "SELECT loan_id, amount_paid FROM loan_payments WHERE
payment_id = ?";
Map<String, Object> paymentData = [Link](getPaymentQuery,
paymentId);
int loanId = (int) [Link]("loan_id");
double amountPaid = (double) [Link]("amount_paid");
// Delete the payment
String deletePaymentQuery = "DELETE FROM loan_payments WHERE payment_id = ?";
[Link](deletePaymentQuery, paymentId);
// Update loan's amount_paid
String updateLoanQuery = "UPDATE loans SET amount_paid = amount_paid - ? WHERE
loan_id = ?";
[Link](updateLoanQuery, amountPaid, loanId);
}
borrowings
@Override
public void deleteBorrowingPayment(int borrowpaymentId) {
// Get amount_paid and borrowing_id first
String selectQuery = "SELECT borrowing_id, amount_paid FROM
borrowing_interest_payments WHERE borrowpayment_id = ?";
Map<String, Object> paymentData = [Link](selectQuery,
borrowpaymentId);
int borrowingId = (int) [Link]("borrowing_id");
double amountPaid = (double) [Link]("amount_paid");
// Delete the payment
String deleteQuery = "DELETE FROM borrowing_interest_payments WHERE
borrowpayment_id = ?";
[Link](deleteQuery, borrowpaymentId);
// Update the borrowing's amount_paid
String updateQuery = "UPDATE borrowing SET amount_paid = amount_paid - ? WHERE
borrowing_id = ?";
[Link](updateQuery, amountPaid, borrowingId);
}
DELETE ALERT
<form action="deletePayment" method="post"
onsubmit="return confirm('Are
you sure you want to delete this payment?');"
loans