8 changed files with 4743 additions and 0 deletions
-
446src/main/java/com/gcc/communityHall/controller/SmController.java
-
44src/main/resources/templates/fragments/head-sm.html
-
98src/main/resources/templates/fragments/header-sm.html
-
13src/main/resources/templates/fragments/nav-sm.html
-
152src/main/resources/templates/fragments/smMenu.html
-
3src/main/resources/templates/officiallogin.html
-
1570src/main/resources/templates/sm/dashboard.html
-
2417src/main/resources/templates/sm/reports.html
@ -0,0 +1,446 @@ |
|||||
|
package com.gcc.communityHall.controller; |
||||
|
|
||||
|
import java.net.InetAddress; |
||||
|
import java.net.UnknownHostException; |
||||
|
import java.time.LocalDate; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.*; |
||||
|
import java.util.function.Function; |
||||
|
import java.util.function.Predicate; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
import com.fasterxml.jackson.core.JsonProcessingException; |
||||
|
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
|
import com.gcc.communityHall.entity.ApplicationLogs; |
||||
|
import com.gcc.communityHall.entity.BookingHistory; |
||||
|
import com.gcc.communityHall.entity.GccBlockingDate; |
||||
|
import com.gcc.communityHall.entity.Login; |
||||
|
import com.gcc.communityHall.entity.LoginHallId; |
||||
|
import com.gcc.communityHall.entity.RefundTransaction; |
||||
|
import com.gcc.communityHall.entity.Settlement; |
||||
|
import com.gcc.communityHall.entity.SettlementHistory; |
||||
|
import com.gcc.communityHall.entity.SixMonthMailLog; |
||||
|
import com.gcc.communityHall.others.AppConfig; |
||||
|
import com.gcc.communityHall.paymentService.entity.RefundResponse; |
||||
|
import com.gcc.communityHall.paymentService.repository.TransRefundResRepository; |
||||
|
import com.gcc.communityHall.repository.ApplicationLogsRepository; |
||||
|
import com.gcc.communityHall.repository.BookingHistoryRepository; |
||||
|
import com.gcc.communityHall.repository.GccBlockingDateRepository; |
||||
|
import com.gcc.communityHall.repository.LoginHallIdRepository; |
||||
|
import com.gcc.communityHall.repository.LoginRepository; |
||||
|
import com.gcc.communityHall.repository.RefundTransactionRepository; |
||||
|
import com.gcc.communityHall.repository.SettlementHistoryRepository; |
||||
|
import com.gcc.communityHall.repository.SettlementRepository; |
||||
|
import com.gcc.communityHall.repository.SixMonthMailLogRepository; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||
|
import org.springframework.stereotype.Controller; |
||||
|
import org.springframework.ui.Model; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.PathVariable; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.ResponseBody; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import com.gcc.communityHall.entity.BookingDetails; |
||||
|
import com.gcc.communityHall.entity.HallDetails; |
||||
|
import com.gcc.communityHall.entity.Users; |
||||
|
import com.gcc.communityHall.repository.BookingDetailsRepository; |
||||
|
import com.gcc.communityHall.repository.HallDetailsRepository; |
||||
|
import com.gcc.communityHall.repository.UsersRepository; |
||||
|
import com.gcc.communityHall.service.BookingService; |
||||
|
import com.gcc.communityHall.service.HallDetailService; |
||||
|
import com.gcc.communityHall.service.MailService; |
||||
|
import com.gcc.communityHall.service.ReasonMasterService; |
||||
|
import com.gcc.communityHall.service.UserService; |
||||
|
|
||||
|
import jakarta.servlet.http.HttpSession; |
||||
|
import jakarta.transaction.Transactional; |
||||
|
|
||||
|
@Controller |
||||
|
@RequestMapping("/communityhall/sm") |
||||
|
public class SmController { |
||||
|
@Autowired |
||||
|
HallDetailService hallDetailService; |
||||
|
@Autowired |
||||
|
ReasonMasterService reasonMasterService; |
||||
|
@Autowired |
||||
|
private BookingDetailsRepository bookingDetailsRepo; |
||||
|
|
||||
|
@Autowired |
||||
|
private UsersRepository usersRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private BookingService bookingService; |
||||
|
|
||||
|
@Autowired |
||||
|
private UserService userService; |
||||
|
@Autowired |
||||
|
private BookingDetailsRepository bookingDetailsRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private GccBlockingDateRepository blockingDateRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private AppConfig appConfig; |
||||
|
|
||||
|
@Autowired |
||||
|
private LoginRepository loginRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private LoginHallIdRepository loginHallIdRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private HallDetailsRepository hallDetailsRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private SixMonthMailLogRepository sixMonthMailLogRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private MailService mailService; |
||||
|
|
||||
|
@Autowired |
||||
|
private BookingHistoryRepository bookingHistoryRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private SettlementHistoryRepository settlementHistoryRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private SettlementRepository settlementRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private RefundTransactionRepository refundTransactionRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private TransRefundResRepository transRefundResRepository; |
||||
|
|
||||
|
@Autowired |
||||
|
private ApplicationLogsRepository applicationLogsRepository; |
||||
|
|
||||
|
@GetMapping("/dashboard") |
||||
|
public String viewDashboard( |
||||
|
@RequestParam(required = false, defaultValue = "all zones") String zone, |
||||
|
Model model, HttpSession session) { |
||||
|
|
||||
|
System.out.println("sm dashboard before condition"); |
||||
|
String headquartersname = (String) session.getAttribute("usertype"); |
||||
|
if (headquartersname != null && "sm".equals(headquartersname)) { |
||||
|
System.out.println("sm dashboard"); |
||||
|
long mobileno = (long) session.getAttribute("mobileno"); |
||||
|
model.addAttribute("mobileno", mobileno); |
||||
|
List<Map<String, Object>> getMonthCount = bookingDetailsRepository.getAllAdminmonthcount(zone); |
||||
|
List<Map<String, Object>> count = bookingDetailsRepository.getAdmincount(zone); |
||||
|
Map<String, Object> map = count.get(0); |
||||
|
|
||||
|
model.addAttribute("mounthcount", getMonthCount); |
||||
|
model.addAttribute("APPROVED", map.get("approved_count")); |
||||
|
model.addAttribute("REJECTED", map.get("rejected_count")); |
||||
|
model.addAttribute("PENDING", map.get("pending_count")); |
||||
|
model.addAttribute("CANCELED", map.get("CANCELED")); |
||||
|
model.addAttribute("PAYMENT_FAILURE", map.get("PAYMENT_FAILURE")); |
||||
|
model.addAttribute("GCC_BLOCKED", map.get("GCC_BLOCKED")); |
||||
|
model.addAttribute("headquartersname", headquartersname); |
||||
|
model.addAttribute("zone", zone); |
||||
|
|
||||
|
return "sm/dashboard"; |
||||
|
} else { |
||||
|
// Token is invalid or not present, redirect to logout |
||||
|
session.invalidate(); // Invalidate the session to clear all session attributes |
||||
|
return "redirect:/communityhall/login"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@GetMapping("/Reports") |
||||
|
public String viewReports(Model model, HttpSession session) { |
||||
|
String headquartersname = (String) session.getAttribute("usertype"); |
||||
|
if (headquartersname != null && "sm".equals(headquartersname)) { |
||||
|
long mobileno = (long) session.getAttribute("mobileno"); |
||||
|
model.addAttribute("mobileno", mobileno); |
||||
|
model.addAttribute("headquartersname", headquartersname); |
||||
|
return "sm/reports"; |
||||
|
} else { |
||||
|
session.invalidate(); // Invalidate the session to clear all session attributes |
||||
|
return "redirect:/communityhall/login"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@PostMapping("/getReport") |
||||
|
public String generateReport(Model model, |
||||
|
@RequestParam(name = "FromDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String fromDate, |
||||
|
@RequestParam(name = "ToDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String toDate, |
||||
|
@RequestParam(name = "request") String request, |
||||
|
@RequestParam(name = "userstatus", required = false) String userstatus, |
||||
|
@RequestParam(name = "usertype", required = false) String usertype, |
||||
|
@RequestParam(name = "bookingStatus", required = false) String bookingStatus, |
||||
|
@RequestParam(name = "refundStatus", required = false) String refundStatus, |
||||
|
@RequestParam(name = "paymentStatus", required = false) String paymentStatus, |
||||
|
@RequestParam(name = "filterby", required = false) String filterby, |
||||
|
@RequestParam(name = "zone1", required = false, defaultValue = "ALL") String zone, |
||||
|
@RequestParam(name = "division1", required = false, defaultValue = "ALL") String division, |
||||
|
@RequestParam(name = "hall1", required = false) Integer hallid, |
||||
|
@RequestParam(name = "basedon", required = false) String basedon, |
||||
|
@RequestParam(name = "bookingId", required = false) Long bookingId, |
||||
|
@RequestParam(name = "reporttype", required = false) String reporttype, |
||||
|
@RequestParam(name = "counterId", required = false) String counterId, HttpSession session) |
||||
|
throws JsonProcessingException { |
||||
|
String headquartersname = (String) session.getAttribute("usertype"); |
||||
|
if (headquartersname != null && "sm".equals(headquartersname)) { |
||||
|
long mobileno = (long) session.getAttribute("mobileno"); |
||||
|
model.addAttribute("mobileno", mobileno); |
||||
|
List<Users> userList = handleUserRequest(request, fromDate, toDate, userstatus, usertype); |
||||
|
List<Object[]> bookingList = handleBookingRequest(request, fromDate, toDate, bookingStatus, filterby, |
||||
|
bookingId, zone, division, hallid); |
||||
|
List<BookingDetails> bookingSettlementList = handleBookingSettlementRequest(request, fromDate, toDate, |
||||
|
refundStatus, filterby); |
||||
|
// List<Object[]> paymentList = request.equals("3") ? |
||||
|
// bookingService.getAllPaymentsDetails(fromDate, toDate,zone,division,hallid) : |
||||
|
// new ArrayList<>(); |
||||
|
List<Object[]> paymentList = new ArrayList<>(); |
||||
|
List<Object[]> extrapaymentList = new ArrayList<>(); |
||||
|
if (request.equals("3")) { |
||||
|
if (paymentStatus == null || paymentStatus.isEmpty()) { |
||||
|
paymentList = bookingService.getAllPaymentsDetails(fromDate, toDate, null, zone, division, hallid); |
||||
|
} else { |
||||
|
paymentList = bookingService.getAllPaymentsDetails(fromDate, toDate, paymentStatus, zone, division, |
||||
|
hallid); |
||||
|
} |
||||
|
} |
||||
|
if (request.equals("8")) { |
||||
|
if (paymentStatus == null || paymentStatus.isEmpty()) { |
||||
|
extrapaymentList = bookingService.getAllExtraPaymentsDetails(fromDate, toDate, null, zone, division, |
||||
|
hallid); |
||||
|
} else { |
||||
|
extrapaymentList = bookingService.getAllExtraPaymentsDetails(fromDate, toDate, paymentStatus, zone, |
||||
|
division, hallid); |
||||
|
} |
||||
|
} |
||||
|
List<Object[]> userbookingList = request.equals("4") |
||||
|
? bookingService.getBookingUserDetailsReport(fromDate, toDate) |
||||
|
: new ArrayList<>(); |
||||
|
// List<Object[]> hallbookingList = request.equals("5") ? |
||||
|
// bookingService.getBookingHallDetailsReport(fromDate, toDate) : new |
||||
|
// ArrayList<>(); |
||||
|
// In your controller method |
||||
|
// Fetch booking count by zone |
||||
|
List<Object[]> totalcount = new ArrayList<>(); |
||||
|
int totalBookings = 0; |
||||
|
if ("7".equals(request)) { |
||||
|
if ("zone".equals(basedon)) { |
||||
|
totalcount = bookingDetailsRepository.countBookingsByZone(); |
||||
|
// Format zone data |
||||
|
totalcount = totalcount.stream() |
||||
|
.map(data -> new Object[] { "Zone-" + data[0], data[1] }) |
||||
|
.collect(Collectors.toList()); |
||||
|
} else if ("division".equals(basedon)) { |
||||
|
totalcount = bookingDetailsRepository.countBookingsByDivisions(); |
||||
|
// Format division data |
||||
|
totalcount = totalcount.stream() |
||||
|
.map(data -> new Object[] { "Division-" + data[0], data[1] }) |
||||
|
.collect(Collectors.toList()); |
||||
|
} |
||||
|
|
||||
|
totalBookings = totalcount.stream() |
||||
|
.mapToInt(data -> ((Number) data[1]).intValue()) |
||||
|
.sum(); |
||||
|
} |
||||
|
model.addAttribute("basedon", basedon); |
||||
|
model.addAttribute("totalcount", totalcount); |
||||
|
model.addAttribute("totalBookings", totalBookings); |
||||
|
List<Object[]> hallbookingList = handleBookingHallDetailsReportRequest(request, fromDate, toDate, filterby, |
||||
|
zone, division, hallid); |
||||
|
|
||||
|
if ("9".equals(request)) { |
||||
|
if ("abstract".equals(reporttype)) { |
||||
|
List<Object[]> counterBookingList = new ArrayList<>(); |
||||
|
counterBookingList = bookingService.getCounterWiseBookingCount(fromDate, toDate); |
||||
|
model.addAttribute("counterBookingList", counterBookingList); |
||||
|
// System.out.println("counterBookingList.." + counterBookingList); |
||||
|
|
||||
|
List<Object[]> hallBookingByCounter = bookingService.getHallWiseBookingDetails(fromDate, toDate, |
||||
|
counterId); |
||||
|
// Convert to JSON for JS usage |
||||
|
String hallBookingJson = new ObjectMapper().writeValueAsString(hallBookingByCounter); |
||||
|
model.addAttribute("hallBookingJson", hallBookingJson); |
||||
|
|
||||
|
List<Object[]> hallBookingDetails = bookingService.getBookingDetailsForAllHalls(fromDate, toDate, |
||||
|
counterId, hallid); |
||||
|
String hallBookingDetailsJson = new ObjectMapper().writeValueAsString(hallBookingDetails); |
||||
|
model.addAttribute("hallBookingDetailsJson", hallBookingDetailsJson); |
||||
|
|
||||
|
} else { |
||||
|
List<Object[]> counterBookingList = new ArrayList<>(); |
||||
|
counterBookingList = bookingService.getCounterWiseBookingDetails(fromDate, toDate); |
||||
|
model.addAttribute("counterBookingList", counterBookingList); |
||||
|
} |
||||
|
model.addAttribute("reporttype", reporttype); |
||||
|
} |
||||
|
|
||||
|
model.addAttribute("filterby", filterby); |
||||
|
model.addAttribute("users", userList); |
||||
|
model.addAttribute("bookings", bookingList); |
||||
|
model.addAttribute("fromdate", fromDate); |
||||
|
model.addAttribute("todate", toDate); |
||||
|
model.addAttribute("userstatus", userstatus); |
||||
|
model.addAttribute("bookingSettlementList", bookingSettlementList); |
||||
|
model.addAttribute("usertype", usertype); |
||||
|
model.addAttribute("bookingStatus", bookingStatus); |
||||
|
model.addAttribute("refundStatus", refundStatus); |
||||
|
model.addAttribute("paymentStatus", paymentStatus); |
||||
|
model.addAttribute("request", request); |
||||
|
model.addAttribute("paymentLists", paymentList); |
||||
|
model.addAttribute("extrapaymentLists", extrapaymentList); |
||||
|
model.addAttribute("userbookingLists", userbookingList); |
||||
|
model.addAttribute("hallbookingLists", hallbookingList); |
||||
|
model.addAttribute("bookingId", bookingId); |
||||
|
model.addAttribute("zone1", zone); |
||||
|
model.addAttribute("division1", division); |
||||
|
model.addAttribute("hall1", hallid); |
||||
|
model.addAttribute("headquartersname", headquartersname); |
||||
|
|
||||
|
return "sm/reports"; |
||||
|
} else { |
||||
|
session.invalidate(); // Invalidate the session to clear all session attributes |
||||
|
return "redirect:/communityhall/login"; |
||||
|
} |
||||
|
} |
||||
|
private List<Object[]> handleBookingHallDetailsReportRequest(String request, String fromDate, String toDate, |
||||
|
String filterby, String zone, String division, Integer hallid) { |
||||
|
if (!request.equals("5")) { |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
if (filterby.isEmpty()) { |
||||
|
return bookingService.getBookingHallDetailsReportByBookingDate(fromDate, toDate, zone, division, hallid); |
||||
|
} |
||||
|
if ("1".equals(filterby)) { |
||||
|
|
||||
|
return bookingService.getBookingHallDetailsReportByBookingDate(fromDate, toDate, zone, division, hallid); |
||||
|
|
||||
|
} |
||||
|
if ("2".equals(filterby)) { |
||||
|
|
||||
|
return bookingService.getBookingHallDetailsReportByEventDate(fromDate, toDate, zone, division, hallid); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
private List<Users> handleUserRequest(String request, String fromDate, String toDate, String userstatus, |
||||
|
String usertype) { |
||||
|
if (!request.equals("1")) { |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
if ((userstatus != null && !userstatus.isEmpty()) && (usertype != null && !usertype.isEmpty())) { |
||||
|
return userService.getAllUsersWithFilters(fromDate, toDate, userstatus, usertype); |
||||
|
} |
||||
|
if (userstatus.isEmpty() && (usertype != null && !usertype.isEmpty())) { |
||||
|
return userService.getAllUsersWithTypeFilters(fromDate, toDate, usertype); |
||||
|
} |
||||
|
if (usertype.isEmpty() && (userstatus != null && !userstatus.isEmpty())) { |
||||
|
return userService.getAllUsersWithStatusFilters(fromDate, toDate, userstatus); |
||||
|
} |
||||
|
return userService.getAllUsers(fromDate, toDate); |
||||
|
} |
||||
|
|
||||
|
private List<Object[]> handleBookingRequest(String request, String fromDate, String toDate, String bookingStatus, |
||||
|
String filterby, Long bookingId, String zone, String division, Integer hallid) { |
||||
|
if (!request.equals("2")) { |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
if (filterby.isEmpty() && bookingStatus.isEmpty() && bookingId == null) { |
||||
|
return bookingService.getBookingDetailsByBookingDate(fromDate, toDate, zone, division, hallid); |
||||
|
} |
||||
|
if (bookingId != null && bookingStatus.isEmpty()) { |
||||
|
return bookingDetailsRepo.getAllBookingDetailsWithBookingId(fromDate, toDate, bookingId); |
||||
|
} |
||||
|
if (bookingId != null && !bookingStatus.isEmpty()) { |
||||
|
return bookingDetailsRepo.getAllBookingDetailsWithBookingIdwithbookingStatus(fromDate, toDate, bookingId, |
||||
|
bookingStatus); |
||||
|
} |
||||
|
if (bookingId == null && filterby.isEmpty() && !bookingStatus.isEmpty()) { |
||||
|
return bookingService.getBookingDetailsByBookingDateWithStatus(fromDate, toDate, bookingStatus, zone, |
||||
|
division, hallid); |
||||
|
} |
||||
|
if (!filterby.isEmpty()) { |
||||
|
|
||||
|
if ("1".equals(filterby)) { |
||||
|
if (bookingStatus.isEmpty()) { |
||||
|
return bookingService.getBookingDetailsByBookingDate(fromDate, toDate, zone, division, hallid); |
||||
|
} else { |
||||
|
return bookingService.getBookingDetailsByBookingDateWithStatus(fromDate, toDate, bookingStatus, |
||||
|
zone, division, hallid); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
if ("2".equals(filterby)) { |
||||
|
if (bookingStatus.isEmpty()) { |
||||
|
return bookingService.getBookingDetailsByEventDate(fromDate, toDate, zone, division, hallid); |
||||
|
} else { |
||||
|
return bookingService.getBookingDetailsByEventDateWithStatus(fromDate, toDate, bookingStatus, zone, |
||||
|
division, hallid); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
// Handle default or error case |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
|
||||
|
private List<BookingDetails> handleBookingSettlementRequest(String request, String fromDate, String toDate, |
||||
|
String refundStatus, String filterby) { |
||||
|
if (!request.equals("6")) { |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
if (filterby.isEmpty() && refundStatus.isEmpty()) { |
||||
|
return bookingService.getAllBookingsettlementDetailsByBookingDate(fromDate, toDate); |
||||
|
} |
||||
|
if (filterby.isEmpty() && !refundStatus.isEmpty()) { |
||||
|
return bookingService.getAllBookingsettlementDetailsByBookingDateWithStatus(fromDate, toDate, refundStatus); |
||||
|
} |
||||
|
if (!filterby.isEmpty()) { |
||||
|
|
||||
|
if ("1".equals(filterby)) { |
||||
|
if (refundStatus.isEmpty()) { |
||||
|
return bookingService.getAllBookingsettlementDetailsByBookingDate(fromDate, toDate); |
||||
|
} else { |
||||
|
return bookingService.getAllBookingsettlementDetailsByBookingDateWithStatus(fromDate, toDate, |
||||
|
refundStatus); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
if ("2".equals(filterby)) { |
||||
|
if (refundStatus.isEmpty()) { |
||||
|
return bookingService.getAllBookingsettlementDetailsByEventDate(fromDate, toDate); |
||||
|
} else { |
||||
|
return bookingService.getAllBookingsettlementDetailsByEventDateWithStatus(fromDate, toDate, |
||||
|
refundStatus); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Handle default or error case |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
@GetMapping("/logout") |
||||
|
public String viewLogout(Model model, HttpSession session) { |
||||
|
session.invalidate(); |
||||
|
System.out.println("Logged out successfully"); |
||||
|
return "redirect:/communityhall/login"; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//sm |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,44 @@ |
|||||
|
<head xmlns:th="http://www.w3.org/1999/xhtml"> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
|
|
||||
|
<title th:text="'GCC - '+communityHall">GCC</title> |
||||
|
|
||||
|
<base th:href="${baseURL}" /> |
||||
|
|
||||
|
<meta name="description" content="GCC - Pet Registry"> |
||||
|
<meta name="author" content="BonTon Softwares pvt Limited"> |
||||
|
<meta name="robots" content="noindex, nofollow"> |
||||
|
|
||||
|
<!-- Open Graph Meta --> |
||||
|
<meta property="og:title" content="Pet Register"> |
||||
|
<meta property="og:site_name" content="GCC"> |
||||
|
<meta property="og:description" content="Greater Chennai Corporation - Pet Registry"> |
||||
|
<meta property="og:type" content="website"> |
||||
|
<meta property="og:url" content=""> |
||||
|
<meta property="og:image" content=""> |
||||
|
|
||||
|
<!-- Icons --> |
||||
|
<!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers --> |
||||
|
<link rel="shortcut icon" href="media/favicons/favicon.png"> |
||||
|
<link rel="icon" type="image/png" sizes="192x192" href="media/favicons/favicon-192x192.png"> |
||||
|
<link rel="apple-touch-icon" sizes="180x180" href="media/favicons/apple-touch-icon-180x180.png"> |
||||
|
<!-- END Icons --> |
||||
|
|
||||
|
<!-- Stylesheets --> |
||||
|
<!-- Page JS Plugins CSS --> |
||||
|
<link rel="stylesheet" href="js/plugins/datatables-bs5/css/dataTables.bootstrap5.min.css"> |
||||
|
<link rel="stylesheet" href="js/plugins/datatables-buttons-bs5/css/buttons.bootstrap5.min.css"> |
||||
|
<link rel="stylesheet" href="js/plugins/datatables-responsive-bs5/css/responsive.bootstrap5.min.css"> |
||||
|
<!-- Page JS Plugins CSS --> |
||||
|
<link rel="stylesheet" href="js/plugins/sweetalert2/sweetalert2.min.css"> |
||||
|
<!-- Dashmix framework --> |
||||
|
<link rel="stylesheet" id="css-main" href="css/dashmix.css"> |
||||
|
|
||||
|
<!-- You can include a specific file from css/themes/ folder to alter the default color theme of the template. eg: --> |
||||
|
<!-- <link rel="stylesheet" id="css-theme" href="assets/css/themes/xwork.min.css"> --> |
||||
|
<link rel="stylesheet" id="css-theme" href="css/themes/xinspire.css"> |
||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.min.css"> |
||||
|
|
||||
|
<!-- END Stylesheets --> |
||||
|
</head> |
||||
@ -0,0 +1,98 @@ |
|||||
|
<header id="page-header" xmlns:th="http://www.w3.org/1999/xhtml"> |
||||
|
<!-- Header Content --> |
||||
|
<div class="content-header"> |
||||
|
<!-- Left Section --> |
||||
|
<div class="space-x-1"> |
||||
|
<!-- Toggle Sidebar --> |
||||
|
<!-- Layout API, functionality initialized in Template._uiApiLayout()--> |
||||
|
<button type="button" class="btn btn-alt-secondary" data-toggle="layout" data-action="sidebar_toggle"> |
||||
|
<i class="fa fa-fw fa-bars"></i> |
||||
|
</button> |
||||
|
<!-- END Toggle Sidebar --> |
||||
|
</div> |
||||
|
<!-- END Left Section --> |
||||
|
<div class="row pt-1" style="margin:0px;"> |
||||
|
<!--<div class="col-2 text-center p-1"> |
||||
|
<img src="assets/media/images/tamilnadu-logo.png" style="padding-top:2px;" width="30px" alt="Tamilnadu Logo"> |
||||
|
</div>--> |
||||
|
<div class="col-2 text-center p-1"> |
||||
|
<img src='media/images/logo-sm.png' width="37" alt="Logo Sm"> |
||||
|
</div> |
||||
|
<div class="col-8 text-center p-0" style="font-size:15px;"> |
||||
|
பெருநகர சென்னை மாநகராட்சி |
||||
|
</div> |
||||
|
<!--<div class="col-2 text-center p-1"> |
||||
|
<img src='assets/media/images/logo-sm.png' width="32" alt="Logo Sm"> |
||||
|
</div>--> |
||||
|
</div> |
||||
|
<!-- Right Section --> |
||||
|
<div class="space-x-1"> |
||||
|
<!-- User Dropdown |
||||
|
<div class="dropdown d-inline-block"> |
||||
|
<button type="button" class="btn btn-alt-secondary" id="page-header-user-btn"> |
||||
|
<i class="far fa-fw fa-user me-1"></i> |
||||
|
<span class="d-none d-sm-inline ms-1" th:text="${adminname}"></span> |
||||
|
|
||||
|
</button> |
||||
|
</div> --> |
||||
|
|
||||
|
<div class="dropdown d-inline-block"> |
||||
|
<button type="button" class="btn btn-alt-secondary dropdown-toggle" id="page-header-user-dropdown" |
||||
|
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
||||
|
<i class="far fa-fw fa-user me-1"></i> |
||||
|
<span class="d-none d-sm-inline ms-1" th:text="${headquartersname}"></span> |
||||
|
</button> |
||||
|
<div class="dropdown-menu dropdown-menu-end p-0" aria-labelledby="page-header-user-dropdown"> |
||||
|
<div class="bg-primary-dark rounded-top fw-semibold text-white text-center p-3"> |
||||
|
User Options |
||||
|
</div> |
||||
|
<div class="p-2"> |
||||
|
<a class="dropdown-item" href="javascript:resetPassword();"> |
||||
|
<i class="far fa-fw fa-user me-1"></i> Reset Password |
||||
|
</a> |
||||
|
|
||||
|
<div role="separator" class="dropdown-divider"></div> |
||||
|
<a class="dropdown-item" href="/communityhall/sm/logout"> |
||||
|
<i class="far fa-fw fa-arrow-alt-circle-left me-1"></i> Sign Out |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- END User Dropdown --> |
||||
|
|
||||
|
|
||||
|
<!-- Header Search --> |
||||
|
<div id="page-header-search" class="overlay-header bg-header-dark"> |
||||
|
<div class="bg-white-10"> |
||||
|
<div class="content-header"> |
||||
|
<form class="w-100" action="be_pages_generic_search.html" method="POST"> |
||||
|
<div class="input-group"> |
||||
|
<!-- Layout API, functionality initialized in Template._uiApiLayout() --> |
||||
|
<button type="button" class="btn btn-alt-primary" data-toggle="layout" |
||||
|
data-action="header_search_off"> |
||||
|
<i class="fa fa-fw fa-times-circle"></i> |
||||
|
</button> |
||||
|
<input type="text" class="form-control border-0" placeholder="Search or hit ESC.." |
||||
|
id="page-header-search-input" name="page-header-search-input"> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- END Header Search --> |
||||
|
|
||||
|
<!-- Header Loader --> |
||||
|
<!-- Please check out the Loaders page under Components category to see examples of showing/hiding it --> |
||||
|
<div id="page-header-loader" class="overlay-header bg-header-dark"> |
||||
|
<div class="bg-white-10"> |
||||
|
<div class="content-header"> |
||||
|
<div class="w-100 text-center"> |
||||
|
<i class="fa fa-fw fa-sun fa-spin text-white"></i> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- END Header Loader --> |
||||
|
</header> |
||||
@ -0,0 +1,13 @@ |
|||||
|
<nav id="sidebar" aria-label="Main Navigation" xmlns:th="http://www.w3.org/1999/xhtml"> |
||||
|
<!-- Side Header --> |
||||
|
<div th:replace="~{fragments/side-header :: div}"></div> |
||||
|
<!-- END Side Header --> |
||||
|
|
||||
|
<!-- Sidebar Scrolling --> |
||||
|
<div class="js-sidebar-scroll"> |
||||
|
<!-- Side Navigation --> |
||||
|
<div th:replace="~{fragments/smMenu :: div}"></div> |
||||
|
<!-- END Side Navigation --> |
||||
|
</div> |
||||
|
<!-- END Sidebar Scrolling --> |
||||
|
</nav> |
||||
@ -0,0 +1,152 @@ |
|||||
|
<div class="content-side"> |
||||
|
<ul class="nav-main"> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/sm/dashboard"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Dashboard</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<!-- <li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/approval-history"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">User Pending List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/user-approved"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">User Approval List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/user-reject"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">User Rejected List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/login-creation"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Log2312in Creation</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/halldetailslist"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Hall Details List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/GccblockingNew"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">GCC Blocking</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/ongoingevents"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Recent Events</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/viewUploadNoc"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Waiting For NOC </span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/bookingwaitinglist"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Waiting For NOC Approval</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/booking-list"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Booking Approved List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/rejected-list"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Booking Rejected List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlement-approved"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement Approved List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlement-initiatedlist"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement Initiated List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
|
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/collectionpending"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Collection Pending List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
|
||||
|
|
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlement-list"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement Pending List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlement-reject"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement Rejected List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlementlist"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/settlement-completedlist"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Settlement Completed List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/refundfailed-list"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Refund Failed List</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
|
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/sixmonthold-transactions"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">6 Months Old Transactions</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/headquarters/Gccblocking"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Gcc Blocking</span> |
||||
|
</a> |
||||
|
</li> --> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/sm/Reports"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Reports</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
<li class="nav-main-item"> |
||||
|
<a class="nav-main-link" href="/communityhall/sm/logout"> |
||||
|
<i class="nav-main-link-icon fa fa-location-arrow"></i> |
||||
|
<span class="nav-main-link-name">Sign Out</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
1570
src/main/resources/templates/sm/dashboard.html
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2417
src/main/resources/templates/sm/reports.html
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue