In this Document we see about MDMS configurations that are being used in the Property Create/update/Assess/Reassess flow.
In the MDMS call we will get the Dropdown values and List of Documents that is present while entering the Form .
Refer Property Actions for List of MDMS call present in Property Create flow,
https://digit-discuss.atlassian.net/wiki/spaces/EGR/pages/406618320/Property+Actions.
Here we see more about MDMS call for Document .
It is being used in two screens,
1. Document Required popup
2. Document Upload screen (Step 4 in Creating Property)
In both places it will make call using this MDMS criteria,
"MdmsCriteria": { "tenantId": "pb", "moduleDetails": [ { "moduleName": "PropertyTax", "masterDetails": [ { "name": "Documents" } ] } ] }
Reference :
https://github.com/egovernments/egov-mdms-data/blob/master/data/pb/PropertyTax/Documents.json
1.Document Required Popup .
It is a Popup shows user before applying about what all documents required for Creating a Property.
Its Configuration are present in the ,
dev-packages\egov-pt-dev\src\ui-config\screens\specs\pt-mutation\requiredDocuments\reqDocs.js
2. Document Upload Screen,
It is the last screen before summary while creating a Property , here it collects document information to verify the entered User Information is Valid.
Here we see detail about each configuration in the MDMS Documents.
Each Document value will have following structure
{ "code": "OWNER.SPECIALCATEGORYPROOF", "documentType": "OWNER", "required": true, "active": true, "hasDropdown": true, "additionalDetails": { "filterCondition": { "filterValue": [ "NONE", null ], "jsonPath": "Properties[0].propertyDetails[0].owners", "onArray": true, "arrayAttribute": "ownerType" }, "dropdownFilter": { "parentArrayJsonPath": "Properties[0].propertyDetails[0].owners", "parentJsonpath": "ownerType" }, "enabledActions": { "assess": { "disableUpload": true, "disableDropdown": true }, "reassess": { "disableUpload": true, "disableDropdown": true }, "update": { "disableUpload": true, "disableDropdown": true }, "create": { "disableUpload": false, "disableDropdown": false } } }, "dropdownData": [ { "code": "OWNER.SPECIALCATEGORYPROOF.SERVICEDOCUMENT", "active": true, "parentValue": [ "FREEDOMFIGHTER", "DEFENSE" ] }, { "code": "OWNER.SPECIALCATEGORYPROOF.HANDICAPCERTIFICATE", "active": true, "parentValue": [ "HANDICAPPED" ] } ], "description": "OWNER.SPECIALCATEGORYPROOF.SPECIALCATEGORYPROOF_DESCRIPTION" },
In Each Document we have configurations
1. Attribute “enabledActions
“ we can use for disable / enable document upload.
if we want document editable during a particular action i.e. for ‘Update Property’
it is configured as
"update": { "disableUpload": true, "disableDropdown": true },
it means document type will be disabled and document upload option also will be disabled.
similarly for ‘assess',’reassess','create'.
2. Attribute “dropdownFilter”
it can be used for filtering all the options for each document in document upload screen based on previous value that is being entered in previous screens.
it is configured as
"dropdownFilter": { "parentArrayJsonPath": "Properties[0].propertyDetails[0].owners", "parentJsonpath": "ownerType" },
here parentArrayJsonPath
is the JSON path of the Array element if we need to check the values in an array
if it is not a type array then use “parentJsonpath”
.
"dropdownFilter": { "parentJsonpath": "Properties[0].propertyDetails[0].usageCategoryMinor" },
once the value is fetched then it will compare with each option of the dropdown
here “parentValue”
is an array which will have all the values for which it should be shown.
"parentValue": [ "FREEDOMFIGHTER", "DEFENSE" ]
3. Similar to the Dropdown filter we have option to show / hide document upload option based on previous values.
configuration for that is as follow
"filterCondition": { "filterValue": [ "NONE", null ], "jsonPath": "Properties[0].propertyDetails[0].owners", "onArray": true, "arrayAttribute": "ownerType" },
here “filterValue
“ is an array which will have all the values for which it should be shown.
“jsonPath
“ corresponds to the objects path where it should be compared with.
“onArray
“ is true if it needs to be compared with an Array of objects
“arrayAttribute
“ the value corresponds to the array attribute from which values will be compared
Based on this document will be shown / hidden.
4. “dropdownData“ will have the following structure
here code corresponds to the Label of the dropdown option
active corresponds to option is active / inactive
parent value used for filtering the options present in the document upload .
"dropdownData": [ { "code": "OWNER.SPECIALCATEGORYPROOF.SERVICEDOCUMENT", "active": true, "parentValue": [ "FREEDOMFIGHTER", "DEFENSE" ] }, { "code": "OWNER.SPECIALCATEGORYPROOF.HANDICAPCERTIFICATE", "active": true, "parentValue": [ "HANDICAPPED" ] } ],