From ed4c9b2970fb82dcd430a097f9332382403d8b00 Mon Sep 17 00:00:00 2001 From: Shivankshuklaa Date: Thu, 30 May 2024 17:29:28 +0530 Subject: [PATCH] Asset Report, Default City selection feature and Extra Sub Category added in the frontend --- .../src/hooks/asset/useAssetparentSubType.js | 20 ++ .../packages/libraries/src/hooks/index.js | 2 + .../libraries/src/services/elements/MDMS.js | 50 ++++ .../ASSET/ApplicationUpdateActionsASSET.js | 1 - .../packages/modules/asset/package.json | 5 +- .../modules/asset/src/components/ASSETCard.js | 4 + .../asset/src/components/SearchApplication.js | 12 +- .../src/components/SearchReportApplication.js | 256 ++++++++++++++++++ .../src/pageComponents/AssetClassification.js | 50 +++- .../src/pageComponents/AssetCommonDetails.js | 10 +- .../pageComponents/AssetCommonSelection.js | 134 ++++----- .../asset/src/pageComponents/AssetPincode.js | 2 +- .../asset/src/pageComponents/AssetStreets.js | 2 +- .../asset/src/pages/employee/SearchReport.js | 69 +++++ .../modules/asset/src/pages/employee/index.js | 3 + .../Modal/ASSETActionModal.js | 7 +- 16 files changed, 541 insertions(+), 86 deletions(-) create mode 100644 frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/asset/useAssetparentSubType.js create mode 100644 frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchReportApplication.js create mode 100644 frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pages/employee/SearchReport.js diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/asset/useAssetparentSubType.js b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/asset/useAssetparentSubType.js new file mode 100644 index 00000000000..7e6143f79b2 --- /dev/null +++ b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/asset/useAssetparentSubType.js @@ -0,0 +1,20 @@ +import { useQuery } from "react-query"; +import { MdmsService } from "../../services/elements/MDMS"; + +const useAssetparentSubType = (tenantId, moduleCode, type, config = {}) => { + const useAssetparentsubsub = () => { + return useQuery("AST_PARENT_SUB_TYPE", () => MdmsService.AST_PARENT(tenantId, moduleCode ,type), config); + }; + + + switch (type) { + case "assetSubCategory": + return useAssetparentsubsub(); + default: + return null; + } +}; + + + +export default useAssetparentSubType; \ No newline at end of file diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/index.js b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/index.js index 6b390d968c6..076046adf82 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/index.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/hooks/index.js @@ -275,6 +275,7 @@ import useAssetApplicationDetail from "./asset/useAssetApplicationDetail"; import useASSETSearch from "./asset/useASSETSearch"; import useTenantsASSET from "./asset/useTenants" import useASSETApplicationAction from "./asset/useASSETApplicationAction"; +import useAssetparentSubType from "./asset/useAssetparentSubType"; import useProductPriceMDMS from "./ew/useProductPriceMDMS"; @@ -313,6 +314,7 @@ const asset = { useAssetApplicationDetail, useASSETApplicationAction, useASSETSearch, + useAssetparentSubType, useTenants: useTenantsASSET }; diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/elements/MDMS.js b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/elements/MDMS.js index 960ae937d5c..2f9e529ab32 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/elements/MDMS.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/elements/MDMS.js @@ -538,6 +538,23 @@ const getAssetClassificationList = (tenantId, moduleCode, type) => ({ }, }); +const getAssetparentsubcategoryList = (tenantId, moduleCode, type) => ({ + type, + details: { + tenantId, + moduleDetails: [ + { + moduleName: moduleCode, + masterDetails: [ + { + name: "assetSubCategory", + }, + ], + }, + ], + }, +}); + const getAssetParentList = (tenantId, moduleCode, type) => ({ type, details: { @@ -1203,6 +1220,17 @@ const GetPropertySubtype = (MdmsRes) => }); //return MdmsRes; }; + + const getAssetparentsubcategory= (MdmsRes) => { + return MdmsRes["ASSET"].assetSubCategory.filter((assetSubCategory) => assetSubCategory.active).map((assetparentDetails) => { + return { + ...assetparentDetails, + i18nKey: `AST_${assetparentDetails.code}`, + }; + }); + //return MdmsRes; + }; + const getAssetParent = (MdmsRes) => { return MdmsRes["ASSET"].assetParentCategory.filter((assetParentCategory) => assetParentCategory.active).map((assetparentDetails) => { @@ -1252,6 +1280,16 @@ const GetPropertySubtype = (MdmsRes) => }; }); }; + + const AST_PARENT= (MdmsRes) => { + MdmsRes["ASSET"].assetSubCategory.filter((assetSubCategory) => assetSubCategory.active).map((asset_parent_mdms) => { + return { + ...asset_parent_mdms, + i18nKey: `AST_PAR_${asset_parent_mdms.code}`, + }; + }); + }; + const AssetTypeParent = (MdmsRes) => { MdmsRes["ASSET"].assetParentCategory.filter((assetParentCategory) => assetParentCategory.active).map((asset_type_mdms) => { return { @@ -1743,9 +1781,15 @@ const transformResponse = (type, MdmsRes, moduleCode, tenantId) => { case "assetClassification": return getAssetClassification(MdmsRes); + + case "assetSubCategory": + return getAssetparentsubcategory(MdmsRes); case "Asset_Classification": return Asset_Classification(MdmsRes); + + case "AST_PARENT": + return AST_PARENT(MdmsRes); case "assetParentCategory": return getAssetParent(MdmsRes); @@ -1915,9 +1959,15 @@ export const MdmsService = { getAssetClassification: (tenantId, moduleCode, type) => { return MdmsService.getDataByCriteria(tenantId, getAssetClassificationList(tenantId, moduleCode, type), moduleCode); }, + getAssetparentsubcategory: (tenantId, moduleCode, type) => { + return MdmsService.getDataByCriteria(tenantId, getAssetparentsubcategoryList(tenantId, moduleCode, type), moduleCode); + }, Asset_Classification: (tenantId, moduleCode, type) => { return MdmsService.getDataByCriteria(tenantId, getAssetClassificationList(tenantId, moduleCode, type), moduleCode); }, + AST_PARENT: (tenantId, moduleCode, type) => { + return MdmsService.getDataByCriteria(tenantId, getAssetparentsubcategoryList(tenantId, moduleCode, type), moduleCode); + }, AssetTypeParent: (tenantId, moduleCode, type) => { return MdmsService.getDataByCriteria(tenantId, getAssetParentList(tenantId, moduleCode, type), moduleCode); diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/molecules/ASSET/ApplicationUpdateActionsASSET.js b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/molecules/ASSET/ApplicationUpdateActionsASSET.js index ed3cfa4cb5c..fa0579762bd 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/molecules/ASSET/ApplicationUpdateActionsASSET.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/libraries/src/services/molecules/ASSET/ApplicationUpdateActionsASSET.js @@ -1,4 +1,3 @@ -// import { ASSETService } from "../../elements/PTR"; import { ASSETService } from "../../elements/ASSET" diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/package.json b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/package.json index 2d6b3ff2669..e8b6cbaae3f 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/package.json +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/package.json @@ -21,6 +21,8 @@ "dependencies": { "@upyog/digit-ui-libraries": "1.7.0-beta.5", "@upyog/digit-ui-react-components": "1.7.0-beta.4", + "jspdf": "^2.5.1", + "jspdf-autotable": "^3.8.2", "lodash.merge": "^4.6.2", "microbundle-crl": "^0.13.11", "react": "17.0.2", @@ -28,6 +30,7 @@ "react-hook-form": "6.15.8", "react-i18next": "11.16.2", "react-query": "3.6.1", - "react-router-dom": "5.3.0" + "react-router-dom": "5.3.0", + "xlsx": "^0.18.5" } } diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/ASSETCard.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/ASSETCard.js index e74b7d9e23d..4e40cfcc66d 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/ASSETCard.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/ASSETCard.js @@ -22,6 +22,10 @@ const ASSETCard = () => { label: t("MY_ASSET_APPLICATION"), link: `/digit-ui/employee/asset/assetservice/my-asset`, }, + { + label: t("AST_REPORT"), + link: `/digit-ui/employee/asset/assetservice/report`, + }, ] const ASSET_INITIATOR = Digit.UserService.hasAccess(["ASSET_INITIATOR","ASSET_VERIFIER", "ASSET_APPROVER"]) || false; const propsForModuleCard = { diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchApplication.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchApplication.js index bbbfcc537b6..26910a16ea1 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchApplication.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchApplication.js @@ -5,12 +5,15 @@ const ASSETSearchApplication = ({tenantId, isLoading, t, onSubmit, data, count, setShowToast }) => { const isMobile = window.Digit.Utils.browser.isMobile(); + + const user = Digit.UserService.getUser().info; const { register, control, handleSubmit, setValue, getValues, reset, formState } = useForm({ defaultValues: { offset: 0, limit: !isMobile && 10, sortBy: "commencementDate", - sortOrder: "DESC" + sortOrder: "DESC", + city: user?.tenantId } }) useEffect(() => { @@ -19,6 +22,8 @@ register("sortBy", "commencementDate") register("sortOrder", "DESC") },[register]) + + @@ -104,6 +109,10 @@ {t("Provide at least one parameter to search for an application")} + + + + @@ -132,6 +141,7 @@ reset({ applicationNo: "", fromDate: "", + city: user?.tenantId, toDate: "", offset: 0, limit: 10, diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchReportApplication.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchReportApplication.js new file mode 100644 index 00000000000..1da75fa9135 --- /dev/null +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/components/SearchReportApplication.js @@ -0,0 +1,256 @@ +import React, { useCallback, useMemo, useEffect } from "react" +import { useForm, Controller } from "react-hook-form"; +import { TextInput, SubmitBar, LinkLabel, ActionBar, CloseSvg, DatePicker, CardLabelError, SearchForm, SearchField, Dropdown, Table, Card, MobileNumber, Loader, CardText, Header } from "@upyog/digit-ui-react-components"; +import { Link } from "react-router-dom"; +import jsPDF from 'jspdf'; +import 'jspdf-autotable'; +import * as XLSX from 'xlsx'; + + +const ASSETReportApplication = ({tenantId, isLoading, userType, t, onSubmit, data, count, setShowToast }) => { + console.log("data",userType); + + const isMobile = window.Digit.Utils.browser.isMobile(); + + const user = Digit.UserService.getUser().info; + + + + + + const { register, control, handleSubmit, setValue, getValues, reset, formState } = useForm({ + defaultValues: { + offset: 0, + limit: !isMobile && 10, + sortBy: "commencementDate", + sortOrder: "DESC", + city: user?.tenantId + } + }) + useEffect(() => { + register("offset", 0) + register("limit", 10) + register("sortBy", "commencementDate") + register("sortOrder", "DESC") + },[register]) + + const stateId = Digit.ULBService.getStateId(); + + + const { data: Menu_Asset } = Digit.Hooks.asset.useAssetClassification(stateId, "ASSET", "assetClassification"); // hook for asset classification Type + let menu_Asset = []; //variable name for assetCalssification + + Menu_Asset && + Menu_Asset.map((asset_mdms) => { + menu_Asset.push({ i18nKey: `ASSET_CLASS_${asset_mdms.code}`, code: `${asset_mdms.code}`, value: `${asset_mdms.name}` }); + }); + + + + + + + + + const GetCell = (value) => {value}; + + const columns = useMemo( () => ([ + + + { + Header: t("AST_APPLICATION_NUMBER"), + accessor: "applicationNo", + disableSortBy: true, + Cell: ({ row }) => { + return ( +
+ + + {row.original?.["applicationNo"]} + + +
+ ); + }, + }, + + + { + Header: t("AST_ASSET_CATEGORY"), + Cell: ( row ) => { + return GetCell(`${row?.row?.original?.["assetClassification"]}`) + }, + disableSortBy: true, + }, + { + Header: t("AST_PARENT_CATEGORY"), + Cell: ({ row }) => { + return GetCell(`${row?.original?.["assetParentCategory"]}`) + }, + disableSortBy: true, + + }, + { + Header: t("AST_NAME"), + Cell: ({ row }) => { + return GetCell(`${row?.original?.["assetName"]}`) + }, + disableSortBy: true, + }, + { + Header: t("AST_PINCODE"), + Cell: ({ row }) => { + console.log("row in pincode",row); + return GetCell(`${row?.original?.addressDetails?.["pincode"]}`) + }, + disableSortBy: true, + }, + { + Header: t("AST_DEPARTMENT"), + Cell: ({ row }) => { + return GetCell(`${row?.original?.["department"]}`) + }, + disableSortBy: true, + }, + ]), [] ) + + const onSort = useCallback((args) => { + if (args.length === 0) return + setValue("sortBy", args.id) + setValue("sortOrder", args.desc ? "DESC" : "ASC") + }, []) + + function onPageSizeChange(e){ + setValue("limit",Number(e.target.value)) + handleSubmit(onSubmit)() + } + + function nextPage () { + setValue("offset", getValues("offset") + getValues("limit")) + handleSubmit(onSubmit)() + } + function previousPage () { + setValue("offset", getValues("offset") - getValues("limit") ) + handleSubmit(onSubmit)() + } + let validation={} + + return + +
+
{t("AST_REPORTS_CHECK")}
+ < Card className={"card-search-heading"}> + {t("Provide at least one parameter to search for an application")} + + + + + + + + + + + + + + ( + + )} + /> + + + + + + + + } + name="fromDate" + control={control} + /> + + + + } + name="toDate" + control={control} + /> + + + +

{ + reset({ + applicationNo: "", + city: user?.tenantId, + fromDate: "", + toDate: "", + assetClassification: "", + pincode: "", + offset: 0, + limit: 10, + sortBy: "commencementDate", + sortOrder: "DESC" + }); + setShowToast(null); + previousPage(); + }}>{t(`ES_COMMON_CLEAR_ALL`)}

+
+ +
+ + {!isLoading && data?.display ? + { + t(data.display) + .split("\\n") + .map((text, index) => ( +

+ {text} +

+ )) + } +
+ :(!isLoading && data !== ""? { + return { + style: { + minWidth: cellInfo.column.Header === t("ASSET_INBOX_APPLICATION_NO") ? "240px" : "", + padding: "20px 18px", + fontSize: "16px" + }, + }; + }} + onPageSizeChange={onPageSizeChange} + currentPage={getValues("offset")/getValues("limit")} + onNextPage={nextPage} + onPrevPage={previousPage} + pageSizeLimit={getValues("limit")} + onSort={onSort} + disableSort={false} + sortParams={[{id: getValues("sortBy"), desc: getValues("sortOrder") === "DESC" ? true : false}]} + />: data !== "" || isLoading && )} + + + + +} + +export default ASSETReportApplication \ No newline at end of file diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetClassification.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetClassification.js index f49a4b27d81..0793285b87a 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetClassification.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetClassification.js @@ -22,6 +22,7 @@ import { assetclassification: "", assettype: "", assetsubtype: "", + assetparentsubCategory: "", key: Date.now(), }); @@ -32,7 +33,7 @@ import { const { pathname } = useLocation(); const [assets, setAssets] = useState(formData?.assets || [createAssetDetails()]); - console.log("Assets",assets); + const [focusIndex, setFocusIndex] = useState({ index: -1, type: "" }); @@ -48,7 +49,10 @@ import { const { data: Asset_Type } = Digit.Hooks.asset.useAssetType(stateId, "ASSET", "assetParentCategory"); const { data: Asset_Sub_Type } = Digit.Hooks.asset.useAssetSubType(stateId, "ASSET", "assetCategory"); // hooks for Asset Parent Category + + const { data: Asset_Parent_Sub_Type } = Digit.Hooks.asset.useAssetparentSubType(stateId, "ASSET", "assetSubCategory"); + console.log("Asset_Parent_Sub_Type",Asset_Parent_Sub_Type); let menu_Asset = []; //variable name for assetCalssification @@ -56,6 +60,8 @@ import { let asset_type = []; //variable name for asset type let asset_sub_type = []; //variable name for asset sub parent caregory + + let asset_parent_sub_category = []; Menu_Asset && @@ -94,6 +100,18 @@ import { }); + Asset_Parent_Sub_Type && + Asset_Parent_Sub_Type.map((asset_parent_mdms) => { + if (asset_parent_mdms.assetCategory == assets[0]?.assetsubtype?.code) { + asset_parent_sub_category.push({ + i18nKey: `${asset_parent_mdms.code}`, + code: `${asset_parent_mdms.code}`, + value: `${asset_parent_mdms.name}` + }); + } + + }); + useEffect(() => { onSelect(config?.key, assets); @@ -115,7 +133,8 @@ import { config, menu_Asset, asset_type, - asset_sub_type + asset_sub_type, + asset_parent_sub_category }; @@ -143,7 +162,8 @@ import { formState, menu_Asset, asset_type, - asset_sub_type + asset_sub_type, + asset_parent_sub_category } = _props; @@ -257,10 +277,28 @@ import { {localFormState.touched.assetsubtype ? errors?.assetsubtype?.message : ""} - {/* {asset_type?.[0]?.code==="LAND" && ( + + {t("AST_CATEGORY_SUB_CATEGORY") + " *"} + ( + + )} + /> + + {localFormState.touched.assetparentsubCategory ? errors?.assetparentsubCategory?.message : ""} - )} */} - diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetCommonDetails.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetCommonDetails.js index 31269bc8c08..3da241d029e 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetCommonDetails.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetCommonDetails.js @@ -142,7 +142,7 @@ {/* - {t("AST_SERIAL_NO") + " *"} + {t("AST_SERIAL_NO") }
{localFormState.touched.BookPagereference ? errors?.BookPagereference?.message : ""} {/* - {t("AST_ID") + " *"} + {t("AST_ID") }
{localFormState.touched.AssetId ? errors?.AssetId?.message : ""} */} - {t("AST_NAME") + " *"} + {t("AST_NAME") }
{localFormState.touched.AssetName ? errors?.AssetName?.message : ""} - {t("ASSET_DESCRIPTION") + " *"} + {t("ASSET_DESCRIPTION") }
{localFormState.touched.Assetdescription ? errors?.Assetdescription?.message : ""} - {t("AST_DEPARTMENT") + " *"} + {t("AST_DEPARTMENT") }
- {t("AST_COMMON_TYPE") + " *"} + {t("AST_COMMON_TYPE") } - {t("AST_LAND_TYPE") + " *"} + {t("AST_LAND_TYPE") }
- {t("AST_LAND_AREA") + " *"} + {t("AST_LAND_AREA") }
{localFormState.touched.Area ? errors?.Area?.message : ""} - {t("AST_ACQUISTION_COST_BOOK_VALUE") + " *"} + {t("AST_ACQUISTION_COST_BOOK_VALUE") }
- {t("AST_DATE_DEED_EXECUTION") + " *"} + {t("AST_DATE_DEED_EXECUTION") }
- {t("AST_DATE_POSSESION") + " *"} + {t("AST_DATE_POSSESION") }
{localFormState.touched.DateofPossesion ? errors?.DateofPossesion?.message : ""} - {t("AST_FROM_DEED_TAKEN") + " *"} + {t("AST_FROM_DEED_TAKEN") }
{localFormState.touched.FromWhomDeedTaken ? errors?.FromWhomDeedTaken?.message : ""} - {t("AST_GOVT_ORDER_NUM") + " *"} + {t("AST_GOVT_ORDER_NUM") }
{localFormState.touched.GovernmentorderNumber ? errors?.GovernmentorderNumber?.message : ""} - {t("AST_COLLECT_ORDER_NUM") + " *"} + {t("AST_COLLECT_ORDER_NUM") }
{localFormState.touched.CollectororderNumber ? errors?.CollectororderNumber?.message : ""} - {t("AST_COUNCIL_RES_NUM") + " *"} + {t("AST_COUNCIL_RES_NUM") }
{localFormState.touched.CouncilResolutionNumber ? errors?.CouncilResolutionNumber?.message : ""} - {t("AST_AWARD_NUMBER") + " *"} + {t("AST_AWARD_NUMBER") }
{localFormState.touched.AwardNumber ? errors?.AwardNumber?.message : ""} - {t("AST_COI") + " *"} + {t("AST_COI") }
{localFormState.touched.OandMCOI ? errors?.OandMCOI?.message : ""} - {t("AST_OM_TASK") + " *"} + {t("AST_OM_TASK") }
{localFormState.touched.OandMTaskDetail ? errors?.OandMTaskDetail?.message : ""} - {t("AST_TOTAL_COST") + " *"} + {t("AST_TOTAL_COST") }
{localFormState.touched.Totalcost ? errors?.Totalcost?.message : ""} - {t("AST_DEPRICIATION_RATE") + " *"} + {t("AST_DEPRICIATION_RATE") }
{localFormState.touched.DepriciationRate ? errors?.DepriciationRate?.message : ""} - {t("AST_COST_AFTER_DEPRICIAT") + " *"} + {t("AST_COST_AFTER_DEPRICIAT") }
{localFormState.touched.Costafterdepriciation ? errors?.Costafterdepriciation?.message : ""} - {t("AST_CURRENT_VALUE") + " *"} + {t("AST_CURRENT_VALUE") }
{localFormState.touched.Currentassetvalue ? errors?.Currentassetvalue?.message : ""} - {t("AST_REVENUE_GENERATED") + " *"} + {t("AST_REVENUE_GENERATED") }
{t("AST_ADDITIONAL_DETAILS")}



- {t("AST_OSR_LAND") + " *"} + {t("AST_OSR_LAND") }
{localFormState.touched.OSRLand ? errors?.OSRLand?.message : ""}*/} - {t("AST_FENCED") + " *"} + {t("AST_FENCED") }
{localFormState.touched.isitfenced ? errors?.isitfenced?.message : ""} - {t("AST_ANY_BUILTUP") + " *"} + {t("AST_ANY_BUILTUP") }
- {t("AST_HOW_ASSET_USE") + " *"} + {t("AST_HOW_ASSET_USE") }

- {t("AST_BUILDING_NO") + " *"} + {t("AST_BUILDING_NO") }
{localFormState.touched.Buildingsno ? errors?.Buildingsno?.message : ""} - {t("AST_PLOT_AREA") + " *"} + {t("AST_PLOT_AREA") }
{localFormState.touched.plotarea ? errors?.plotarea?.message : ""} - {t("AST_PLINTH_AREA") + " *"} + {t("AST_PLINTH_AREA") }
{localFormState.touched.plintharea ? errors?.plintharea?.message : ""} - {t("AST_FLOORS_NO") + " *"} + {t("AST_FLOORS_NO") }
{localFormState.touched.floorno ? errors?.floorno?.message : ""} - {t("AST_DIMENSIONS") + " *"} + {t("AST_DIMENSIONS") }
{localFormState.touched.dimensions ? errors?.dimensions?.message : ""} - {t("AST_AREA_FLOOR") + " *"} + {t("AST_AREA_FLOOR") }

- {t("AST_ACQUISTION_COST_BOOK_VALUE") + " *"} + {t("AST_ACQUISTION_COST_BOOK_VALUE") }
- {t("AST_TOTAL_COST") + " *"} + {t("AST_TOTAL_COST") }
{localFormState.touched.Totalcost ? errors?.Totalcost?.message : ""} - {t("AST_DEPRICIATION_RATE") + " *"} + {t("AST_DEPRICIATION_RATE") }
{localFormState.touched.DepriciationRate ? errors?.DepriciationRate?.message : ""} - {t("AST_COST_AFTER_DEPRICIAT") + " *"} + {t("AST_COST_AFTER_DEPRICIAT") }
{localFormState.touched.Costafterdepriciation ? errors?.Costafterdepriciation?.message : ""} - {t("AST_CURRENT_VALUE") + " *"} + {t("AST_CURRENT_VALUE") }
{localFormState.touched.Currentassetvalue ? errors?.Currentassetvalue?.message : ""} - {t("AST_REVENUE_GENERATED") + " *"} + {t("AST_REVENUE_GENERATED") }
{localFormState.touched.Revenuegeneratedbyasset ? errors?.Revenuegeneratedbyasset?.message : ""} - {t("AST_HOW_ASSET_USE") + " *"} + {t("AST_HOW_ASSET_USE") }
- {t("AST_ROAD_TYPE") + " *"} + {t("AST_ROAD_TYPE") }
- {t("AST_TOTAL_LENGTH") + " *"} + {t("AST_TOTAL_LENGTH") }
{localFormState.touched.TotalLength ? errors?.TotalLength?.message : ""} - {t("AST_ROAD_WIDTH") + " *"} + {t("AST_ROAD_WIDTH") }
- {t("AST_SURFACE_TYPE") + " *"} + {t("AST_SURFACE_TYPE") }
{localFormState.touched.SurfaceType ? errors?.SurfaceType?.message : ""} - {t("AST_PROTECTION_LENGTH") + " *"} + {t("AST_PROTECTION_LENGTH") }
{localFormState.touched.ProtectionLength ? errors?.ProtectionLength?.message : ""} - {t("AST_DRAINAGE_CHANNEL_LENGTH") + " *"} + {t("AST_DRAINAGE_CHANNEL_LENGTH") }
{localFormState.touched.DrainageLength ? errors?.DrainageLength?.message : ""} - {t("AST_FOOTPATH_NUMBER") + " *"} + {t("AST_FOOTPATH_NUMBER") }
{localFormState.touched.NumofFootpath ? errors?.NumofFootpath?.message : ""} - {t("AST_PEDASTRIAN_CROSSING_NUMBER") + " *"} + {t("AST_PEDASTRIAN_CROSSING_NUMBER") }
{localFormState.touched.NumofPedastrianCross ? errors?.NumofPedastrianCross?.message : ""} - {t("AST_BUSSTOP_NUMBER") + " *"} + {t("AST_BUSSTOP_NUMBER") }
- {t("AST_METROSTATION_NUMBER") + " *"} + {t("AST_METROSTATION_NUMBER") }
{localFormState.touched.NumofMetroStation ? errors?.NumofMetroStation?.message : ""} - {t("AST_CYCLETRACK_LENGTH") + " *"} + {t("AST_CYCLETRACK_LENGTH") }
{localFormState.touched.LengthofCycletrack ? errors?.LengthofCycletrack?.message : ""} - {t("AST_LAST_MAINTAINENCE") + " *"} + {t("AST_LAST_MAINTAINENCE") }
{localFormState.touched.LastMaintainence ? errors?.LastMaintainence?.message : ""} - {t("AST_NEXT_MAINTAINENCE") + " *"} + {t("AST_NEXT_MAINTAINENCE") }
{localFormState.touched.NextMaintainence ? errors?.NextMaintainence?.message : ""} - {t("AST_ACQUISTION_COST_BOOK_VALUE") + " *"} + {t("AST_ACQUISTION_COST_BOOK_VALUE") }
{localFormState.touched.BookValue ? errors?.BookValue?.message : ""} - {t("AST_TOTAL_COST") + " *"} + {t("AST_TOTAL_COST") }
- {t("AST_DEPRICIATION_RATE") + " *"} + {t("AST_DEPRICIATION_RATE") }
- {t("AST_COST_AFTER_DEPRICIAT") + " *"} + {t("AST_COST_AFTER_DEPRICIAT") }

- {t("AST_REGISTRATION_NUMBER") + " *"} + {t("AST_REGISTRATION_NUMBER") }
{localFormState.touched.registrationNumber ? errors?.registrationNumber?.message : ""} - {t("AST_ENGINE_NUMBER") + " *"} + {t("AST_ENGINE_NUMBER") }
{localFormState.touched.engineNumber ? errors?.engineNumber?.message : ""} - {t("AST_CHASIS_NUMBER") + " *"} + {t("AST_CHASIS_NUMBER") }
{localFormState.touched.chasisNumber ? errors?.chasisNumber?.message : ""} - {t("AST_PARKING_LOCATION") + " *"} + {t("AST_PARKING_LOCATION") }
{localFormState.touched.parkingLocation ? errors?.parkingLocation?.message : ""} - {t("AST_ACQUISTION_DATE") + " *"} + {t("AST_ACQUISTION_DATE") }
{localFormState.touched.asquistionDate ? errors?.asquistionDate?.message : ""} - {t("AST_ACQUIRED_SOURCE") + " *"} + {t("AST_ACQUIRED_SOURCE") }
{localFormState.touched.acquiredFrom ? errors?.acquiredFrom?.message : ""} - {t("AST_IMPROVEMENT_COST") + " *"} + {t("AST_IMPROVEMENT_COST") }
{localFormState.touched.improvementCost ? errors?.improvementCost?.message : ""} - {t("AST_ACQUISTION_COST_BOOK_VALUE") + " *"} + {t("AST_ACQUISTION_COST_BOOK_VALUE") }
{localFormState.touched.BookValue ? errors?.BookValue?.message : ""} - {t("AST_CURRENT_VALUE") + " *"} + {t("AST_CURRENT_VALUE") }
{localFormState.touched.Currentassetvalue ? errors?.Currentassetvalue?.message : ""} - {t("AST_TOTAL_COST") + " *"} + {t("AST_TOTAL_COST") }
{ if (presentInModifyApplication && userType === "employee") return formData?.originalData?.address?.pincode || ""; diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetStreets.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetStreets.js index b2d56f5dc16..89fe29e993d 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetStreets.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pageComponents/AssetStreets.js @@ -144,7 +144,7 @@ const AssetStreets = ({ t, config, onSelect, userType, formData, formState, setE {!checkLocation ? t(input.label) : `${t(input.label)}:`} - {config.isMandatory ? " * " : null} + {config.isMandatory ? null : " * "}
{ + const { variant } = useParams(); + const { t } = useTranslation(); + const tenantId = Digit.ULBService.getCurrentTenantId(); + const [payload, setPayload] = useState({}) + const [showToast, setShowToast] = useState(null); + + function onSubmit (_data) { + console.log("serachchchhd",_data); + var fromDate = new Date(_data?.fromDate) + fromDate?.setSeconds(fromDate?.getSeconds() - 19800 ) + var toDate = new Date(_data?.toDate) + toDate?.setSeconds(toDate?.getSeconds() + 86399 - 19800) + const data = { + ..._data, + ...(_data.toDate ? {toDate: toDate?.getTime()} : {}), + ...(_data.fromDate ? {fromDate: fromDate?.getTime()} : {}) + } + + let payload = Object.keys(data).filter( k => data[k] ).reduce( (acc, key) => ({...acc, [key]: typeof data[key] === "object" ? data[key].code : data[key] }), {} ); + if(Object.entries(payload).length>0 && !payload.applicationNo && !payload.creationReason && !payload.fromDate && !payload.mobileNumber && !payload.applicationNo && !payload.status && !payload.toDate) + setShowToast({ warning: true, label: "ERR_PTR_FILL_VALID_FIELDS" }); + else if(Object.entries(payload).length>0 && (payload.creationReason || payload.status ) && (!payload.applicationNo && !payload.fromDate && !payload.mobileNumber && !payload.applicationNo && !payload.toDate)) + setShowToast({ warning: true, label: "ERR_PROVIDE_MORE_PARAM_WITH_TYPE_STATUS" }); + else if(Object.entries(payload).length>0 && (payload.fromDate && !payload.toDate) || (!payload.fromDate && payload.toDate)) + setShowToast({ warning: true, label: "ERR_PROVIDE_BOTH_FORM_TO_DATE" }); + else + setPayload(payload) + } + + const config = { + enabled: !!( payload && Object.keys(payload).length > 0 ) + } + + const { isLoading, isSuccess, isError, error, data: {Assets: searchReult, Count: count} = {} } = Digit.Hooks.asset.useASSETSearch( + { tenantId, + filters: payload + }, + config, + ); + console.log("searchReult",searchReult); + return + 0? searchReult : { display: "ES_COMMON_NO_DATA" } ):""} count={count} /> + {showToast && ( + { + setShowToast(null); + }} + /> + )} + + +} + +export default SearchReport \ No newline at end of file diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pages/employee/index.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pages/employee/index.js index 741e000f399..2c703bc34e5 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pages/employee/index.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/asset/src/pages/employee/index.js @@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next"; import { Link, Switch, useLocation } from "react-router-dom"; import { ASSETLinks } from "../../Module"; import SearchApp from "./SearchApp"; +import SearchReport from "./SearchReport"; const EmployeeApp = ({ path, url, userType }) => { @@ -71,6 +72,8 @@ const EmployeeApp = ({ path, url, userType }) => { } /> } /> } /> + } /> +
diff --git a/frontend/micro-ui/web/micro-ui-internals/packages/modules/templates/ApplicationDetails/Modal/ASSETActionModal.js b/frontend/micro-ui/web/micro-ui-internals/packages/modules/templates/ApplicationDetails/Modal/ASSETActionModal.js index 347ca050a9d..0c981f1de10 100644 --- a/frontend/micro-ui/web/micro-ui-internals/packages/modules/templates/ApplicationDetails/Modal/ASSETActionModal.js +++ b/frontend/micro-ui/web/micro-ui-internals/packages/modules/templates/ApplicationDetails/Modal/ASSETActionModal.js @@ -25,19 +25,20 @@ const CloseBtn = (props) => { }; const ActionModal = ({ t, action, tenantId, state, id, closeModal, submitAction, actionData, applicationData, businessService, moduleCode }) => { - +console.log("action",action); const { data: approverData, isLoading: PTALoading } = Digit.Hooks.useEmployeeSearch( - tenantId, { - roles: action?.roles?.map?.((e) => ({ code: e })), + roles: action?.roles?.[0]?.map?.((e) => ({ code: e })), isActive: true, }, { enabled: !action?.isTerminateState } ); + console.log("approverData",approverData) + const [config, setConfig] = useState({});