Skip to content
Snippets Groups Projects
Commit f22d5ddc authored by Sebastian Pongratz's avatar Sebastian Pongratz :ping_pong: Committed by Benjamin Ulrich
Browse files

[Projekt: xRM-ContactManagement][TicketNr.: 1083421][Kommunikationsdaten...

[Projekt: xRM-ContactManagement][TicketNr.: 1083421][Kommunikationsdaten Modular gestalten] update demoData
parent 288cf72a
No related branches found
No related tags found
No related merge requests found
Showing
with 90 additions and 31 deletions
......@@ -5,7 +5,8 @@ import("Sql_lib");
import("Keyword_lib");
var cond = newWhere()
.andIfSet("COMMUNICATION.CONTACT_ID", "$param.ContactId_param")
.andIfSet("COMMUNICATION.OBJECT_ROWID", "$param.ObjectRowId_param")
.andIfSet("COMMUNICATION.OBJECT_TYPE", "$param.ObjectType_param")
.andIfSet("COMMUNICATION.ADDR", "$param.Address_param")
if (vars.getString("$param.CommMediumIds_param"))
......
import("Communication_lib");
import("Workflow_lib");
import("system.logging");
import("system.util");
......@@ -5,15 +6,18 @@ import("system.db");
import("DataPrivacy_lib");
import("system.vars");
import("StandardObject_lib");
import("Util_lib");
var rowdata = vars.get("$local.rowdata");
var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.CONTACT_ID"])
var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.OBJECT_ROWID"])
standard.onCommunicationInsert(rowdata["COMMUNICATION.MEDIUM_ID"]);
if(vars.exists("$context.PushDataPrivacyNotification") && vars.get("$context.PushDataPrivacyNotification") == "false")
if(vars.exists("$context.PushDataPrivacyNotification")
&& !Utils.toBoolean(vars.get("$context.PushDataPrivacyNotification"))
&& rowdata["COMMUNICATION.OBJECT_TYPE"] === CommUtil.defaultObjectType())
{
DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.OBJECT_ROWID"], vars.get("$param.ShowDsgvoMessage_param"));
vars.set("$context.PushDataPrivacyNotification", "true");
}
......@@ -23,7 +27,8 @@ if (vars.exists("$param.AdditionalContactIds_param") && vars.get("$param.Additio
var cols = [
"COMMUNICATIONID",
"ADDR",
"CONTACT_ID",
"OBJECT_ROWID",
"OBJECT_TYPE",
"MEDIUM_ID",
"ISSTANDARD",
"DATE_NEW",
......@@ -35,6 +40,7 @@ if (vars.exists("$param.AdditionalContactIds_param") && vars.get("$param.Additio
util.getNewUUID(),
rowdata["COMMUNICATION.ADDR"],
contactId,
CommUtil.defaultObjectType(),
rowdata["COMMUNICATION.MEDIUM_ID"],
rowdata["COMMUNICATION.ISSTANDARD"],
rowdata["COMMUNICATION.DATE_NEW"],
......
import("Util_lib");
import("Communication_lib");
import("Workflow_lib");
import("DataPrivacy_lib");
import("system.vars");
......@@ -5,15 +7,17 @@ import("StandardObject_lib");
var rowdata = vars.get("$local.rowdata");
if (rowdata["COMMUNICATION.CONTACT_ID"] != null)
if (rowdata["COMMUNICATION.OBJECT_ROWID"] != null)
{
var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.CONTACT_ID"])
var standard = new StandardObject("Communication", vars.get("$local.uid"), "Person", rowdata["COMMUNICATION.OBJECT_ROWID"])
standard.onCommunicationUpdate(rowdata["COMMUNICATION.MEDIUM_ID"]);
}
if(vars.exists("$context.PushDataPrivacyNotification") && vars.get("$context.PushDataPrivacyNotification") == "false")
if(vars.exists("$context.PushDataPrivacyNotification")
&& !Utils.toBoolean(vars.get("$context.PushDataPrivacyNotification"))
&& rowdata["COMMUNICATION.OBJECT_TYPE"] === CommUtil.defaultObjectType())
{
DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.OBJECT_ROWID"], vars.get("$param.ShowDsgvoMessage_param"));
vars.set("$context.PushDataPrivacyNotification", "true");
}
......
......@@ -107,7 +107,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Contact_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
......
import("Communication_lib");
import("Sql_lib");
import("Attribute_lib");
import("Workflow_lib");
......@@ -11,7 +12,7 @@ DuplicateScannerUtils.deleteHasDuplicateEntries("Organisation_entity", [contactI
new AttributeRelationQuery(contactId, null, "Person")
.deleteAllAttributes();
newWhere("COMMUNICATION.CONTACT_ID", contactId).deleteData();
newWhere("COMMUNICATION.OBJECT_ROWID", contactId).and("COMMUNICATION.OBJECT_TYPE", CommUtil.defaultObjectType()).deleteData();
newWhere("ADDRESS.CONTACT_ID", contactId).deleteData();
newWhere("COMMRESTRICTION.CONTACT_ID", contactId).deleteData();
......
......@@ -64,7 +64,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
......
......@@ -10,9 +10,10 @@ if (contactId)
{
var addresses = newSelect("ADDR, ADDR")
.from("COMMUNICATION")
.where("COMMUNICATION.CONTACT_ID", contactId)
.where("COMMUNICATION.OBJECT_ROWID", contactId)
.and("COMMUNICATION.OBJECT_TYPE", "Contact")
.and("COMMUNICATION.MEDIUM_ID", CommUtil.getMediumIdsByCategory("EMAIL"), SqlBuilder.IN())
.table()
.table();
//include the currently set email address
var currentAddress = vars.get("$field.EMAIL_ADDRESS");
......
......@@ -212,7 +212,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
</entityParameter>
......@@ -298,7 +298,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
</entityParameter>
......@@ -313,7 +313,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
</entityParameter>
......
import("Sql_lib");
import("system.vars");
import("system.result");
result.string("CONTACTID in (select CONTACT_ID from COMMUNICATION where " + vars.get("$local.condition") + " )");
\ No newline at end of file
result.string(newWhere("CONTACT.CONTACTID",
newSelect(["COMMUNICATION.OBJECT_ROWID"])
.from("COMMUNICATION")
.where(vars.get("$local.condition"))
.and("COMMUNICATION.OBJECT_TYPE", "Contact"), SqlBuilder.IN())
.toString());
\ No newline at end of file
......@@ -47,9 +47,10 @@ switch (tableName)
//do not skip here if it's a delete action since it could be that only a communication-entry is removed and not a whole record-set of
//organisation, address, communication, etc.
res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){
return newSelect("COMMUNICATION.CONTACT_ID")
return newSelect("COMMUNICATION.OBJECT_ROWID")
.from("COMMUNICATION")
.where("COMMUNICATION.COMMUNICATIONID", id)
.and("COMMUNICATION.OBJECT_TYPE", "Contact")
.arrayColumn();
});
break;
......
......@@ -46,16 +46,20 @@ var querySelect = newSelect([
.from("ORGANISATION")
.join("CONTACT", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null")
.leftJoin("ADDRESS", "standardAddress.ADDRESSID = CONTACT.ADDRESS_ID", "standardAddress")
.leftJoin("COMMUNICATION", "COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID")
.leftJoin("COMMUNICATION", newWhere("COMMUNICATION.OBJECT_ROWID = CONTACT.CONTACTID")
.and("COMMUNICATION.OBJECT_TYPE", "Contact")
)
//standardMail is not multi valued and can only old one value (the standard email address)
.leftJoin("COMMUNICATION", newWhere("standardEmail.CONTACT_ID = CONTACT.CONTACTID")
.leftJoin("COMMUNICATION", newWhere("standardEmail.OBJECT_ROWID = CONTACT.CONTACTID")
.and(["COMMUNICATION", "MEDIUM_ID", "standardEmail"], commMediumMailIds, SqlBuilder.IN())
.and(["COMMUNICATION", "ISSTANDARD", "standardEmail"], "1")
.and(["COMMUNICATION", "OBJECT_TYPE", "standardEmail"], "Contact")
, "standardEmail")
//standardPhone is not multi valued and can only old one value (the standard phone number)
.leftJoin("COMMUNICATION", newWhere("standardPhone.CONTACT_ID = CONTACT.CONTACTID")
.leftJoin("COMMUNICATION", newWhere("standardPhone.OBJECT_ROWID = CONTACT.CONTACTID")
.and(["COMMUNICATION", "MEDIUM_ID", "standardPhone"], commMediumPhoneIds, SqlBuilder.IN())
.and(["COMMUNICATION", "ISSTANDARD", "standardPhone"], "1")
.and(["COMMUNICATION", "OBJECT_TYPE", "standardPhone"], "Contact")
, "standardPhone")
.where("CONTACT.STATUS", $KeywordRegistry.contactStatus$inactive(), SqlBuilder.NOT_EQUAL())
.and("ORGANISATION.ORGANISATIONID", OrgUtils.getPrivateOrganisationId(), SqlBuilder.NOT_EQUAL())
......
......@@ -209,7 +209,7 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
<description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
......@@ -223,6 +223,10 @@
<name>ContactsMainCountry_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactsmaincountry_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
......@@ -407,12 +411,16 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
<description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
......@@ -425,12 +433,16 @@
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<name>ObjectRowId_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
<expose v="false" />
<description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityField>
......
import("Communication_lib");
import("system.result");
result.string(CommUtil.defaultObjectType());
\ No newline at end of file
......@@ -34,7 +34,8 @@ if(contactIds > 1)
new AttributeRelationQuery(contactId, null, context)
.deleteAllAttributes();
newWhere("COMMUNICATION.CONTACT_ID", contactId)
newWhere("COMMUNICATION.OBJECT_ROWID", contactId)
.and("COMMUNICATION.OBJECT_TYPE", "Contact")
.deleteData();
newWhere("ADDRESS.CONTACT_ID", contactId)
.deleteData();
......
import("Communication_lib");
import("system.result");
result.string(CommUtil.defaultObjectType());
\ No newline at end of file
import("Communication_lib");
import("system.result");
result.string(CommUtil.defaultObjectType());
\ No newline at end of file
......@@ -13,7 +13,8 @@ DuplicateScannerUtils.deleteHasDuplicateEntries(EntityUtils.getCurrentEntitytId(
new AttributeRelationQuery(contactId, null, context)
.deleteAllAttributes();
newWhere("COMMUNICATION.CONTACT_ID", contactId).deleteData();
newWhere("COMMUNICATION.OBJECT_ROWID", contactId)
.and("COMMUNICATION.OBJECT_TYPE", "Contact").deleteData();
newWhere("ADDRESS.CONTACT_ID", contactId).deleteData();
newWhere("COMMUNICATIONSETTINGS.CONTACT_ID", contactId).deleteData();
newWhere("AB_APPOINTMENTLINK.OBJECT_TYPE", context)
......
import("Sql_lib");
import("system.vars");
import("system.result");
result.string("CONTACTID in (select CONTACT_ID from COMMUNICATION where " + vars.get("$local.condition") + " )");
\ No newline at end of file
result.string(newWhere("CONTACT.CONTACTID",
newSelect(["COMMUNICATION.OBJECT_ROWID"])
.from("COMMUNICATION")
.where(vars.get("$local.condition"))
.and("COMMUNICATION.OBJECT_TYPE", "Contact"), SqlBuilder.IN())
.toString());
\ No newline at end of file
......@@ -58,9 +58,10 @@ switch (tableName)
//do not skip here if it's a delete action since it could be that only a communication-entry is removed and not a whole record-set of
//organisation, person, address, communication, etc.
res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){
return newSelect("COMMUNICATION.CONTACT_ID")
return newSelect("COMMUNICATION.OBJECT_ROWID")
.from("COMMUNICATION")
.where("COMMUNICATION.COMMUNICATIONID", id)
.where("COMMUNICATION.OBJECT_TYPE", "Contact")
.arrayColumn();
});
break;
......
......@@ -46,11 +46,13 @@ var querySelect = newSelect([
.join("CONTACT", "CONTACT.PERSON_ID = PERSON.PERSONID")
.join("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
.leftJoin("ADDRESS", "defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID", "defaultAddress")
.leftJoin("COMMUNICATION", newWhere("email.CONTACT_ID = CONTACT.CONTACTID")
.leftJoin("COMMUNICATION", newWhere("email.OBJECT_ROWID = CONTACT.CONTACTID")
.and(["COMMUNICATION", "MEDIUM_ID", "email"], commMediumEmailIds, SqlBuilder.IN())
.and(["COMMUNICATION", "OBJECT_TYPE", "email"], "Contact")
.and(["COMMUNICATION", "ISSTANDARD", "email"], "1"), "email")
.leftJoin("COMMUNICATION", newWhere("phone.CONTACT_ID = CONTACT.CONTACTID")
.leftJoin("COMMUNICATION", newWhere("phone.OBJECT_ROWID = CONTACT.CONTACTID")
.and(["COMMUNICATION", "MEDIUM_ID", "phone"], commMediumPhoneIds, SqlBuilder.IN())
.and(["COMMUNICATION", "OBJECT_TYPE", "phone"], "Contact")
.and(["COMMUNICATION", "ISSTANDARD", "phone"], "1"), "phone")
.where("CONTACT.STATUS", $KeywordRegistry.contactStatus$inactive(), SqlBuilder.NOT_EQUAL())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment