From 4497579968bd946f91ad0a247768ac44867bdfcd Mon Sep 17 00:00:00 2001 From: nehaniua Date: Fri, 24 May 2024 14:26:22 +0530 Subject: [PATCH] dxf to pdf changes, bye laws values configuration, upyog logo updated in scrutiny report --- .../egov/edcr/feature/AdditionalFeature.java | 4 +- .../java/org/egov/edcr/feature/Coverage.java | 8 +-- .../main/java/org/egov/edcr/feature/Far.java | 4 +- .../egov/edcr/feature/FrontYardService.java | 8 +-- .../org/egov/edcr/feature/GeneralStair.java | 18 +++--- .../org/egov/edcr/feature/HeightOfRoom.java | 14 ++--- .../org/egov/edcr/feature/LocationPlan.java | 4 +- .../org/egov/edcr/feature/NorthDirection.java | 4 +- .../java/org/egov/edcr/feature/Parking.java | 20 +++---- .../egov/edcr/feature/RearYardService.java | 12 ++-- .../egov/edcr/service/PlanReportService.java | 54 +++++++++--------- .../resources/global/images/Upyog-logo.png | Bin 0 -> 43892 bytes .../libraries/src/services/elements/OBPS.js | 2 +- .../src/pageComponents/ScrutinyDetails.js | 2 +- .../citizen/NewBuildingPermit/CheckPage.js | 2 +- 15 files changed, 78 insertions(+), 78 deletions(-) create mode 100644 edcr/service/egov/egov-egiweb/src/main/webapp/resources/global/images/Upyog-logo.png diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/AdditionalFeature.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/AdditionalFeature.java index f872f3d90b9..d4e302fe623 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/AdditionalFeature.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/AdditionalFeature.java @@ -80,7 +80,7 @@ public class AdditionalFeature extends FeatureProcess { private static final String RULE_38 = "38"; private static final String RULE_39 = "39"; - private static final String RULE_41_I_A = "41-i-a"; + private static final String RULE = "4.4.4"; private static final String RULE_41_I_B = "41-i-b"; private static final String RULE_47 = "47"; private static final String RULE_50 = "50"; @@ -609,7 +609,7 @@ private void validatePlinthHeight(Plan pl, HashMap errors) { if (errors.isEmpty()) { Map details = new HashMap<>(); - details.put(RULE_NO, RULE_41_I_A); + details.put(RULE_NO, RULE); details.put(DESCRIPTION, MIN_PLINTH_HEIGHT_DESC); details.put(PERMISSIBLE, MIN_PLINTH_HEIGHT); details.put(PROVIDED, String.valueOf(minPlinthHeight)); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Coverage.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Coverage.java index 42ad5ef9742..617ac54996f 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Coverage.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Coverage.java @@ -107,7 +107,7 @@ public class Coverage extends FeatureProcess { public static final String RULE_38 = "38"; public static final String RULE_7_C_1 = "Table 7-C-1"; - public static final String RULE_18_9 = "Table 18-9"; + public static final String RULE = "4.4.4"; private static final BigDecimal ROAD_WIDTH_TWELVE_POINTTWO = BigDecimal.valueOf(12.2); private static final BigDecimal ROAD_WIDTH_THIRTY_POINTFIVE = BigDecimal.valueOf(30.5); @@ -264,7 +264,7 @@ private BigDecimal getPermissibleCoverageForResidential(BigDecimal plotArea) { } else if (plotArea.compareTo(BigDecimal.valueOf(300)) > 0 && plotArea.compareTo(BigDecimal.valueOf(500)) <= 0) { permissibleCoverage = BigDecimal.valueOf(60); // 60% coverage for plot area 300-500 sqm // Log.info("permissibleCoverage: for plotare: "+plotArea +"is: "+ permissibleCoverage); - } else if (plotArea.compareTo(BigDecimal.valueOf(500)) > 0 && plotArea.compareTo(BigDecimal.valueOf(100)) <= 0) { + } else if (plotArea.compareTo(BigDecimal.valueOf(500)) > 0 && plotArea.compareTo(BigDecimal.valueOf(1000)) <= 0) { permissibleCoverage = BigDecimal.valueOf(50); // 50% coverage for plot area 500-1000 sqm // Log.info("permissibleCoverage: for plotare: "+plotArea +"is: "+ permissibleCoverage); } else { @@ -352,7 +352,7 @@ private void processCoverage(Plan pl, String occupancy, BigDecimal coverage, Big if (coverage.doubleValue() <= upperLimit.doubleValue() || occupancy.equalsIgnoreCase("Residential") || occupancy.equalsIgnoreCase("Mercantile / Commercial")) { Map details = new HashMap<>(); - details.put(RULE_NO, RULE_18_9); + details.put(RULE_NO, RULE); // details.put(DEVELOPMENT_ZONE, developmentZone); details.put(OCCUPANCY, occupancy); @@ -369,7 +369,7 @@ private void processCoverage(Plan pl, String occupancy, BigDecimal coverage, Big } else { Map details = new HashMap<>(); - details.put(RULE_NO, RULE_18_9); + details.put(RULE_NO, RULE); // details.put(DEVELOPMENT_ZONE, developmentZone); details.put(OCCUPANCY, occupancy); details.put(PERMISSIBLE, expectedResult); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Far.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Far.java index 82db2bbee57..e4868a76bf0 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Far.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Far.java @@ -126,7 +126,7 @@ public class Far extends FeatureProcess { private static final String VALIDATION_NEGATIVE_BUILTUP_AREA = "msg.error.negative.builtuparea.occupancy.floor"; private static final String VALIDATION_NEGATIVE_EXISTING_BUILTUP_AREA = "msg.error.negative.existing.builtuparea.occupancy.floor"; public static final String RULE_31_1 = "31-1"; - public static final String RULE_38 = "38"; + public static final String RULE = "4.4.4"; private static final BigDecimal POINTTWO = BigDecimal.valueOf(0.2); private static final BigDecimal POINTFOUR = BigDecimal.valueOf(0.4); @@ -1306,7 +1306,7 @@ private void buildResult(Plan pl, String occupancyName, BigDecimal far, String t String actualResult = far.toString(); Map details = new HashMap<>(); - details.put(RULE_NO, RULE_38); + details.put(RULE_NO, RULE); details.put(OCCUPANCY, occupancyName); details.put(AREA_TYPE, typeOfArea); details.put(ROAD_WIDTH, roadWidth.toString()); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/FrontYardService.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/FrontYardService.java index 5e257d6bc3d..59716f0b9c5 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/FrontYardService.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/FrontYardService.java @@ -92,7 +92,7 @@ public class FrontYardService extends GeneralRule { private static final String RULE_37_TWO_G = "37-2-G"; private static final String RULE_37_TWO_H = "37-2-H"; private static final String RULE_37_TWO_I = "37-2-I"; - private static final String RULE_47 = "47"; + private static final String RULE = "4.4.4"; private static final String MINIMUMLABEL = "Minimum distance "; @@ -290,7 +290,7 @@ private Boolean checkFrontYardResidentialCommon(Plan pl, Building building, Stri OccupancyTypeHelper mostRestrictiveOccupancy, FrontYardResult frontYardResult, HashMap errors) { Boolean valid = false; - String subRule = RULE_35; + String subRule = RULE; String rule = FRONT_YARD_DESC; BigDecimal meanVal = BigDecimal.ZERO; BigDecimal depthOfPlot = pl.getPlanInformation().getDepthOfPlot(); @@ -391,7 +391,7 @@ private Boolean checkFrontYardUptoSixteenMts(SetBack setback, Building building, OccupancyTypeHelper mostRestrictiveOccupancy, FrontYardResult frontYardResult, HashMap errors) { Boolean valid = false; - String subRule = RULE_35; + String subRule = RULE; String rule = FRONT_YARD_DESC; BigDecimal minVal = BigDecimal.ZERO; BigDecimal meanVal = BigDecimal.ZERO; @@ -594,7 +594,7 @@ private Boolean checkFrontYardBasement(Plan plan, Building building, String bloc String frontYardFieldName, BigDecimal min, BigDecimal mean, OccupancyTypeHelper mostRestrictiveOccupancy, FrontYardResult frontYardResult) { Boolean valid = false; - String subRule = RULE_47; + String subRule = RULE; String rule = FRONT_YARD_DESC; BigDecimal minVal = BigDecimal.ZERO; BigDecimal meanVal = BigDecimal.ZERO; diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/GeneralStair.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/GeneralStair.java index b7f0e8a088d..30e87da6cc3 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/GeneralStair.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/GeneralStair.java @@ -29,7 +29,7 @@ public class GeneralStair extends FeatureProcess { private static final Logger LOG = LogManager.getLogger(GeneralStair.class); private static final String FLOOR = "Floor"; - private static final String RULE42_5_II = "42-5-ii"; + private static final String RULE = "4.4.4"; private static final String EXPECTED_NO_OF_RISER = "12"; private static final String NO_OF_RISER_DESCRIPTION = "Maximum no of risers required per flight for general stair %s flight %s"; private static final String WIDTH_DESCRIPTION = "Minimum width for general stair %s flight %s"; @@ -193,14 +193,14 @@ private void validateLanding(Plan plan, Block block, ScrutinyDetail scrutinyDeta : " floor " + floor.getNumber(); if (valid) { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(WIDTH_LANDING_DESCRIPTION, generalStair.getNumber(), landing.getNumber()), minimumWidth.toString(), String.valueOf(minWidth), Result.Accepted.getResultVal(), scrutinyDetailLanding); } else { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(WIDTH_LANDING_DESCRIPTION, generalStair.getNumber(), landing.getNumber()), minimumWidth.toString(), @@ -327,11 +327,11 @@ private BigDecimal validateWidth(Plan plan, ScrutinyDetail scrutinyDetail2, Floo : " floor " + floor.getNumber(); if (valid) { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(WIDTH_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), minimumWidth.toString(), String.valueOf(minFlightWidth), Result.Accepted.getResultVal(), scrutinyDetail2); } else { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(WIDTH_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), minimumWidth.toString(), String.valueOf(minFlightWidth), Result.Not_Accepted.getResultVal(), scrutinyDetail2); } @@ -414,12 +414,12 @@ private BigDecimal validateTread(Plan plan, HashMap errors, Bloc ? (String) typicalFloorValues.get("typicalFloors") : " floor " + floor.getNumber(); if (valid) { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(TREAD_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), requiredTread.toString(), String.valueOf(minTread), Result.Accepted.getResultVal(), scrutinyDetail3); } else { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(TREAD_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), requiredTread.toString(), String.valueOf(minTread), Result.Not_Accepted.getResultVal(), scrutinyDetail3); @@ -465,12 +465,12 @@ private void validateNoOfRises(Plan plan, HashMap errors, Block ? (String) typicalFloorValues.get("typicalFloors") : " floor " + floor.getNumber(); if (valid) { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(NO_OF_RISER_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), EXPECTED_NO_OF_RISER, String.valueOf(noOfRises), Result.Accepted.getResultVal(), scrutinyDetail3); } else { - setReportOutputDetailsFloorStairWise(plan, RULE42_5_II, value, + setReportOutputDetailsFloorStairWise(plan, RULE, value, String.format(NO_OF_RISER_DESCRIPTION, generalStair.getNumber(), flight.getNumber()), EXPECTED_NO_OF_RISER, String.valueOf(noOfRises), Result.Not_Accepted.getResultVal(), scrutinyDetail3); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/HeightOfRoom.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/HeightOfRoom.java index 32a7cb6a48d..56240a17143 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/HeightOfRoom.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/HeightOfRoom.java @@ -79,11 +79,11 @@ @Service public class HeightOfRoom extends FeatureProcess { - private static final String SUBRULE_41_II_A = "41-ii-a"; + private static final String RULE = "4.4.4"; private static final String SUBRULE_41_II_B = "41-ii-b"; - private static final String SUBRULE_41_II_A_AC_DESC = "Minimum height of ac room"; - private static final String SUBRULE_41_II_A_REGULAR_DESC = "Minimum height of regular room"; + private static final String RULE_AC_DESC = "Minimum height of ac room"; + private static final String RULE_REGULAR_DESC = "Minimum height of regular room"; private static final String SUBRULE_41_II_B_AREA_DESC = "Total area of rooms"; private static final String SUBRULE_41_II_B_TOTAL_WIDTH = "Minimum Width of room"; @@ -202,8 +202,8 @@ else if(G.equalsIgnoreCase(mostRestrictiveOccupancy.getType().getCode())) // else // minimumHeight = MINIMUM_HEIGHT_3; - subRule = SUBRULE_41_II_A; - subRuleDesc = SUBRULE_41_II_A_AC_DESC; + subRule = RULE; + subRuleDesc = RULE_AC_DESC; boolean valid = false; @@ -279,8 +279,8 @@ else if(G.equalsIgnoreCase(mostRestrictiveOccupancy.getType().getCode())) // else // minimumHeight = MINIMUM_HEIGHT_3_6; - subRule = SUBRULE_41_II_A; - subRuleDesc = SUBRULE_41_II_A_REGULAR_DESC; + subRule = RULE; + subRuleDesc = RULE_REGULAR_DESC; boolean valid = false; diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/LocationPlan.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/LocationPlan.java index a3913a1ab38..6afdb812af7 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/LocationPlan.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/LocationPlan.java @@ -63,7 +63,7 @@ public class LocationPlan extends FeatureProcess { private static final Logger LOG = LogManager.getLogger(LocationPlan.class); - private static final String RULE_5_4_I_A = "5-4-i-a "; + private static final String RULE = "4.4.4"; public static final String LOCATION_PLAN_DESCRIPTION = "Location Plan"; @Override @@ -84,7 +84,7 @@ public Plan process(Plan pl) { HashMap errors = new HashMap<>(); Map details = new HashMap<>(); - details.put(RULE_NO, RULE_5_4_I_A); + details.put(RULE_NO, RULE); details.put(DESCRIPTION, LOCATION_PLAN_DESCRIPTION); if (pl.getDrawingPreference().getLocationPlans() == null) { errors.put("LOCATION_PLAN", "LOCATION_PLAN layer is not provided"); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/NorthDirection.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/NorthDirection.java index ab793df395b..4e0cc90e8d7 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/NorthDirection.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/NorthDirection.java @@ -64,7 +64,7 @@ public class NorthDirection extends FeatureProcess { private static final Logger LOG = LogManager.getLogger(NorthDirection.class); - private static final String RULE_5_4_I_I = "5-4-i-i"; + private static final String RULE = "4.4.4"; public static final String NORTH_DIRECTION_DESCRIPTION = "North Direction"; @Override @@ -85,7 +85,7 @@ public Plan process(Plan pl) { HashMap errors = new HashMap<>(); Map details = new HashMap<>(); - details.put(RULE_NO, RULE_5_4_I_I); + details.put(RULE_NO, RULE); details.put(DESCRIPTION, NORTH_DIRECTION_DESCRIPTION); if (pl.getDrawingPreference().getNorthDirection() == null) { errors.put("NORTH_DIRECTION", "NORTH_DIRECTION layer is not provided"); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Parking.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Parking.java index ab7dba08eea..0c754c89769 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Parking.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/Parking.java @@ -106,7 +106,7 @@ public class Parking extends FeatureProcess { private static final String SUB_RULE_34_1_DESCRIPTION = "Parking Slots Area"; private static final String SUB_RULE_34_2 = "34-2"; private static final String SUB_RULE_40_8 = "40-8"; - private static final String SUB_RULE_40_11 = "40-11"; + private static final String RULE = "Table 4.4.4"; private static final String PARKING_MIN_AREA = "5 M x 2 M"; private static final double PARKING_SLOT_WIDTH = 2; private static final double PARKING_SLOT_HEIGHT = 5; @@ -126,8 +126,8 @@ public class Parking extends FeatureProcess { private static final double PARK_F = 0.30; private static final double PARK_VISITOR = 0.15; private static final String SUB_RULE_40 = "40"; - private static final String SUB_RULE_40_2 = "40-2"; - private static final String SUB_RULE_40_2_DESCRIPTION = "Parking space"; + private static final String RULE_ = "4.4.4"; + private static final String RULE__DESCRIPTION = "Parking space"; private static final String SUB_RULE_40_10 = "40-10"; private static final String SUB_RULE_40_10_DESCRIPTION = "Visitor’s Parking"; public static final String OPEN_PARKING_DIM_DESC = "Open parking ECS dimension "; @@ -380,13 +380,13 @@ else if (stiltParkingArea.doubleValue() > 0) { //checkDimensionForTwoWheelerParking(pl, helper); // checkAreaForLoadUnloadSpaces(pl); if (totalProvidedCarParkArea.doubleValue() == 0) { - pl.addError(SUB_RULE_40_2_DESCRIPTION, - getLocaleMessage("msg.error.not.defined", SUB_RULE_40_2_DESCRIPTION)); + pl.addError(RULE__DESCRIPTION, + getLocaleMessage("msg.error.not.defined", RULE__DESCRIPTION)); } else if (requiredCarParkArea > 0 && totalProvidedCarParkingArea.compareTo(requiredCarParkingArea) < 0) { - setReportOutputDetails(pl, SUB_RULE_40_2, SUB_RULE_40_2_DESCRIPTION, requiredCarParkingArea + SQMTRS, + setReportOutputDetails(pl, RULE_, RULE__DESCRIPTION, requiredCarParkingArea + SQMTRS, totalProvidedCarParkingArea + SQMTRS, Result.Not_Accepted.getResultVal()); } else { - setReportOutputDetails(pl, SUB_RULE_40_2, SUB_RULE_40_2_DESCRIPTION, requiredCarParkingArea + SQMTRS, + setReportOutputDetails(pl, RULE_, RULE__DESCRIPTION, requiredCarParkingArea + SQMTRS, totalProvidedCarParkingArea + SQMTRS, Result.Accepted.getResultVal()); } if (requiredVisitorParkArea > 0 && providedVisitorParkArea.compareTo(requiredVisitorParkingArea) < 0) { @@ -437,16 +437,16 @@ private void validateSpecialParking(Plan pl, ParkingHelper helper, BigDecimal to if (maxHeightOfBuilding.compareTo(new BigDecimal(15)) >= 0 || (pl.getPlot() != null && pl.getPlot().getArea().compareTo(new BigDecimal(500)) > 0)) { if (pl.getParkingDetails().getValidSpecialSlots() == 0) { - pl.addError(SUB_RULE_40_11, getLocaleMessage(DcrConstants.OBJECTNOTDEFINED, SP_PARKING)); + pl.addError(RULE, getLocaleMessage(DcrConstants.OBJECTNOTDEFINED, SP_PARKING)); } else { for (Measurement m : pl.getParkingDetails().getSpecial()) { if (m.getMinimumSide().compareTo(new BigDecimal(0)) > 0 && m.getMinimumSide().compareTo(new BigDecimal(3.6)) >= 0) { - setReportOutputDetails(pl, SUB_RULE_40_11, SP_PARKING, 1 + NUMBERS, + setReportOutputDetails(pl, RULE, SP_PARKING, 1 + NUMBERS, pl.getParkingDetails().getValidSpecialSlots() + NUMBERS, Result.Accepted.getResultVal()); } else if (m.getMinimumSide().compareTo(new BigDecimal(0)) > 0) { - setReportOutputDetails(pl, SUB_RULE_40_11, SP_PARKING, 1 + NUMBERS, + setReportOutputDetails(pl, RULE, SP_PARKING, 1 + NUMBERS, pl.getParkingDetails().getValidSpecialSlots() + NUMBERS, Result.Not_Accepted.getResultVal()); } diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/RearYardService.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/RearYardService.java index 91eb9590a99..a6153fbfefd 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/RearYardService.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/feature/RearYardService.java @@ -83,7 +83,7 @@ @Service public class RearYardService extends GeneralRule { private static final Logger LOG = LogManager.getLogger(RearYardService.class); - private static final String RULE_35 = "35 Table-8"; + private static final String RULE = "4.4.4"; private static final String RULE_36 = "36"; private static final String RULE_37_TWO_A = "37-2-A"; private static final String RULE_37_TWO_B = "37-2-B"; @@ -275,7 +275,7 @@ private Boolean checkRearYardResidentialCommon(Plan pl, Building building, Strin OccupancyTypeHelper mostRestrictiveOccupancy, RearYardResult rearYardResult, HashMap errors) { Boolean valid = false; - String subRule = RULE_35; + String subRule = RULE; String rule = FRONT_YARD_DESC; BigDecimal meanVal = BigDecimal.ZERO; BigDecimal depthOfPlot = pl.getPlanInformation().getDepthOfPlot(); @@ -371,7 +371,7 @@ private Boolean checkRearYardUptoTenMts(final Plan pl, Building building, Block final Plot plot, final String rearYardFieldName, final BigDecimal min, final BigDecimal mean, final OccupancyTypeHelper mostRestrictiveOccupancy, RearYardResult rearYardResult, BigDecimal buildingHeight) { - String subRule = RULE_35; + String subRule = RULE; String rule = REAR_YARD_DESC; Boolean valid = false; BigDecimal minVal = BigDecimal.valueOf(0); @@ -469,7 +469,7 @@ private Boolean checkRearYardUptoToTweleveMts(SetBack setback, Building building Integer level, final Plot plot, final String rearYardFieldName, final BigDecimal min, final BigDecimal mean, final OccupancyTypeHelper mostRestrictiveOccupancy, RearYardResult rearYardResult, HashMap errors) { - String subRule = RULE_35; + String subRule = RULE; String rule = REAR_YARD_DESC; Boolean valid = false; BigDecimal minVal = BigDecimal.valueOf(0); @@ -502,7 +502,7 @@ private Boolean checkRearYardUptoToTweleveMts(SetBack setback, Building building private Boolean checkRearYardForIndustrial(SetBack setback, Building building, final Plan pl, Block block, Integer level, final Plot plot, final String rearYardFieldName, final BigDecimal min, final BigDecimal mean, final OccupancyTypeHelper mostRestrictiveOccupancy, RearYardResult rearYardResult) { - String subRule = RULE_35; + String subRule = RULE; String rule = REAR_YARD_DESC; Boolean valid = false; BigDecimal minVal = BigDecimal.valueOf(0); @@ -606,7 +606,7 @@ private Boolean checkRearYardUptoToSixteenMts(SetBack setback, Building building Integer level, final Plot plot, final String rearYardFieldName, final BigDecimal min, final BigDecimal mean, final OccupancyTypeHelper mostRestrictiveOccupancy, RearYardResult rearYardResult, HashMap errors) { - String subRule = RULE_35; + String subRule = RULE; String rule = REAR_YARD_DESC; Boolean valid = false; BigDecimal minVal = BigDecimal.valueOf(0); diff --git a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/service/PlanReportService.java b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/service/PlanReportService.java index 6142c3051d3..5be322be83a 100644 --- a/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/service/PlanReportService.java +++ b/edcr/service/egov/egov-edcr/src/main/java/org/egov/edcr/service/PlanReportService.java @@ -286,17 +286,17 @@ private Subreport getBlkDetails(DcrReportBlockDetail dcrReportBlockDetail, boole AbstractColumn floorArea = ColumnBuilder.getNew().setColumnProperty("floorArea", BigDecimal.class.getName()) .setTitle("Floor Area in m²").setWidth(120).setStyle(reportService.getNumberStyle()).build(); frb.addGlobalFooterVariable(floorArea, DJCalculation.SUM, reportService.getTotalNumberStyle()); - - AbstractColumn carpetArea = ColumnBuilder.getNew() - .setColumnProperty("carpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") - .setWidth(120).setStyle(reportService.getNumberStyle()).build(); - frb.addGlobalFooterVariable(carpetArea, DJCalculation.SUM, reportService.getTotalNumberStyle()); +// +// AbstractColumn carpetArea = ColumnBuilder.getNew() +// .setColumnProperty("carpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") +// .setWidth(120).setStyle(reportService.getNumberStyle()).build(); +// frb.addGlobalFooterVariable(carpetArea, DJCalculation.SUM, reportService.getTotalNumberStyle()); frb.addColumn(floor); frb.addColumn(occupancy); frb.addColumn(builtUpArea); frb.addColumn(floorArea); - frb.addColumn(carpetArea); + // frb.addColumn(carpetArea); if (dcrReportBlockDetail.getBlockNo() != null) { if (isProposed) { @@ -327,7 +327,7 @@ private Subreport getBlkDetails(DcrReportBlockDetail dcrReportBlockDetail, boole } AutoText autoText = new AutoText(text.toString(), AutoText.POSITION_FOOTER, - HorizontalBandAlignment.LEFT, 530); + HorizontalBandAlignment.LEFT, 410); autoText.setHeight(40); autoText.setStyle(reportService.getTotalNumberStyle()); @@ -384,14 +384,14 @@ private Subreport getAreaDetails(boolean isProposed) { BigDecimal.class.getName()) .setTitle("Floor Area in m²").setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); - AbstractColumn carpetArea = ColumnBuilder.getNew() - .setColumnProperty(isProposed ? "proposedCarpetArea" : "totalExistingCarpetArea", - BigDecimal.class.getName()) - .setTitle("Carpet Area in m²").setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); +// AbstractColumn carpetArea = ColumnBuilder.getNew() +// .setColumnProperty(isProposed ? "proposedCarpetArea" : "totalExistingCarpetArea", +// BigDecimal.class.getName()) +// .setTitle("Carpet Area in m²").setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); frb.addColumn(builtUpArea); frb.addColumn(floorArea); - frb.addColumn(carpetArea); + //frb.addColumn(carpetArea); if (isProposed) frb.setTitle("Total Proposed Areas"); @@ -443,9 +443,9 @@ private Subreport getTotalAreaDetails(VirtualBuildingReport virtualBuildingRepor .setColumnProperty("totalFloorArea", BigDecimal.class.getName()).setTitle("Floor Area in m²") .setWidth(100).setStyle(reportService.getTotalNumberStyle()).build(); - AbstractColumn carpetArea = ColumnBuilder.getNew() - .setColumnProperty("totalCarpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") - .setWidth(100).setStyle(reportService.getTotalNumberStyle()).build(); +// AbstractColumn carpetArea = ColumnBuilder.getNew() +// .setColumnProperty("totalCarpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") +// .setWidth(100).setStyle(reportService.getTotalNumberStyle()).build(); AbstractColumn coverageArea = ColumnBuilder.getNew() .setColumnProperty("totalCoverageArea", BigDecimal.class.getName()).setTitle("Covered Area in m²") @@ -458,7 +458,7 @@ private Subreport getTotalAreaDetails(VirtualBuildingReport virtualBuildingRepor frb.addColumn(builtUpArea); frb.addColumn(floorArea); - frb.addColumn(carpetArea); + // frb.addColumn(carpetArea); frb.addColumn(coverageArea); frb.addColumn(constructedArea); } else { @@ -470,9 +470,9 @@ private Subreport getTotalAreaDetails(VirtualBuildingReport virtualBuildingRepor .setColumnProperty("totalFloorArea", BigDecimal.class.getName()).setTitle("Floor Area in m²") .setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); - AbstractColumn carpetArea = ColumnBuilder.getNew() - .setColumnProperty("totalCarpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") - .setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); +// AbstractColumn carpetArea = ColumnBuilder.getNew() +// .setColumnProperty("totalCarpetArea", BigDecimal.class.getName()).setTitle("Carpet Area in m²") +// .setWidth(120).setStyle(reportService.getTotalNumberStyle()).build(); AbstractColumn coverageArea = ColumnBuilder.getNew() .setColumnProperty("totalCoverageArea", BigDecimal.class.getName()).setTitle("Covered Area in m²") @@ -480,7 +480,7 @@ private Subreport getTotalAreaDetails(VirtualBuildingReport virtualBuildingRepor frb.addColumn(builtUpArea); frb.addColumn(floorArea); - frb.addColumn(carpetArea); + // frb.addColumn(carpetArea); frb.addColumn(coverageArea); } @@ -660,7 +660,7 @@ public InputStream generateReport(Plan plan, EdcrApplication dcrApplication) { valuesMap.put("blockCount", plan.getBlocks() != null && !plan.getBlocks().isEmpty() ? plan.getBlocks().size() : 0); valuesMap.put("surrenderRoadArea", plan.getTotalSurrenderRoadArea()); - String imageURL = ReportUtil.getImageURL("/egi/resources/global/images/digit-logo-black.png"); + String imageURL = ReportUtil.getImageURL("/egi/resources/global/images/Upyog-logo.png"); valuesMap.put("egovLogo", imageURL); valuesMap.put("cityLogo", cityService.getCityLogoURLByCurrentTenant()); @@ -1059,11 +1059,11 @@ else if (occupancy.getIsMezzanine()) ? occupancy.getFloorArea() .subtract(occupancy.getExistingFloorArea()) : occupancy.getFloorArea()); - dcrReportFloorDetail.setCarpetArea( - occupancy.getExistingCarpetArea().compareTo(BigDecimal.ZERO) > 0 - ? occupancy.getCarpetArea() - .subtract(occupancy.getExistingCarpetArea()) - : occupancy.getCarpetArea()); +// dcrReportFloorDetail.setCarpetArea( +// occupancy.getExistingCarpetArea().compareTo(BigDecimal.ZERO) > 0 +// ? occupancy.getCarpetArea() +// .subtract(occupancy.getExistingCarpetArea()) +// : occupancy.getCarpetArea()); if (dcrReportFloorDetail.getBuiltUpArea().compareTo(BigDecimal.ZERO) > 0) { dcrReportFloorDetails.add(dcrReportFloorDetail); } @@ -1128,7 +1128,7 @@ else if (occupancy.getTypeHelper().getType() != null) dcrReportFloorDetail.setOccupancy(occupancyName); dcrReportFloorDetail.setBuiltUpArea(occupancy.getExistingBuiltUpArea()); dcrReportFloorDetail.setFloorArea(occupancy.getExistingFloorArea()); - dcrReportFloorDetail.setCarpetArea(occupancy.getExistingCarpetArea()); + // dcrReportFloorDetail.setCarpetArea(occupancy.getExistingCarpetArea()); dcrReportFloorDetails.add(dcrReportFloorDetail); } } diff --git a/edcr/service/egov/egov-egiweb/src/main/webapp/resources/global/images/Upyog-logo.png b/edcr/service/egov/egov-egiweb/src/main/webapp/resources/global/images/Upyog-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..35566f3aea834a4e6f60c830b186fd199c961a55 GIT binary patch literal 43892 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 z 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 { } + text={} > } onClick={() => routeTo(datafromAPI?.updatedDxfFile)} /> -

{t(`BPA_UPLOADED_PLAN_DXF`)}

+

{t(`Uploaded Plan.pdf`)}

{t("BPA_SCRUNTINY_REPORT_OUTPUT")} }