diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod index 511c4edff31012fcec97a4d870b8b658e9f0a586..2855ca741464f3ca1240c40187a3bd65d15edc59 100644 --- a/entity/Address_entity/Address_entity.aod +++ b/entity/Address_entity/Address_entity.aod @@ -28,6 +28,7 @@ <documentation>%aditoprj%/entity/Address_entity/entityfields/addr_type/documentation.adoc</documentation> <title>Addresstype</title> <consumer>KeywordAddressTypes</consumer> + <valueProcess>%aditoprj%/entity/Address_entity/entityfields/addr_type/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Address_entity/entityfields/addr_type/displayValueProcess.js</displayValueProcess> </entityField> <entityField> @@ -49,6 +50,7 @@ <title>Country</title> <consumer>Countries</consumer> <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/Address_entity/entityfields/country/mandatoryProcess.js</mandatoryProcess> <valueProcess>%aditoprj%/entity/Address_entity/entityfields/country/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Address_entity/entityfields/country/displayValueProcess.js</displayValueProcess> </entityField> @@ -63,6 +65,7 @@ <entityField> <name>CONTACT_ID</name> <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/Address_entity/entityfields/contact_id/mandatoryProcess.js</mandatoryProcess> <valueProcess>%aditoprj%/entity/Address_entity/entityfields/contact_id/valueProcess.js</valueProcess> </entityField> <entityField> @@ -337,12 +340,6 @@ </entityParameter> </children> </entityConsumer> - <entityParameter> - <name>ReloadWorkaround_param</name> - <expose v="true" /> - <triggerRecalculation v="true" /> - <description>PARAMETER</description> - </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Address_entity/entityfields/address/mandatoryProcess.js b/entity/Address_entity/entityfields/address/mandatoryProcess.js index e1e8e5fe1eb533b039d04e372e0ec05177a1c150..e3fe2aaca0f62a84aa3be6d632f91b916bc4a435 100644 --- a/entity/Address_entity/entityfields/address/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/address/mandatoryProcess.js @@ -1,4 +1,15 @@ +import("Entity_lib"); import("system.result"); import("AddressEntity_lib"); -result.string(AddressEntityValidation.isMandatoryField()); \ No newline at end of file +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], AddressEntityValidation.isMandatoryField())); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/city/mandatoryProcess.js b/entity/Address_entity/entityfields/city/mandatoryProcess.js index e1e8e5fe1eb533b039d04e372e0ec05177a1c150..e3fe2aaca0f62a84aa3be6d632f91b916bc4a435 100644 --- a/entity/Address_entity/entityfields/city/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/city/mandatoryProcess.js @@ -1,4 +1,15 @@ +import("Entity_lib"); import("system.result"); import("AddressEntity_lib"); -result.string(AddressEntityValidation.isMandatoryField()); \ No newline at end of file +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], AddressEntityValidation.isMandatoryField())); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/contact_id/mandatoryProcess.js b/entity/Address_entity/entityfields/contact_id/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9f96f58a0fe94f22a96e5daee2f08d6005f54df2 --- /dev/null +++ b/entity/Address_entity/entityfields/contact_id/mandatoryProcess.js @@ -0,0 +1,15 @@ +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], true)); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/country/mandatoryProcess.js b/entity/Address_entity/entityfields/country/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9f96f58a0fe94f22a96e5daee2f08d6005f54df2 --- /dev/null +++ b/entity/Address_entity/entityfields/country/mandatoryProcess.js @@ -0,0 +1,15 @@ +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], true)); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/state/mandatoryProcess.js b/entity/Address_entity/entityfields/state/mandatoryProcess.js index e1e8e5fe1eb533b039d04e372e0ec05177a1c150..e3fe2aaca0f62a84aa3be6d632f91b916bc4a435 100644 --- a/entity/Address_entity/entityfields/state/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/state/mandatoryProcess.js @@ -1,4 +1,15 @@ +import("Entity_lib"); import("system.result"); import("AddressEntity_lib"); -result.string(AddressEntityValidation.isMandatoryField()); \ No newline at end of file +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], AddressEntityValidation.isMandatoryField())); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/zip/mandatoryProcess.js b/entity/Address_entity/entityfields/zip/mandatoryProcess.js index d12bb3e05db3614c026dab818d1f94676aa73978..e3fe2aaca0f62a84aa3be6d632f91b916bc4a435 100644 --- a/entity/Address_entity/entityfields/zip/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/zip/mandatoryProcess.js @@ -1,4 +1,15 @@ +import("Entity_lib"); import("system.result"); import("AddressEntity_lib"); -result.string(AddressEntityValidation.isMandatoryField()); +result.object(ProcessHandlingUtils.getMandatoryIgnoreAllEmpty([ + "$field.ADDR_TYPE", + "$field.ADDRESS", + "$field.BUILDINGNO", + "$field.ZIP", + "$field.CITY", + "$field.COUNTRY", + "$field.STATE", + "$field.REGION", + "$field.ADDRIDENTIFIER" + ], AddressEntityValidation.isMandatoryField())); \ No newline at end of file diff --git a/process/Entity_lib/process.js b/process/Entity_lib/process.js index 6db3b2deba0ad67d82b693ba8cd5e421a7f547d0..5c7dfbf7817a9c55e1dd1f65d57da28eeea873c4 100644 --- a/process/Entity_lib/process.js +++ b/process/Entity_lib/process.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.result"); import("system.neon"); import("system.vars"); @@ -47,6 +48,26 @@ ProcessHandlingUtils.initialParamToResult = function(pParamVarName) } +ProcessHandlingUtils.getMandatoryIgnoreAllEmpty = function(pFields, pIsMandatory) +{ + var allEmpty = true; + logging.log("-------------") + pFields.forEach(function(pField) { + logging.log(pField + " " + vars.getString(pField)) + if (vars.getString(pField)) + { + + allEmpty = false; + } + }); + logging.log(allEmpty) + logging.log(pIsMandatory) + logging.log(!allEmpty && pIsMandatory) + + logging.log("-------------") + return !allEmpty && pIsMandatory; +} + /** * Workaround for detecting field changes of fields not managed by record containers. * Should be fixed in the future: Ticket 1030023