diff --git a/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtResponsibleDatatypes.xml b/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtResponsibleDatatypes.xml index 0f1ffdd8ebb4c2ef6431a1cfba700363f236e25c..7865093566d927f59c40e287bb707ec886a9458d 100644 --- a/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtResponsibleDatatypes.xml +++ b/.liquibase/Data_alias/basic/2020.2.0/Districts/alter_districtResponsibleDatatypes.xml @@ -10,4 +10,4 @@ <column name="VALIDTO" type="DATETIME" /> </addColumn> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml index c3a1d3c5759b118fd0d3d4e30e38f246a3f28166..7eea5966581a44cf29ffb6bdf99ab97e95eb3e10 100644 --- a/.liquibase/Data_alias/changelog.xml +++ b/.liquibase/Data_alias/changelog.xml @@ -19,4 +19,4 @@ <!--enable this only when you definetly want to overwrite the existing data with demo records:--> <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>--> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index aa6f6d7503e128af347e2a003aacb8bbf9f1a904..854be4d73cc57097e0c0d5334b6fec4c3e4494a8 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -15891,8 +15891,20 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>District</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + <customJDitoProperty> + <name>translate4Log</name> + <global v="false" /> + <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>CONTACT_ID</name> diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js new file mode 100644 index 0000000000000000000000000000000000000000..1107fb8c489e4ff36f2cfe85ee1607b6e5ec5098 --- /dev/null +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/district_id/customproperties/translate4log/property.js @@ -0,0 +1,22 @@ +import("system.translate"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); +import("District_lib"); +import("system.result"); +import("Loghistory_lib"); +import("Contact_lib"); + +var params = Translate4LogParams.load(); + +if (params.action == 'I') +{ + //Gebiet und Betreur umschlüsseln + var arrDistrictContact = DistrictUtils.getDataFromDistrictContact(params.rowId); + var districtName = DistrictUtils.getDistrictName(arrDistrictContact[0]); + var adviserName = ContactUtils.getTitleByContactId(arrDistrictContact[1]); + result.string(districtName + " (" + params.value + "); " + translate.text("Adviser") + ": " + adviserName); +} +else if (params.action == 'D') +{ + result.string(params.value); +} \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js index c079c7fd8009ca6915d731ed02160ad0e9d8ecfa..2c298584241dbb8701c02a1b7f5974471326113d 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/districtcontact/entityfields/status/customproperties/translate4log/property.js @@ -8,12 +8,17 @@ import("Contact_lib"); var params = Translate4LogParams.load(); -//Keyword umschlüsseln -var keyname = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), params.value); +//Statusänderung protokollieren +if (params.action == 'U') +{ + //Keyword umschlüsseln + var keyname = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), params.value); -//Gebiet und Betreur umschlüsseln -var arrDistrictContact = DistrictUtils.getDataFromDistrictContact(params.rowId); -var districtName = DistrictUtils.getDistrictName(arrDistrictContact[0]); -var adviserName = ContactUtils.getFullTitleByContactId(arrDistrictContact[1]) - -result.string(keyname + " (" + translate.text("District") + ": " + districtName + "; " + translate.text("Adviser") + ": " + adviserName + ")"); \ No newline at end of file + //Gebiet und Betreur umschlüsseln + var arrDistrictContact = DistrictUtils.getDataFromDistrictContact(params.rowId); + var districtName = DistrictUtils.getDistrictName(arrDistrictContact[0]); + //var adviserName = ContactUtils.getFullTitleByContactId(arrDistrictContact[1]); + var adviserName = ContactUtils.getTitleByContactId(arrDistrictContact[1]); + + result.string(keyname + " (" + translate.text("District") + ": " + districtName + "; " + translate.text("Adviser") + ": " + adviserName + ")"); +} \ No newline at end of file diff --git a/entity/District_entity/District_entity.aod b/entity/District_entity/District_entity.aod index 9b8b64b8204918ea1fbb962c46e5c9d3efc92f8c..c15588d76c0f7f0f5d1b05917ba42e7540a43a98 100644 --- a/entity/District_entity/District_entity.aod +++ b/entity/District_entity/District_entity.aod @@ -5,6 +5,8 @@ <documentation>%aditoprj%/entity/District_entity/documentation.adoc</documentation> <icon>VAADIN:GLOBE</icon> <title>District definition</title> + <grantDelete v="false" /> + <grantDeleteProcess>%aditoprj%/entity/District_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/District_entity/contentTitleProcess.js</contentTitleProcess> <iconIdProcess>%aditoprj%/entity/District_entity/iconIdProcess.js</iconIdProcess> <titlePlural></titlePlural> @@ -316,6 +318,7 @@ <isPageable v="false" /> <conditionProcess>%aditoprj%/entity/District_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <orderClauseProcess>%aditoprj%/entity/District_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <onDBDelete>%aditoprj%/entity/District_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <cacheType>GLOBAL</cacheType> <cacheKeyProcess>%aditoprj%/entity/District_entity/recordcontainers/db/cacheKeyProcess.js</cacheKeyProcess> <linkInformation> diff --git a/entity/District_entity/grantDeleteProcess.js b/entity/District_entity/grantDeleteProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7522748ad5fbe8f919791ccf756baa186da5b08a --- /dev/null +++ b/entity/District_entity/grantDeleteProcess.js @@ -0,0 +1,16 @@ +import("system.result"); +import("Sql_lib"); +import("system.vars"); + +//Ist das zu löschende Gebiet ein übergeordnetes Gebiet, dann ist das Löschen nicht erlaubt. +var districtId = vars.get("$field.DISTRICTID"); +var anzahl = newSelect("COUNT(*)") + .from("DISTRICT") + .where("DISTRICT.PARENTDISTRICT_DISTRICTID", districtId) + .cell(true); + +if (anzahl > 0) + result.string(false); +else + result.string(true); + diff --git a/entity/District_entity/recordcontainers/db/onDBDelete.js b/entity/District_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..20387d3b81fded387ccec7197be53354a75fa1b6 --- /dev/null +++ b/entity/District_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,16 @@ +import("Sql_lib"); +import("system.vars"); +import("system.db"); + +var condition; +var deleteArray = []; +var districtId = vars.get("$field.DISTRICTID"); + +//Gebiet wird gelöscht -> auch die Referenzen in den folgenden Tabellen löschen +condition = newWhere("DISTRICTCONTACT.DISTRICT_ID", districtId); +deleteArray.push(["DISTRICTCONTACT", condition.build()]); + +condition = newWhere("DISTRICTRESPONSIBLE.DISTRICT_ID", districtId); +deleteArray.push(["DISTRICTRESPONSIBLE", condition.build()]); + +db.deletes(deleteArray); \ No newline at end of file diff --git a/process/District_lib/process.js b/process/District_lib/process.js index 8e3a1b061af45e34afa1f66ce2f860fc71112977..0d62bcb6b5ee8be6cfb5d1ba47dc1e609306394e 100644 --- a/process/District_lib/process.js +++ b/process/District_lib/process.js @@ -155,15 +155,15 @@ DistrictUtils.assignDistrict = function (pDistrictId, pAppliedFilter) "STATUS", "VALID_FROM", "VALID_UNTIL", - "ORIGIN"/*, + "ORIGIN", "USER_NEW", - "DATE_NEW"*/ + "DATE_NEW" ]; var updateArray = []; var colsUpdate = [ - "STATUS"/*, + "STATUS", "USER_EDIT", - "DATE_EDIT"*/ + "DATE_EDIT" ]; //Anlegen der Firmen-Betreuer-Datensätze in der Tabelle DISTRICTCONTACT @@ -201,9 +201,9 @@ DistrictUtils.assignDistrict = function (pDistrictId, pAppliedFilter) arrResponsibleIds[j][2], arrResponsibleIds[j][3], arrResponsibleIds[j][4], - $KeywordRegistry.districtOrigin$auto()/*, + $KeywordRegistry.districtOrigin$auto(), vars.get("$sys.user"), - vars.get("$sys.date")*/ + vars.get("$sys.date") ]; insertArray.push(["DISTRICTCONTACT", colsInsert, null, valsInsert]); } @@ -219,9 +219,9 @@ DistrictUtils.assignDistrict = function (pDistrictId, pAppliedFilter) for (var l=0; l<arrExistingIds.length; l++) { var valsUpdate = [ - $KeywordRegistry.contactStatus$inReview()/*, + $KeywordRegistry.contactStatus$inReview(), vars.get("$sys.user"), - vars.get("$sys.date")*/ + vars.get("$sys.date") ]; var condition = newWhere("DISTRICTCONTACT.DISTRICTCONTACTID", arrExistingIds[l][0]); updateArray.push(["DISTRICTCONTACT", colsUpdate, null, valsUpdate, condition.build()]);