From aeb146e44e84db94536bbfdfbdd65b173157d938 Mon Sep 17 00:00:00 2001 From: "kirubaasagar.R" Date: Fri, 6 Sep 2024 12:13:50 +0530 Subject: [PATCH] last commit --- .../controller/ComplaintController.java | 314 +++- .../controller/UserController.java | 5 + .../static/images/Thin broken ring.gif | Bin 0 -> 7809 bytes src/main/resources/static/images/ack.pdf | 494 ++++++ src/main/resources/static/images/minus.png | Bin 0 -> 17327 bytes src/main/resources/static/images/plus.png | Bin 0 -> 25251 bytes .../templates/Tradelicence/tradelicence.html | 1505 +++++++++++++++++ src/main/resources/templates/User/home.html | 65 +- .../templates/User/registercomplaints.html | 525 ++++-- .../checklistofficer/checklistofficer.html | 160 +- .../resources/templates/staff/appoinment.html | 223 ++- .../templates/staff/createorder.html | 101 +- .../templates/staff/schemegroup.html | 197 ++- 13 files changed, 3061 insertions(+), 528 deletions(-) create mode 100644 src/main/resources/static/images/Thin broken ring.gif create mode 100644 src/main/resources/static/images/ack.pdf create mode 100644 src/main/resources/static/images/minus.png create mode 100644 src/main/resources/static/images/plus.png create mode 100644 src/main/resources/templates/Tradelicence/tradelicence.html diff --git a/src/main/java/com/gcc/publicgrievance/controller/ComplaintController.java b/src/main/java/com/gcc/publicgrievance/controller/ComplaintController.java index 562fd42..0ecd90c 100644 --- a/src/main/java/com/gcc/publicgrievance/controller/ComplaintController.java +++ b/src/main/java/com/gcc/publicgrievance/controller/ComplaintController.java @@ -1,29 +1,35 @@ package com.gcc.publicgrievance.controller; -import java.io.IOException; import java.util.Base64; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; + import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; + import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.util.UriComponentsBuilder; -import java.io.File; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; + + import com.gcc.publicgrievance.Service.ComplaintService; + @CrossOrigin @RestController public class ComplaintController { @@ -53,91 +59,253 @@ public class ComplaintController { } // save api + /*@PostMapping("/register") + public ResponseEntity registerComplaint( + + @RequestParam("ComplainantName") String complainantName, + + @RequestParam("ComplainantAddr") String complainantAddr, + + @RequestParam("MobileNo") String mobileNo, + + @RequestParam("Email") String email, + + @RequestParam("ComplaintType") String complaintType, + + @RequestParam("ComplaintTitle") String complaintTitle, + + @RequestParam("ComplaintDetails") String complaintDetails, + + @RequestParam("StreetId") String streetId, + + @RequestParam("Comp_Image") String compImage, + + @RequestParam("latitude") String latitude, + + @RequestParam("longtitude") String longtitude, + + @RequestParam("Landmark") String landmark, + + @RequestParam("gender") String gender) { + + String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; // // // + // Build the URI with parameters + UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(externalUrl) + .queryParam("serviceId", "RegComplaint").queryParam("ComplainantName", complainantName) + .queryParam("ComplainantAddr", complainantAddr).queryParam("MobileNo", mobileNo) + .queryParam("Email", email).queryParam("ComplaintType", complaintType) + .queryParam("ComplaintTitle", complaintTitle).queryParam("ComplaintDetails", complaintDetails) + .queryParam("StreetId", streetId).queryParam("Comp_Image", compImage).queryParam("latitude", latitude) + .queryParam("longtitude", longtitude).queryParam("Landmark", landmark).queryParam("gender", gender); // // + // the + // external API + ResponseEntity response = restTemplate.postForEntity(uriBuilder.toUriString(), null, String.class); // + // // Return the response from the external API + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + }*/ + /* - * @PostMapping("/register") public ResponseEntity registerComplaint( - * - * @RequestParam("ComplainantName") String complainantName, + * @PostMapping("/register") public ResponseEntity + * registerComplaint(@RequestParam("ComplainantName") String complainantName, * - * @RequestParam("ComplainantAddr") String complainantAddr, + * @RequestParam("ComplainantAddr") String + * complainantAddr, @RequestParam("MobileNo") String mobileNo, * - * @RequestParam("MobileNo") String mobileNo, + * @RequestParam("Email") String email, @RequestParam("ComplaintType") String + * complaintType, * - * @RequestParam("Email") String email, + * @RequestParam("ComplaintTitle") String complaintTitle, * - * @RequestParam("ComplaintType") String complaintType, + * @RequestParam("ComplaintDetails") String + * complaintDetails, @RequestParam("StreetId") String streetId, * - * @RequestParam("ComplaintTitle") String complaintTitle, + * @RequestParam("Comp_Image") MultipartFile + * compImage, @RequestParam("latitude") String latitude, * - * @RequestParam("ComplaintDetails") String complaintDetails, + * @RequestParam("longtitude") String longtitude, @RequestParam("Landmark") + * String landmark, * - * @RequestParam("StreetId") String streetId, + * @RequestParam("gender") String gender) { * - * @RequestParam("Comp_Image") String compImage, + * String externalUrl = + * "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; * - * @RequestParam("latitude") String latitude, + * // Convert the image to a Base64 string String base64Image = ""; if + * (!compImage.isEmpty()) { try { byte[] imageBytes = compImage.getBytes(); + * base64Image = Base64.getEncoder().encodeToString(imageBytes); } catch + * (IOException e) { return + * ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR). + * body("Error encoding image."); } } * - * @RequestParam("longtitude") String longtitude, + * // Build the URI with parameters UriComponentsBuilder uriBuilder = + * UriComponentsBuilder.fromHttpUrl(externalUrl) .queryParam("serviceId", + * "RegComplaint").queryParam("ComplainantName", complainantName) + * .queryParam("ComplainantAddr", complainantAddr).queryParam("MobileNo", + * mobileNo) .queryParam("Email", email).queryParam("ComplaintType", + * complaintType) .queryParam("ComplaintTitle", + * complaintTitle).queryParam("ComplaintDetails", complaintDetails) + * .queryParam("StreetId", streetId).queryParam("Comp_Image", base64Image) // + * Use base64 image here .queryParam("latitude", + * latitude).queryParam("longtitude", longtitude).queryParam("Landmark", + * landmark) .queryParam("gender", gender); * - * @RequestParam("Landmark") String landmark, + * // Make a POST request to the external API ResponseEntity response = + * restTemplate.postForEntity(uriBuilder.toUriString(), null, String.class); * - * @RequestParam("gender") String gender) { + * // Return the response from the external API return + * ResponseEntity.status(response.getStatusCode()).body(response.getBody()); * - * String externalUrl = - * "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; // // // - * Build the URI with parameters UriComponentsBuilder uriBuilder = - * UriComponentsBuilder.fromHttpUrl(externalUrl) .queryParam("serviceId", - * "RegComplaint") .queryParam("ComplainantName", complainantName) - * .queryParam("ComplainantAddr", complainantAddr) .queryParam("MobileNo", - * mobileNo) .queryParam("Email", email) .queryParam("ComplaintType", - * complaintType) .queryParam("ComplaintTitle", complaintTitle) - * .queryParam("ComplaintDetails", complaintDetails) .queryParam("StreetId", - * streetId) .queryParam("Comp_Image", compImage) .queryParam("latitude", - * latitude) .queryParam("longtitude", longtitude) .queryParam("Landmark", - * landmark) .queryParam("gender", gender); // // // Make a POST request to the - * external API ResponseEntity response = - * restTemplate.postForEntity(uriBuilder.toUriString(), null, String.class); // - * // // Return the response from the external API return - * ResponseEntity.status(response.getStatusCode()).body(response.getBody()); } + * } */ + /*@PostMapping("/register") + public ResponseEntity registerComplaint( + @RequestParam("ComplainantName") String complainantName, + @RequestParam("ComplainantAddr") String complainantAddr, + @RequestParam("MobileNo") String mobileNo, + @RequestParam("Email") String email, + @RequestParam("ComplaintType") String complaintType, + @RequestParam("ComplaintTitle") String complaintTitle, + @RequestParam("ComplaintDetails") String complaintDetails, + @RequestParam("StreetId") String streetId, + @RequestParam("Comp_Image") String compImage, + @RequestParam("latitude") String latitude, + @RequestParam("longtitude") String longtitude, + @RequestParam("Landmark") String landmark, + @RequestParam("gender") String gender) { + + String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; + + try { + // Create the URL object + URL url = new URL(externalUrl); + + // Create the HttpURLConnection object + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setDoOutput(true); + + // Create the parameters string + String params = "serviceId=RegComplaint" + + "&ComplainantName=" + URLEncoder.encode(complainantName, "UTF-8") + + "&ComplainantAddr=" + URLEncoder.encode(complainantAddr, "UTF-8") + + "&MobileNo=" + URLEncoder.encode(mobileNo, "UTF-8") + + "&Email=" + URLEncoder.encode(email, "UTF-8") + + "&ComplaintType=" + URLEncoder.encode(complaintType, "UTF-8") + + "&ComplaintTitle=" + URLEncoder.encode(complaintTitle, "UTF-8") + + "&ComplaintDetails=" + URLEncoder.encode(complaintDetails, "UTF-8") + + "&StreetId=" + URLEncoder.encode(streetId, "UTF-8") + + "&Comp_Image=" + URLEncoder.encode(compImage, "UTF-8") + + "&latitude=" + URLEncoder.encode(latitude, "UTF-8") + + "&longtitude=" + URLEncoder.encode(longtitude, "UTF-8") + + "&Landmark=" + URLEncoder.encode(landmark, "UTF-8") + + "&gender=" + URLEncoder.encode(gender, "UTF-8"); + + // Write parameters to request body + try (OutputStream os = conn.getOutputStream()) { + byte[] input = params.getBytes("UTF-8"); + os.write(input, 0, input.length); + } + + // Read the response + int responseCode = conn.getResponseCode(); + BufferedReader reader; + if (responseCode == HttpURLConnection.HTTP_OK) { + reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); + } else { + reader = new BufferedReader(new InputStreamReader(conn.getErrorStream())); + } + StringBuilder response = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + response.append(line); + } + reader.close(); + + // Return the response from the external API + return ResponseEntity.status(responseCode).body(response.toString()); + + } catch (IOException e) { + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("An error occurred while processing the request."); + } + } + +*/ @PostMapping("/register") - public ResponseEntity registerComplaint(@RequestParam("ComplainantName") String complainantName, - @RequestParam("ComplainantAddr") String complainantAddr, @RequestParam("MobileNo") String mobileNo, - @RequestParam("Email") String email, @RequestParam("ComplaintType") String complaintType, - @RequestParam("ComplaintTitle") String complaintTitle, - @RequestParam("ComplaintDetails") String complaintDetails, @RequestParam("StreetId") String streetId, - @RequestParam("Comp_Image") MultipartFile compImage, @RequestParam("latitude") String latitude, - @RequestParam("longtitude") String longtitude, @RequestParam("Landmark") String landmark, - @RequestParam("gender") String gender) { + public ResponseEntity registerComplaint( + @RequestParam(value = "ComplainantName", required = false) String complainantName, + @RequestParam(value = "ComplainantAddr", required = false) String complainantAddr, + @RequestParam(value = "MobileNo", required = false) String mobileNo, + @RequestParam(value = "Email", required = false) String email, + @RequestParam(value = "ComplaintType", required = false) String complaintType, + @RequestParam(value = "ComplaintTitle", required = false) String complaintTitle, + @RequestParam(value = "ComplaintDetails", required = false) String complaintDetails, + @RequestParam(value = "StreetId", required = false) String streetId, + @RequestParam(value = "Comp_Image", required = false) String compImage, + @RequestParam(value = "latitude", required = false) String latitude, + @RequestParam(value = "longtitude", required = false) String longtitude, + @RequestParam(value = "Landmark", required = false) String landmark, + @RequestParam(value = "gender", required = false) String gender) { - String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; + String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; - // Convert the image to a Base64 string - String base64Image = ""; - if (!compImage.isEmpty()) { - try { - byte[] imageBytes = compImage.getBytes(); - base64Image = Base64.getEncoder().encodeToString(imageBytes); - } catch (IOException e) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error encoding image."); - } - } + try { + // Create the URL object + URL url = new URL(externalUrl); - // Build the URI with parameters - UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromHttpUrl(externalUrl) - .queryParam("serviceId", "RegComplaint").queryParam("ComplainantName", complainantName) - .queryParam("ComplainantAddr", complainantAddr).queryParam("MobileNo", mobileNo) - .queryParam("Email", email).queryParam("ComplaintType", complaintType) - .queryParam("ComplaintTitle", complaintTitle).queryParam("ComplaintDetails", complaintDetails) - .queryParam("StreetId", streetId).queryParam("Comp_Image", base64Image) // Use base64 image here - .queryParam("latitude", latitude).queryParam("longtitude", longtitude).queryParam("Landmark", landmark) - .queryParam("gender", gender); + // Create the HttpURLConnection object + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setDoOutput(true); - // Make a POST request to the external API - ResponseEntity response = restTemplate.postForEntity(uriBuilder.toUriString(), null, String.class); + // Create the parameters string, handling null values + String params = "serviceId=RegComplaint" + + "&ComplainantName=" + URLEncoder.encode(complainantName != null ? complainantName : "", "UTF-8") + + "&ComplainantAddr=" + URLEncoder.encode(complainantAddr != null ? complainantAddr : "", "UTF-8") + + "&MobileNo=" + URLEncoder.encode(mobileNo != null ? mobileNo : "", "UTF-8") + + "&Email=" + URLEncoder.encode(email != null ? email : "", "UTF-8") + + "&ComplaintType=" + URLEncoder.encode(complaintType != null ? complaintType : "", "UTF-8") + + "&ComplaintTitle=" + URLEncoder.encode(complaintTitle != null ? complaintTitle : "", "UTF-8") + + "&ComplaintDetails=" + URLEncoder.encode(complaintDetails != null ? complaintDetails : "", "UTF-8") + + "&StreetId=" + URLEncoder.encode(streetId != null ? streetId : "", "UTF-8") + + "&Comp_Image=" + URLEncoder.encode(compImage != null ? compImage : "", "UTF-8") + + "&latitude=" + URLEncoder.encode(latitude != null ? latitude : "", "UTF-8") + + "&longtitude=" + URLEncoder.encode(longtitude != null ? longtitude : "", "UTF-8") + + "&Landmark=" + URLEncoder.encode(landmark != null ? landmark : "", "UTF-8") + + "&gender=" + URLEncoder.encode(gender != null ? gender : "", "UTF-8"); - // Return the response from the external API - return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + // Write parameters to request body + try (OutputStream os = conn.getOutputStream()) { + byte[] input = params.getBytes("UTF-8"); + os.write(input, 0, input.length); + } + + // Read the response + int responseCode = conn.getResponseCode(); + BufferedReader reader; + if (responseCode == HttpURLConnection.HTTP_OK) { + reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); + } else { + reader = new BufferedReader(new InputStreamReader(conn.getErrorStream())); + } + + StringBuilder response = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + response.append(line); + } + reader.close(); + + // Return the response from the external API + return ResponseEntity.status(responseCode).body(response.toString()); + + } catch (IOException e) { + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("An error occurred while processing the request."); + } } } diff --git a/src/main/java/com/gcc/publicgrievance/controller/UserController.java b/src/main/java/com/gcc/publicgrievance/controller/UserController.java index 28a94de..411ed10 100644 --- a/src/main/java/com/gcc/publicgrievance/controller/UserController.java +++ b/src/main/java/com/gcc/publicgrievance/controller/UserController.java @@ -48,4 +48,9 @@ public class UserController { public String appoinment(Model model) { return "staff/appoinment"; } + //tradelicence + @GetMapping("/tradelicence") + public String tradelicence(Model model) { + return "Tradelicence/tradelicence"; + } } diff --git a/src/main/resources/static/images/Thin broken ring.gif b/src/main/resources/static/images/Thin broken ring.gif new file mode 100644 index 0000000000000000000000000000000000000000..463d62707c232ff7bffad41ba7a8715548ec23ad GIT binary patch literal 7809 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 Fe*m7AsRsZ6 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/ack.pdf b/src/main/resources/static/images/ack.pdf new file mode 100644 index 0000000..9376387 --- /dev/null +++ b/src/main/resources/static/images/ack.pdf @@ -0,0 +1,494 @@ +%PDF-1.3 +%ºß¬à +3 0 obj +<> +endobj +4 0 obj +<< +/Length 4438 +>> +stream +0.5670000000000001 w +0 G +BT +/F9 10 Tf +11.5 TL +0 g +56.6929133858267775 813.5435433070865656 Td +(Information) Tj +ET +0.09 0.63 0.52 rg +0.78 G +0. w +40. 785.1970866141731449 265.9382208588956473 -21.4999999999999964 re +f +BT +/F10 10 Tf +11.5 TL +1. g +45. 771.6970866141732586 Td +(Company) Tj +ET +0.09 0.63 0.52 rg +0.78 G +0. w +305.9382208588956473 785.1970866141731449 156.283159509202477 -21.4999999999999964 re +f +BT +/F10 10 Tf +11.5 TL +1. g +310.9382208588956473 771.6970866141732586 Td +(Contact) Tj +ET +0.09 0.63 0.52 rg +0.78 G +0. w +462.2213803680980959 785.1970866141731449 93.0586196319018342 -21.4999999999999964 re +f +BT +/F10 10 Tf +11.5 TL +1. g +467.2213803680980959 771.6970866141732586 Td +(Country) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 763.6970866141731449 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 750.1970866141732586 Td +(Alfreds Futterkiste) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 763.6970866141731449 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 750.1970866141732586 Td +( ’ ª Í ª Á • È) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 763.6970866141731449 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 750.1970866141732586 Td +(Germany) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 742.1970866141732586 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 728.6970866141732586 Td +(Centro comercial Moctezuma) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 742.1970866141732586 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 728.6970866141732586 Td +(Francisco Chang) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 742.1970866141732586 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 728.6970866141732586 Td +( ’ ª Í ª Á • È) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 720.6970866141731449 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 707.1970866141732586 Td +(Ernst Handel) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 720.6970866141731449 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 707.1970866141732586 Td +(Roland Mendel) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 720.6970866141731449 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 707.1970866141732586 Td +(Austria) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 699.1970866141732586 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 685.6970866141732586 Td +(Island Trading) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 699.1970866141732586 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 685.6970866141732586 Td +(Helen Bennett) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 699.1970866141732586 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 685.6970866141732586 Td +(UK) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 677.6970866141732586 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 664.1970866141732586 Td +(Laughing Bacchus Winecellars) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 677.6970866141732586 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 664.1970866141732586 Td +(Yoshi Tannamuri) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 677.6970866141732586 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 664.1970866141732586 Td +(Canada) Tj +ET +1. g +0.78 G +0.2834645669291339 w +40. 656.1970866141732586 265.9382208588956473 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +45. 642.6970866141732586 Td +(Magazzini Alimentari Riuniti) Tj +ET +1. g +0.78 G +0.2834645669291339 w +305.9382208588956473 656.1970866141732586 156.283159509202477 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +310.9382208588956473 642.6970866141732586 Td +(Giovanni Rovelli) Tj +ET +1. g +0.78 G +0.2834645669291339 w +462.2213803680980959 656.1970866141732586 93.0586196319018342 -21.4999999999999964 re +B +BT +/F9 10 Tf +11.5 TL +0.314 g +467.2213803680980959 642.6970866141732586 Td +(Italy) Tj +ET +0.78 G +0. w +endstream +endobj +1 0 obj +<> +endobj +5 0 obj +<< +/Type /Font +/BaseFont /Helvetica +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +6 0 obj +<< +/Type /Font +/BaseFont /Helvetica-Bold +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +7 0 obj +<< +/Type /Font +/BaseFont /Helvetica-Oblique +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +8 0 obj +<< +/Type /Font +/BaseFont /Helvetica-BoldOblique +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +9 0 obj +<< +/Type /Font +/BaseFont /Courier +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +10 0 obj +<< +/Type /Font +/BaseFont /Courier-Bold +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +11 0 obj +<< +/Type /Font +/BaseFont /Courier-Oblique +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +12 0 obj +<< +/Type /Font +/BaseFont /Courier-BoldOblique +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +13 0 obj +<< +/Type /Font +/BaseFont /Times-Roman +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +14 0 obj +<< +/Type /Font +/BaseFont /Times-Bold +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +15 0 obj +<< +/Type /Font +/BaseFont /Times-Italic +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +16 0 obj +<< +/Type /Font +/BaseFont /Times-BoldItalic +/Subtype /Type1 +/Encoding /WinAnsiEncoding +/FirstChar 32 +/LastChar 255 +>> +endobj +17 0 obj +<< +/Type /Font +/BaseFont /ZapfDingbats +/Subtype /Type1 +/FirstChar 32 +/LastChar 255 +>> +endobj +18 0 obj +<< +/Type /Font +/BaseFont /Symbol +/Subtype /Type1 +/FirstChar 32 +/LastChar 255 +>> +endobj +2 0 obj +<< +/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << +/F1 5 0 R +/F2 6 0 R +/F3 7 0 R +/F4 8 0 R +/F5 9 0 R +/F6 10 0 R +/F7 11 0 R +/F8 12 0 R +/F9 13 0 R +/F10 14 0 R +/F11 15 0 R +/F12 16 0 R +/F13 17 0 R +/F14 18 0 R +>> +/XObject << +>> +>> +endobj +19 0 obj +<< +/Producer (jsPDF 2.4.0) +/CreationDate (D:20240904105942+05'30') +>> +endobj +20 0 obj +<< +/Type /Catalog +/Pages 1 0 R +/OpenAction [3 0 R /FitH null] +/PageLayout /OneColumn +>> +endobj +xref +0 21 +0000000000 65535 f +0000004642 00000 n +0000006459 00000 n +0000000015 00000 n +0000000152 00000 n +0000004699 00000 n +0000004824 00000 n +0000004954 00000 n +0000005087 00000 n +0000005224 00000 n +0000005347 00000 n +0000005476 00000 n +0000005608 00000 n +0000005744 00000 n +0000005872 00000 n +0000005999 00000 n +0000006128 00000 n +0000006261 00000 n +0000006363 00000 n +0000006707 00000 n +0000006793 00000 n +trailer +<< +/Size 21 +/Root 20 0 R +/Info 19 0 R +/ID [ <3A32A17A0E0AEAFDBC2A7A55641F52D9> <3A32A17A0E0AEAFDBC2A7A55641F52D9> ] +>> +startxref +6897 +%%EOF \ No newline at end of file diff --git a/src/main/resources/static/images/minus.png b/src/main/resources/static/images/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..c617d14e5b7efb73c50bd70bf8ca9f5585a9bfa0 GIT binary patch literal 17327 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/Tradelicence/tradelicence.html b/src/main/resources/templates/Tradelicence/tradelicence.html new file mode 100644 index 0000000..5ebbc81 --- /dev/null +++ b/src/main/resources/templates/Tradelicence/tradelicence.html @@ -0,0 +1,1505 @@ + + + + + + Main Page + + + + + + + + + + + + +
+
+ Greater Chennai Corporation Logo + +
+
+

Trade License New Registration

+
+ +
+ Tamil Nadu Logo + bonton Logo +
+
+ + + +
+ +
+
+ + +

Today Date:

+
+
+
+
+
1. Applicant Details:
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
Address of the Applicant:
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+
2. Trade Details:
+
+ +
+ + +
+ +
+ + +
+
+ + +
+ + +
+ + + + + + + + + + + + + + + + + +
3. Trade Location Details:
+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ +
+ + +
4. Trade License Fee Details:
+
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
+
+ + +
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ + + +
+
+ + + + +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/User/home.html b/src/main/resources/templates/User/home.html index 94a6afc..30e4cd2 100644 --- a/src/main/resources/templates/User/home.html +++ b/src/main/resources/templates/User/home.html @@ -178,6 +178,8 @@
+ + -
+
= @@ -250,24 +252,7 @@ - - - - - - - +
@@ -309,6 +294,8 @@ diff --git a/src/main/resources/templates/User/registercomplaints.html b/src/main/resources/templates/User/registercomplaints.html index 80ffc0e..6ae3903 100644 --- a/src/main/resources/templates/User/registercomplaints.html +++ b/src/main/resources/templates/User/registercomplaints.html @@ -256,6 +256,109 @@ font-size: 14px; cursor: pointer; } + + .loader { + border: 16px solid #f3f3f3; + /* Light grey */ + border-top: 16px solid #3498db; + /* Blue */ + border-radius: 50%; + width: 120px; + height: 120px; + animation: spin 2s linear infinite; + position: absolute; + top: 50%; + left: 50%; + margin: -60px 0 0 -100px; + /* Center the loader */ + z-index: 9999; + /* Ensure it's on top of everything */ + display: none; + /* Initially hidden */ + } + + @keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } + } + + /*for snack bar*/ + #snackbar { + visibility: hidden; + min-width: 250px; + background-color: #333; + color: #fff; + text-align: center; + border-radius: 2px; + padding: 16px; + position: fixed; + z-index: 1; + left: 50%; + bottom: 30px; + font-size: 17px; + transform: translateX(-50%); + } + + #snackbar.show { + visibility: visible; + -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s; + animation: fadein 0.5s, fadeout 0.5s 2.5s; + } + + @-webkit-keyframes fadein { + from { + bottom: 0; + opacity: 0; + } + + to { + bottom: 30px; + opacity: 1; + } + } + + @keyframes fadein { + from { + bottom: 0; + opacity: 0; + } + + to { + bottom: 30px; + opacity: 1; + } + } + + @-webkit-keyframes fadeout { + from { + bottom: 30px; + opacity: 1; + } + + to { + bottom: 0; + opacity: 0; + } + } + + @keyframes fadeout { + from { + bottom: 30px; + opacity: 1; + } + + to { + bottom: 0; + opacity: 0; + } + } + + /*for snack bar*/ @@ -263,6 +366,7 @@
+
@@ -298,27 +402,9 @@
-
- -
- -
@@ -351,13 +437,15 @@ style="background-color: #414f69;">Next
-
2. Complaint Location Details:
+ + +
@@ -388,12 +476,8 @@
-
- -
-
- -
-
Aug 25
10.00 am
-
Citizen
Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Ullamcorper ullamcorper quis.
-
-
-
-
Aug 26
3.00 pm
-
Officer - AE Zone 15
Lorem ipsum dolor sit amet, consectetur adipiscing - elit. In sit arcu aliquet ut dui egestas.
-
+ + +
+ + +
+
+ +
+ +
+ + +
+ @@ -244,15 +249,18 @@ diff --git a/src/main/resources/templates/staff/appoinment.html b/src/main/resources/templates/staff/appoinment.html index 2d45a53..c62a512 100644 --- a/src/main/resources/templates/staff/appoinment.html +++ b/src/main/resources/templates/staff/appoinment.html @@ -3,7 +3,7 @@ - Appoinment + Create Order @@ -18,6 +18,54 @@ font-weight: 700; color: #2d5263; } + + /*for uploading fields*/ + .custom-file-upload { + position: relative; + display: flex; + align-items: center; + border: 1px solid #d9dde4; + border-radius: 5px; + padding: 5px; + background-color: #f9fafb; + cursor: pointer; + margin-top: 5px; + } + + .custom-file-upload input[type="file"] { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; + } + + .custom-file-upload label { + display: flex; + justify-content: space-between; + width: 100%; + align-items: center; + } + + .upload-text { + color: #a6adb5; + + font-weight: 700; + } + + .upload-icon i { + color: #a6adb5; + font-size: 18px; + } + + .file-name { + margin-left: 10px; + color: #414f69; + font-size: 14px; + + } @@ -26,110 +74,68 @@
-

Appoinment

+

Create Order

- +
+ +
- - +
- +
Order Details
- - + +
- - + +
- -
-
- - +
- - + +
- - + +
- - + +
+ + + +
-
- - -
-
- - -
- - - -
-
- - - + Order
- - -
+ @@ -139,21 +145,72 @@ diff --git a/src/main/resources/templates/staff/createorder.html b/src/main/resources/templates/staff/createorder.html index 51a9fe1..905ab3e 100644 --- a/src/main/resources/templates/staff/createorder.html +++ b/src/main/resources/templates/staff/createorder.html @@ -71,14 +71,15 @@ - -
-

Create Order

-
+ +
+

Create Order

+
- +
@@ -92,27 +93,31 @@
- + +
- + +
- + +
-
- + +
+
-
@@ -124,15 +129,18 @@ +
+
- + @@ -158,18 +166,63 @@ const fileName = fileInput.files[0].name; fileNameSpan.textContent = fileName; } - $(document).ready(function () { - $('#createorder').click(function () { - Swal.fire({ - title: 'Success!', - text: 'Order Created Successfully', - icon: 'success', - confirmButtonText: 'OK', - background: '#f5f5f5', - confirmButtonColor: '#414f69' - }); - }); - }); + $(document).ready(function () { + $('#createorder').click(function () { + let isValid = true; + + // Clear previous error messages + $('.text-danger').text(''); + + // Validate Order Number + if ($('#orderNumber').val().trim() == '') { + $('#orderNumberError').text('Enter the Order Number.'); + isValid = false; + } + + // Validate Order Date + if ($('#orderDate').val().trim() === '') { + $('#orderDateError').text('Enter the Order Date.'); + isValid = false; + } + + // Validate Order Title + if ($('#orderTitle').val().trim() === '') { + $('#orderTitleError').text('Enter the Order Title.'); + isValid = false; + } + + // Validate Number Of Staff Required + if ($('#staffRequired').val().trim() === '') { + $('#staffRequiredError').text('Enter the Number Of Staff Required.'); + isValid = false; + } + + // Validate Order Description + if ($('#details').val().trim() === '') { + $('#detailsError').text('Enter the Order Description.'); + isValid = false; + } + + // Validate Order Document + if ($('#file-upload').val().trim() === '') { + $('#fileUploadError').text('Upload the Order Document.'); + isValid = false; + } + + // If all fields are valid, show success message + if (isValid) { + Swal.fire({ + title: 'Success!', + text: 'Order Created Successfully', + icon: 'success', + confirmButtonText: 'OK', + background: '#f5f5f5', + confirmButtonColor: '#414f69' + }); + } + }); + }); + diff --git a/src/main/resources/templates/staff/schemegroup.html b/src/main/resources/templates/staff/schemegroup.html index f2b4a38..bc18022 100644 --- a/src/main/resources/templates/staff/schemegroup.html +++ b/src/main/resources/templates/staff/schemegroup.html @@ -3,7 +3,7 @@ - Scheme Group + CheckList User @@ -11,99 +11,176 @@ - - - + + +
-
-

Add Scheme Group

-
-
- -
- -
- -
- -
-
-
-
- - -
-
- - -
-
- - -
-
- - +
+
-
+

Acknowledgement

+
+
+ +
+ +
+ +
+
+
+ 1. User Details +
+
+ + + + + + + + + + + + + + + + + + + +
Name:Yogesh
Complainant Name:John Doe
Complainant Email:john.doe@example.com
Gender:Male
+
+
+
+
+
+
+ 2. Complaint Location Details +
+
+ + + + + + + + + + + + + + + + + + + +
Name:Yogesh
Complainant Name:John Doe
Complainant Email:john.doe@example.com
Gender:Male
+
+
+
+
+ +
+
+
+
+ 3. Complaint Type +
+
+ + + + + + + + + + + + + + + + + + + +
Name:Yogesh
Complainant Name:John Doe
Complainant Email:john.doe@example.com
Gender:Male
+
+
+
+
+
+
+ 3. Complaint Type +
+
+ + + + + + + + + + + + + + + + + + + +
Name:Yogesh
Complainant Name:John Doe
Complainant Email:john.doe@example.com
Gender:Male
+
+
- +
+ +
-
-
- - - + + \ No newline at end of file