diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml index 41dac3bf114796915ea3eb8883eb5d96d67517ec..fef08cdf38b829dd95120db15d3fdc5ac0357aab 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/address.xml @@ -63,29 +63,30 @@ <column name="ZIP" value="80807"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Eichenallee"/> + <column name="ADDRESS" value="Freiberger Str."/> <column name="ADDRESSID" value="1a20347c-ab56-41cb-a7dc-bd61de7e2106"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="45"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Dresden"/> <column name="CONTACT_ID" value="5a52304e-65e8-40ed-9aca-a76af6c8c3a0"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:46:28"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80228"/> + <column name="ZIP" value="01159"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Dotterblumenstrasse"/> + <column name="ADDRESS" value="Regensburger Straße"/> <column name="ADDRESSID" value="25360df5-104e-4903-8440-f848d025a24b"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> + <column name="BUILDINGNO" value="45"/> <column name="CITY" value="Ingolstadt"/> <column name="CONTACT_ID" value="e450d126-eab8-4517-ba7c-8b6804f8c859"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:49:41"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="85051"/> + <column name="ZIP" value="85055"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hildburghausen"/> @@ -103,7 +104,7 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Grassstraße"/> + <column name="ADDRESS" value="Landshuter Str."/> <column name="ADDRESSID" value="2a03d8cb-ffb7-4d04-b8b2-e55354380fb7"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="32"/> @@ -111,12 +112,12 @@ <column name="CONTACT_ID" value="cabf6192-f9c3-4bd4-9366-ad2b073bdfa3"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:42:01"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> <column name="ZIP" value="84144"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Baustraße"/> + <column name="ADDRESS" value="Bolzstraße"/> <column name="ADDRESSID" value="35e93f95-d723-46d6-955f-9192e41e3d83"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="64"/> @@ -129,7 +130,7 @@ <column name="ZIP" value="70173"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Leasingstrasse"/> + <column name="ADDRESS" value="Torstraße"/> <column name="ADDRESSID" value="36723051-8a5f-47d3-8185-71c82d463eb3"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="78"/> @@ -139,7 +140,7 @@ <column name="DATE_NEW" valueDate="2019-05-17T09:44:21"/> <column name="PROVINCE" value="Deutschland"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="10409"/> + <column name="ZIP" value="10115"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Neustadt"/> @@ -157,17 +158,17 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Stahlstraße"/> + <column name="ADDRESS" value="Königstraße"/> <column name="ADDRESSID" value="4eb7039a-1515-4545-86b4-85426a67fcd5"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="24"/> + <column name="BUILDINGNO" value="4"/> <column name="CITY" value="Hamburg"/> <column name="CONTACT_ID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-15T03:21:35"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Hamburg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="20095"/> + <column name="ZIP" value="22767 "/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Büsingstrasse"/> @@ -184,22 +185,22 @@ <column name="ZIP" value="85230"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Muster-Straße"/> + <column name="ADDRESS" value="Sandstraße"/> <column name="ADDRESSID" value="6a3f6232-7a66-4a72-8d2d-66a3a9f1b9ea"/> <column name="ADDRIDENTIFIER" value="Tor 1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="3"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Nürnberg"/> <column name="CONTACT_ID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-13T01:16:38"/> <column name="DISTRICT" value="Oberbayern"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80807"/> + <column name="ZIP" value="90443"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Hafenstraße"/> + <column name="ADDRESS" value="Friedrichshafen"/> <column name="ADDRESSID" value="7d116e5e-0c6b-475b-91e7-7cae94b65321"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="12"/> @@ -209,7 +210,7 @@ <column name="DATE_NEW" valueDate="2019-05-15T03:28:49"/> <column name="PROVINCE" value="Deutschland"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="88045"/> + <column name="ZIP" value="88046"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Grosse Praesidenten Str."/> @@ -253,17 +254,17 @@ <column name="ZIP" value="18074"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Kronenstraße"/> + <column name="ADDRESS" value="Fliederstraße"/> <column name="ADDRESSID" value="8923fff3-4294-4892-b3f3-8470ae89555e"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="45"/> - <column name="CITY" value="Landshut"/> + <column name="BUILDINGNO" value="4"/> + <column name="CITY" value="Leonberg"/> <column name="CONTACT_ID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:40:30"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Baden-Württemberg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="84028"/> + <column name="ZIP" value="71229"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hauptstraße"/> @@ -308,19 +309,19 @@ <column name="ZIP" value="80456"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Rudower Strasse"/> + <column name="ADDRESS" value="Oeder Weg"/> <column name="ADDRESSID" value="90726b19-f23c-42dd-847a-7eacf4c71d18"/> <column name="ADDRIDENTIFIER" value="Tor 1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="6"/> - <column name="CITY" value="München"/> + <column name="CITY" value="Frankfurt am Main"/> <column name="CONTACT_ID" value="fd082db5-be43-4219-a705-588f9c06e59b"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-13T01:16:38"/> <column name="DISTRICT" value="Oberbayern"/> <column name="PROVINCE" value="Bayern"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="54595"/> + <column name="ZIP" value="60318"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Hildburghausen"/> @@ -378,7 +379,7 @@ <column name="ZIP" value="84034"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Großstraße"/> + <column name="ADDRESS" value="Am Alten Viehmarkt"/> <column name="ADDRESSID" value="da05619e-47c6-4144-a698-f0f830d9f755"/> <column name="ADDR_TYPE" value="DELIVERADDR"/> <column name="BUILDINGNO" value="6"/> @@ -391,7 +392,7 @@ <column name="ZIP" value="84028"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Lagerstraße"/> + <column name="ADDRESS" value="Karlstraße"/> <column name="ADDRESSID" value="dd1a1831-b05a-41a7-a4e9-d73be9d77934"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> <column name="BUILDINGNO" value="2"/> @@ -417,32 +418,32 @@ <column name="ZIP" value="28103"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Birkenstrasse"/> + <column name="ADDRESS" value="Julius-Leber-Straße"/> <column name="ADDRESSID" value="e1aef1b7-569b-46be-bc50-f02332a42ef1"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="78"/> - <column name="CITY" value="Augsburg"/> + <column name="BUILDINGNO" value="5"/> + <column name="CITY" value="Hamburg"/> <column name="CONTACT_ID" value="019651a4-503e-4e06-aefd-e7e631bf3144"/> <column name="COUNTRY" value="DE"/> <column name="DATE_NEW" valueDate="2019-05-17T09:50:42"/> - <column name="PROVINCE" value="Bayern"/> + <column name="PROVINCE" value="Hamburg"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="86130"/> + <column name="ZIP" value="22765"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Grabweg"/> + <column name="ADDRESS" value="Blumenstraße"/> <column name="ADDRESSID" value="ea50cb02-7d4d-433d-9cd3-c262d5a0bb27"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> - <column name="BUILDINGNO" value="17a"/> - <column name="CITY" value="Neumünster"/> + <column name="BUILDINGNO" value="11"/> + <column name="CITY" value="Regensburg"/> <column name="CONTACT_ID" value="449080f6-b714-4189-a261-37439d0d4010"/> <column name="COUNTRY" value="DE"/> <column name="DATE_EDIT" valueDate="2019-06-07T02:49:33"/> <column name="DATE_NEW" valueDate="2019-05-17T10:04:16"/> - <column name="PROVINCE" value="Deutschland"/> + <column name="PROVINCE" value="Bayern"/> <column name="USER_EDIT" value="Admin"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="24534"/> + <column name="ZIP" value="93055"/> </insert> <insert tableName="address"> <column name="ADDRESS" value="Spresstrasse"/> @@ -459,7 +460,7 @@ <column name="ZIP" value="33739"/> </insert> <insert tableName="address"> - <column name="ADDRESS" value="Lützowplatz"/> + <column name="ADDRESS" value="Gotthardstraße"/> <column name="ADDRESSID" value="f54606ee-ecdd-4859-ad7d-aa096c5e9596"/> <column name="ADDRIDENTIFIER" value="Tor 4"/> <column name="ADDR_TYPE" value="OFFICEADDR"/> @@ -473,7 +474,7 @@ <column name="PROVINCE" value="Bayern"/> <column name="USER_EDIT" value="Admin"/> <column name="USER_NEW" value="Admin"/> - <column name="ZIP" value="80807"/> + <column name="ZIP" value="80689"/> </insert> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee index 3be0dfa1a18f8d33f1c593c88e952b6a264a1ab3..f6b1d7441cd9c9098fcd3cb7a243f1d8246809b3 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee +++ b/.liquibase/_____SYSTEMALIAS/basic/_demoData/generatedData/ASYS_BINARIES/BINDATA/blobFiles/72f0f500-e7b7-4b0d-90e3-240d9edc88ee @@ -1,24 +1,29 @@ -FCC: imap://daniel.tran%40mailbox.org@imap.mailbox.org/Sent X-Identity-Key: id1 X-Account-Key: account1 -To: test@test.de -From: Daniel Tran <daniel.tran@mailbox.org> Subject: Angebotsanfrage -Message-ID: <7a91719a-d935-2527-39b9-af1bd6f2279d@mailbox.org> -Date: Mon, 23 Mar 2020 15:32:05 +0100 +From: Johannes Goderbauer <j.goderbauer@adito.de> +Message-ID: <c23553b0-50b9-baf7-00e4-ff7e1170e6cd@adito.de> +Date: Tue, 26 May 2020 10:47:18 +0200 X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0; attachmentreminder=0; deliveryformat=4 -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 - Thunderbird/68.4.1 +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 + Thunderbird/68.2.2 MIME-Version: 1.0 -Content-Type: multipart/related; - boundary="------------00BB79588E3CE6482B5F269C" -Content-Language: de-DE +Content-Type: multipart/mixed; + boundary="----=_Part_6533_1502248680.1571231060707" -This is a multi-part message in MIME format. ---------------00BB79588E3CE6482B5F269C -Content-Type: text/html; charset=utf-8 -Content-Transfer-Encoding: 8bit +------=_Part_6533_1502248680.1571231060707 +Content-Type: multipart/alternative; + boundary="----=_Part_6534_297348878.1571231060707" + +------=_Part_6534_297348878.1571231060707 +Content-Type: multipart/related; + boundary="----=_Part_6535_946016905.1571231060707" + +------=_Part_6535_946016905.1571231060707 +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline <html> <head> @@ -29,113 +34,151 @@ Content-Transfer-Encoding: 8bit <div dir="ltr" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif"> - <p>{@letterSalutation@}</p> - besten Dank für Ihre Anfrage.<br> - Im Folgenden bieten wir Ihnen gerne die gewünschten + {@letterSalutation@}, + <p/> + besten Dank f=C3=BCr Ihre Anfrage.<br> + Im Folgenden bieten wir Ihnen gerne die gew=C3=BCnschten Produkte/Dienstleistungen an.<br> - Wir freuen uns auf Ihre Bestätigung des Angebots und stehen Ihnen - bei Rückfragen gerne zur Verfügung. - <p>Mit freundlichen Grüßen</p> - <div>{@senderName@}</div> - <div><br> - {@senderFullAddress@}</div> - <div><br> - FON: {@senderPhone@}</div> - <div>E-Mail: {@senderEmail@}</div> - <div>Web: <span lang="EN-US"><a href="https://www.adito.de" - target="_blank"><span lang="DE">www.adito.de</span></a></span> - <br> -  </div> -  - <div><span lang="EN-US"><a - href="https://www.adito.de/?utm_source=signatur_startseite_logo" - target="_blank"><span style="color:windowtext; - text-decoration:none" lang="DE"><img - src="cid:part2.55E5AA4F.D41229A8@mailbox.org" - id="Bild_x0020_1" class="ms-rte-paste-setimagesize" - style="width:2.0833in; height:.5in" width="200" - height="48" border="0"></span><span lang="DE"><br> - </span></a></span><br> - ADITO Software GmbH | Geschäftsführer: Heinz Boesl, Johannes - Boesl, Tobias Mirwald<br> - Registergericht AG Landshut HRB 2403 | Ust-IdNr. DE 128946565 <br> - <br> - <span lang="EN-US"><a - href="https://www.adito.de/knowhow/blog/?utm_source=signatur_blog" - target="_blank"><span lang="DE">CRM Blog</span></a></span> | - <span lang="EN-US"><a -href="https://www.adito.de/crm-akademie/webinar.html?utm_source=signatur_webinare" - target="_blank"><span lang="DE">Webinare</span></a></span> | - <span lang="EN-US"><a -href="https://www.adito.de/crm-anbieter/crm-messen-veranstaltungen.html?utm_source=signatur_events" - target="_blank"><span lang="DE">Events</span></a> </span></div> - <div><span style="color:white">@@SPNR</span></div> - <p><br> + Wir freuen uns auf Ihre Best=C3=A4tigung des Angebots und stehen Ihnen + bei R=C3=BCckfragen gerne zur Verf=C3=BCgung. + <br/> + <br>Mit freundlichen Gr=C3=BC=C3=9Fen=20 + <br>{@senderName@} + <br/><br/> + <p> + <b>{@senderOrgname@}</b> + <br/>{@senderFullAddress@} + <br/> + <br/>FON: {@senderPhone@} + <br/>E-Mail: {@senderEmail@} + <br/>Web: <a href=3D"https://www.meineFirma.de">www.meineFirma.de</a> + </p> + <br/><br/> + <a href=3D"https://www.adito.de/?utm_source=3Dsignatur_startseite_logo"> + <img border=3D0 width=3D206 height=3D81 style=3D'width:2.1458in;height:.843= + 7in' id=3D"Grafik_x0020_1" src=3D"cid:image001.png@01D5842B.05639490"> + </a> + <br/><br/> + <p>{@senderOrgname@}| Gesch=C3=A4ftsf=C3=BChrer: Harold Smith + <br>Amtsgericht Landshut HRB 182038 + <br> + <br> + + </span> + + <a href=3D"https://www.adito.de/knowhow/blog/?utm_source=3Dsignatur_blog" t= + arget=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>CRM Blog + + </span> + + </a> + + <span lang=3DDE> |=20 + + </span> + + <a href=3D"https://www.adito.de/crm-akademie/webinar.html?utm_source=3Dsign= + atur_webinare" target=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>Webinare + + </span> + + </a> + + <span lang=3DDE> |=20</span> + + <a href=3D"https://www.adito.de/crm-anbieter/crm-messen-veranstaltungen.htm= + l?utm_source=3Dsignatur_events" target=3D"_blank"> + + <span lang=3DDE style=3D'color:blue'>Events + + </span> + + </a>=20 + + </p> - </div> </body> -</html> ---------------00BB79588E3CE6482B5F269C -Content-Type: image/png; - name="elploafdhcnceakm.png" +</html> +------=_Part_6535_946016905.1571231060707 +Content-Type: image/png; name=image001.png Content-Transfer-Encoding: base64 -Content-ID: <part2.55E5AA4F.D41229A8@mailbox.org> -Content-Disposition: inline; - filename="elploafdhcnceakm.png" - -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 -AElFTkSuQmCC ---------------00BB79588E3CE6482B5F269C-- +Content-Disposition: inline; filename=image001.png +Content-ID: <image001.png@01D5842B.05639490> + +iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ +bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp +bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 +eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0 +MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo +dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw +dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv +IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS +ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD +cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNl +SUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3Vt +ZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06 +RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYw +NEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0 +QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w +bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJ +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 +DEaG0p8AAAAASUVORK5CYII= +------=_Part_6535_946016905.1571231060707-- + +------=_Part_6534_297348878.1571231060707 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +herzlichen Dank f=C3=BCr Ihre Anfrage und Ihr Interesse an unserem Produkt.= + Gerne sende ich Ihnen schon einmal die wichtigsten Informationen zu: + +------=_Part_6534_297348878.1571231060707-- + +------=_Part_6533_1502248680.1571231060707-- diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index b5ebf375b211d4819d7a8865ffa277ec4f8e5e43..0d0a112f0c5bf19ba9ee893659b494b388606b3b 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -87,6 +87,12 @@ <fieldName>Activities</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>262fe53d-7358-40ff-8641-e08add14528a</name> + <entityName>Object_entity</entityName> + <fieldName>Activities</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityField> diff --git a/entity/Address_entity/afterOperatingState.js b/entity/Address_entity/afterOperatingState.js index 02ce06265c7a4a2186f6b3da49e9a14bb646bd84..23f607ff7d13f5153ef6e252d1f8e6b185218040 100644 --- a/entity/Address_entity/afterOperatingState.js +++ b/entity/Address_entity/afterOperatingState.js @@ -1,3 +1,6 @@ +import("system.vars"); import("system.neon"); -neon.setFieldValue("$field.AddressSearch", ""); \ No newline at end of file +//in some cases, the field does not exist yet/not anymore when the afterOperatingState process is called +if (vars.exists("$field.AddressSearch")) + neon.setFieldValue("$field.AddressSearch", "");//why is this needed? \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/begin/valueProcess.js b/entity/Appointment_entity/entityfields/begin/valueProcess.js index 2c01e234cb59893a1d1cd42da3d6828137dcba9c..494b5d528f0bac0d2135955a873332e8a462641b 100644 --- a/entity/Appointment_entity/entityfields/begin/valueProcess.js +++ b/entity/Appointment_entity/entityfields/begin/valueProcess.js @@ -8,7 +8,7 @@ import("system.result"); */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); if(vars.get("$this.value")) result.string(vars.get("$this.value")); @@ -21,6 +21,6 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$para */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); result.string(event[calendars.DTSTART]); } \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/end/valueProcess.js b/entity/Appointment_entity/entityfields/end/valueProcess.js index c7b6ff0bc3c969be63c3338eb60768a41c9d7d20..23262e1a868e63515d37b22d4124b1d79728cc74 100644 --- a/entity/Appointment_entity/entityfields/end/valueProcess.js +++ b/entity/Appointment_entity/entityfields/end/valueProcess.js @@ -8,7 +8,7 @@ import("system.result"); */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); if(vars.get("$this.value")) result.string(vars.get("$this.value")); @@ -21,6 +21,6 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$para */ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) { - var event = JSON.parse(vars.getString("$param.Entry_param")); + let event = JSON.parse(vars.getString("$param.Entry_param")); result.string(event[calendars.DTEND]); } \ No newline at end of file diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 4ffbcecb9997e552d82e0beec3c133749ac077c3..81ed998586bd298aa9203da5bcbb1f50c2da615f 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -323,6 +323,8 @@ <isObjectAction v="false" /> <isSelectionAction v="true" /> <iconId>VAADIN:FILE_TREE_SMALL</iconId> + <state>AUTO</state> + <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js</stateProcess> </entityActionField> </children> </entityActionGroup> diff --git a/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8d1104b5aaa31e686a00a58b47dba81fe63ead08 --- /dev/null +++ b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js @@ -0,0 +1,9 @@ +import("Attribute_lib"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +if(vars.get("$sys.selection").length == 1 && vars.get("$field.ATTRIBUTE_TYPE") == $AttributeTypes.GROUP.toString()) + result.string(neon.COMPONENTSTATE_EDITABLE) +else + result.string(neon.COMPONENTSTATE_DISABLED) \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod index 54d9b5cbd8ac10c1cbcc075fe73b66e90cf06d55..3e4bbba2abdc84a8a7f33554ef8178579318db16 100644 --- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod +++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod @@ -410,6 +410,10 @@ <name>REPLACEMENTNAME.value</name> <recordfield>DOCUMENTTEMPLATE.REPLACEMENTNAME</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>KIND.displayValue</name> + <expression>%aditoprj%/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js b/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..c8f3819fed4e85372be055d5ad7cb4dac7723cc6 --- /dev/null +++ b/entity/DocumentTemplate_entity/recordcontainers/db/recordfieldmappings/kind.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.documentTemplateType(), "DOCUMENTTEMPLATE.KIND"); +result.string(sql); diff --git a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod index e2ce64f96ec552b3e1e6357c940ecf6436466203..b7116402fb566724a159f7c003fde69a19901b96 100644 --- a/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod +++ b/entity/DuplicateScanner_entity/DuplicateScanner_entity.aod @@ -4,7 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/DuplicateScanner_entity/documentation.adoc</documentation> <title>Duplicate Configuration</title> - <iconId>VAADIN:DATABASE</iconId> + <iconId>VAADIN:COG_O</iconId> <titlePlural>Configurations</titlePlural> <recordContainer>DBRecordContainer</recordContainer> <entityFields> diff --git a/entity/Duplicates_entity/Duplicates_entity.aod b/entity/Duplicates_entity/Duplicates_entity.aod index 35d21a2faa68a5a0649dd4054e16d929988de77a..8b4c751722f526a33993a40e759fceb7a461a008 100644 --- a/entity/Duplicates_entity/Duplicates_entity.aod +++ b/entity/Duplicates_entity/Duplicates_entity.aod @@ -7,6 +7,7 @@ <siblings> <element>DuplicatesUnrelated_entity</element> </siblings> + <iconId>VAADIN:DATABASE</iconId> <recordContainer>recordContainer</recordContainer> <entityFields> <entityProvider> diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index ea690ba4a943c3bc9b227d1ea0ca175678e403f2..2d1e2ff409dd15ec5a3c863503159b69ae385721 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -255,6 +255,22 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>Activities</name> + <dependency> + <name>dependency</name> + <entityName>Activity_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>Tasks</name> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js index 959e539e3fa4fb174e0ed0f1e33c69860de603c2..67b5e68f5a12833bca63247bd9903b8d63e57f87 100644 --- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js @@ -5,7 +5,7 @@ import("Context_lib"); // NOTE THAT THIS ENTITY USES THE TARGET_CONSUMER_PROCESSES OF THE PROVIDERS -// --> THIS PROCESS WON'T NOT BE EXECUTED IN SOME CASES. +// --> THIS PROCESS WON'T BE EXECUTED IN SOME CASES. if (vars.get("$param.ObjectType_param")) { diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 4115bd0f2d85eaa7418b5be4e79e12755268411e..d8bfbd275ac29413e596bd0b43dc2348f0b01f1a 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -1153,17 +1153,6 @@ <entityName>Person_entity</entityName> <fieldName>SelfDuplicatesProvider</fieldName> </dependency> - <children> - <entityParameter> - <name>OnlyShowContactIds_param</name> - </entityParameter> - <entityParameter> - <name>DuplicateCurrentContactId_param</name> - </entityParameter> - <entityParameter> - <name>DuplicateActionsControl_param</name> - </entityParameter> - </children> </entityConsumer> <entityProvider> <name>SelfDuplicatesProvider</name> @@ -1217,6 +1206,7 @@ <title>New Weekplanentry</title> <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess> <iconId>VAADIN:CAR</iconId> + <stateProcess>%aditoprj%/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js</stateProcess> </entityActionField> <entityProvider> <name>IdFilteredActiveContacts</name> diff --git a/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js b/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js index d9f980358fb5ae885dcbffee0116b9e187a23ff2..648ecdcc39a88b74966045e32a9fbb3d7fdb707c 100644 --- a/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js +++ b/entity/Person_entity/entityfields/duplicateactions/children/integratecurrentintoselectedaction/onActionProcess.js @@ -3,15 +3,15 @@ import("system.vars"); import("system.neon"); import("DuplicateScanner_lib"); -let sourceContactId = vars.get("$param.DuplicateCurrentContactId_param"); -let targetContactId = vars.get("$sys.selection"); +var sourceContactId = vars.get("$param.DuplicateCurrentContactId_param"); +var targetContactId = vars.get("$sys.selection")[0]; //todo the actual merge ought to happen in a separate view where the contact infos can be merged manually by the user. -let mergeSuccess = DuplicateScannerUtils.MergePerson(sourceContactId, targetContactId); +var mergeSuccess = DuplicateScannerUtils.MergePerson(sourceContactId, targetContactId); if(mergeSuccess) { - let currentContactId = EmployeeUtils.getCurrentContactId(); + var currentContactId = EmployeeUtils.getCurrentContactId(); if(currentContactId == null) currentContactId = ""; DuplicateScannerUtils.CreateMergeSuccessActivity(sourceContactId, targetContactId, currentContactId, "Person"); diff --git a/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js b/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aefbc6e8f76f99c4281890f3461553c49562d5b9 --- /dev/null +++ b/entity/Person_entity/entityfields/newvisitplanentry/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("KeywordRegistry_basic"); + +if (vars.get("$field.STATUS") == $KeywordRegistry.contactStatus$inactive()) + result.string(neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/Salutation_entity/Salutation_entity.aod b/entity/Salutation_entity/Salutation_entity.aod index 9c5ee36bbd9aed083cd330066f25118141a031c0..f7f79d1f0136d7b330265d712fd41d100d13e2f6 100644 --- a/entity/Salutation_entity/Salutation_entity.aod +++ b/entity/Salutation_entity/Salutation_entity.aod @@ -51,6 +51,7 @@ <entityField> <name>SORT</name> <title>Sorting</title> + <valueProcess>%aditoprj%/entity/Salutation_entity/entityfields/sort/valueProcess.js</valueProcess> </entityField> <entityField> <name>TITLE</name> diff --git a/entity/Salutation_entity/entityfields/sex/valueProcess.js b/entity/Salutation_entity/entityfields/sex/valueProcess.js index ce31dcbede0d54a6db9b46ee1b4e0dbcb3b30752..fdf5d8633b6a364a16d13f7f67a8934ac3fefe02 100644 --- a/entity/Salutation_entity/entityfields/sex/valueProcess.js +++ b/entity/Salutation_entity/entityfields/sex/valueProcess.js @@ -3,7 +3,7 @@ import("system.vars"); import("KeywordRegistry_basic"); import("system.result"); -/*if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) { result.string($KeywordRegistry.personGender$other()); -}*/ \ No newline at end of file +} \ No newline at end of file diff --git a/entity/Salutation_entity/entityfields/sort/valueProcess.js b/entity/Salutation_entity/entityfields/sort/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..867b597fbcf1a681c2aa1b2e574b957af0add1b2 --- /dev/null +++ b/entity/Salutation_entity/entityfields/sort/valueProcess.js @@ -0,0 +1,12 @@ +import("system.neon"); +import("Sql_lib"); +import("system.vars"); +import("system.result"); + +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null) +{ + var res = newSelect("max(SALUTATION.SORT)+1") + .from("SALUTATION") + .cell() + result.string(res); +} \ No newline at end of file diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 28aaf1ff3a2235dee2c18623f6186cedb2503760..0be99b99ff62a5d371fa7c3147fcf23fa13fc07c 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -16,6 +16,14 @@ <entityProvider> <name>#PROVIDER</name> <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>7a20f989-4c0a-40aa-9092-6ea9e99e851e</name> + <entityName>Object_entity</entityName> + <fieldName>Tasks</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> </entityProvider> <entityField> <name>SUBJECT</name> diff --git a/entity/Task_entity/contentTitleProcess.js b/entity/Task_entity/contentTitleProcess.js index 42200983cd942d93065d3728601f40eb2cc2d4ad..f52078612d802465f741fa89ea2baae0165c1e6b 100644 --- a/entity/Task_entity/contentTitleProcess.js +++ b/entity/Task_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.TYPE.displayValue")) \ No newline at end of file +result.string(vars.get("$field.SUBJECT")) \ No newline at end of file diff --git a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod index 22dc96a8eb8d17d0d5e17b8e8c9ad8f9e5d736f8..05b77e9fea96cde4f1b68245d886d207ff6d41df 100644 --- a/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod +++ b/entity/WorkflowSignal_entity/WorkflowSignal_entity.aod @@ -154,9 +154,6 @@ <name>PROCESSDEFINITION_KEY.value</name> <recordfield>WORKFLOWSIGNAL.PROCESSDEFINITION_KEY</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ICON.value</name> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>VARIABLES.value</name> <recordfield>WORKFLOWSIGNAL.VARIABLES</recordfield> diff --git a/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js b/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js index 1bae28698e6ca6fea69f1f2327b507defec4368e..f923d3d4080f7f52d60664e2d6fefe329ff35cf2 100644 --- a/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js +++ b/entity/WorkflowSignal_entity/recordcontainers/db/conditionProcess.js @@ -1,6 +1,16 @@ +import("system.vars"); +import("system.workflow"); import("Sql_lib"); import("system.result"); -var cond = newWhereIfSet("WORKFLOWSIGNAL.PROCESSDEFINITION_KEY", "$param.ProcessDefinitionKey_param"); +//include all signals with the same names as the ones in the current workflow definition to avoid conflicts +var signals = JSON.parse(workflow.getSignalDefinitions(vars.get("$param.ProcessDefinitionId_param"))); +var signalNames = signals.map(function (signal) +{ + return signal.name; +}); + +var cond = newWhereIfSet("WORKFLOWSIGNAL.PROCESSDEFINITION_KEY", "$param.ProcessDefinitionKey_param") + .orIfSet("WORKFLOWSIGNAL.SIGNAL_NAME", signalNames, SqlBuilder.IN()); result.string(cond.toString()); \ No newline at end of file diff --git a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod index d0a308b0c5f3f4c97b54e14d9797bb4a35b055b5..52186117b0ede7cb65a57fce5de0b5b2056a2c14 100644 --- a/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod +++ b/entity/WorkflowStartConfig_entity/WorkflowStartConfig_entity.aod @@ -4,6 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/WorkflowStartConfig_entity/documentation.adoc</documentation> <title>Usage</title> + <imageProcess>%aditoprj%/entity/WorkflowStartConfig_entity/imageProcess.js</imageProcess> <titlePlural>Usage</titlePlural> <recordContainer>db</recordContainer> <entityFields> @@ -18,6 +19,7 @@ <title>Module</title> <consumer>Contexts</consumer> <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>TRIGGER_EVENT</name> diff --git a/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js b/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..af662ad2474d3da0e5b3deab7764de0ad29d39bc --- /dev/null +++ b/entity/WorkflowStartConfig_entity/entityfields/object_type/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Context_lib"); +import("system.result"); +import("system.vars"); + +var context = vars.get("$field.OBJECT_TYPE"); +result.string(context ? ContextUtils.getTitle(context, true) : ""); \ No newline at end of file diff --git a/entity/WorkflowStartConfig_entity/imageProcess.js b/entity/WorkflowStartConfig_entity/imageProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..34147b89bd271ec01be2bb3fa1c6eb055186963f --- /dev/null +++ b/entity/WorkflowStartConfig_entity/imageProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("system.project"); + +var contextModel = project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE")); +result.string(contextModel ? contextModel[5] : ""); \ No newline at end of file diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index ee00b16f3d6133e3ef370e383e87e3abef6b16fb..cfa2e9c9be05a7b4c7e20b7047026e1a4116ece4 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -6776,6 +6776,12 @@ <entry> <key>Version %0</key> </entry> + <entry> + <key>of other on this employee's calendar</key> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + </entry> <entry> <key>Offerrequest</key> </entry> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 7dd5d2d36f49bffcd5aea44659df52f988a76f78..297c496a68433d8c9e84ce33f27866a9b03c0b3f 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -8684,6 +8684,14 @@ Bitte Datumseingabe prüfen</value> <entry> <key>Version %0</key> </entry> + <entry> + <key>of other on this employee's calendar</key> + <value>von den Anderen auf den Kalender dieses Mitarbeiters</value> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + <value>von diesem Mitarbeiter auf den Kalender von der Anderen</value> + </entry> <entry> <key>Offerrequest</key> <value>Angebotsanfrage</value> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 06a6494ca0a53643c3a58a6b8e3abbfd68f8dd2c..6b3c84ea6235206e04b715f9df49d1d37fa61386 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -6841,6 +6841,12 @@ <entry> <key>Version %0</key> </entry> + <entry> + <key>of other on this employee's calendar</key> + </entry> + <entry> + <key>of this employee on the calendar of others</key> + </entry> <entry> <key>Offerrequest</key> </entry> diff --git a/neonContext/Salutation/Salutation.aod b/neonContext/Salutation/Salutation.aod index 105e44671fae3f67a38045dfbbe0ad1968ef7f19..e483914f5a8af36115140b9b36a1ed72169dff3e 100644 --- a/neonContext/Salutation/Salutation.aod +++ b/neonContext/Salutation/Salutation.aod @@ -4,11 +4,16 @@ <title></title> <majorModelMode>DISTRIBUTED</majorModelMode> <filterView>SalutationFilter_view</filterView> + <editView>SalutationEdit_view</editView> <entity>Salutation_entity</entity> <references> <neonViewReference> <name>f4dff131-e058-4959-8141-f60910394a02</name> <view>SalutationFilter_view</view> </neonViewReference> + <neonViewReference> + <name>f06f67b0-c7e3-4855-8342-4bc0f3ed7343</name> + <view>SalutationEdit_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod index 3f4b118739e963e7511ade42d7eb2d03de5fe722..ab4ce87a232c2c483b2c81404cf0d24397da68d4 100644 --- a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod +++ b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod @@ -16,6 +16,7 @@ <neonGenericMultipleTableColumn> <name>0272107d-c34c-40e7-974e-5a63d2239fdb</name> <entityField>ACTION</entityField> + <fullWidth v="true" /> </neonGenericMultipleTableColumn> </columns> </genericMultipleViewTemplate> diff --git a/neonView/PermissionActionList_view/PermissionActionList_view.aod b/neonView/PermissionActionList_view/PermissionActionList_view.aod index b07ef3eb50166e0787b94f915a9f72d3c02b4aba..5019e2d1b3739a17d7c80a9b64da998da4e7d437 100644 --- a/neonView/PermissionActionList_view/PermissionActionList_view.aod +++ b/neonView/PermissionActionList_view/PermissionActionList_view.aod @@ -2,6 +2,11 @@ <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> <name>PermissionActionList_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> <children> <titledListViewTemplate> <name>TitledList</name> diff --git a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod index eae0d77964ec99af2f38e01b17c61d833af6c1a8..32b319f4445dd4838b972b11db7c6193c7833b35 100644 --- a/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod +++ b/neonView/PermissionCalendarFilterDrawer_view/PermissionCalendarFilterDrawer_view.aod @@ -5,7 +5,7 @@ <layout> <drawerLayout> <name>layout</name> - <layoutCaption>My Calendar</layoutCaption> + <layoutCaption>of other on this employee's calendar</layoutCaption> <fixedDrawer v="true" /> </drawerLayout> </layout> diff --git a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod index e673da0fa5e12f5996cba4b5386645166e883ab2..df480a219c345fe0847a2ebdf5c5f62479108e60 100644 --- a/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod +++ b/neonView/PermissionCalendarFilterReverse_view/PermissionCalendarFilterReverse_view.aod @@ -7,7 +7,7 @@ <layout> <drawerLayout> <name>layout</name> - <layoutCaption>Other Calendars</layoutCaption> + <layoutCaption>of this employee on the calendar of others</layoutCaption> </drawerLayout> </layout> <children> diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod index 74abb3a7a145cecbc7f641a7a5d6ab0db63c5dff..5a2312e1f735abdb644f2145dbaa24f5edb0b514 100644 --- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod +++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod @@ -19,8 +19,8 @@ <entityField>#ENTITY</entityField> <columns> <neonTableColumn> - <name>d6207ade-29e7-4af0-ba5f-e9ddd799de7b</name> - <entityField>#IMAGE</entityField> + <name>cb441e57-dba4-49d6-a8f4-cea5db3187f2</name> + <entityField>PICTURE</entityField> </neonTableColumn> <neonTableColumn> <name>1053d3a7-c5ee-4260-86f6-54e820f53e9f</name> diff --git a/neonView/SalutationEdit_view/SalutationEdit_view.aod b/neonView/SalutationEdit_view/SalutationEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..ebbb601e04d5e06c43c046a6eddce6deb667c789 --- /dev/null +++ b/neonView/SalutationEdit_view/SalutationEdit_view.aod @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>SalutationEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericViewTemplate> + <name>generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5c13e664-eb51-470f-84f0-bb25f72b0881</name> + <entityField>ISOLANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>642ebe6f-1225-4ffd-9755-778997c8a179</name> + <entityField>SALUTATION_TEXT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>22befd63-0f23-4527-aa63-22a2bb4aec73</name> + <entityField>TITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d1db49fd-5599-4994-9a01-a93694a020c4</name> + <entityField>HEADLINE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1e4d42d1-e075-4599-bd8e-0798ea77f0d2</name> + <entityField>LETTERSALUTATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>14541607-aa61-4a11-bca6-e5a5bbde743b</name> + <entityField>SEX</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6ff09b16-dfdb-41de-88fe-a9a9fface3b7</name> + <entityField>SORT</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/SalutationFilter_view/SalutationFilter_view.aod b/neonView/SalutationFilter_view/SalutationFilter_view.aod index b7e8746bfb30a3a9eb74f276748ea7307da98faf..9c60dce1f71f932d1fc696e1b470e6b01f70caac 100644 --- a/neonView/SalutationFilter_view/SalutationFilter_view.aod +++ b/neonView/SalutationFilter_view/SalutationFilter_view.aod @@ -11,38 +11,37 @@ <children> <tableViewTemplate> <name>Salutations</name> - <inlineEdit v="true" /> <titleField>SALUTATION_TEXT</titleField> <subtitleField>TITLE</subtitleField> <entityField>#ENTITY</entityField> <autoNewRow v="true" /> <columns> <neonTableColumn> - <name>32e3fa28-1749-45a2-ae77-27ddfb221dba</name> + <name>ab3b9892-d5fa-4926-baf1-7f070ea7f68a</name> <entityField>ISOLANGUAGE</entityField> </neonTableColumn> <neonTableColumn> - <name>9cccf3a4-bbe7-453a-955c-246691c27dba</name> + <name>5a446b0a-f7cd-4c0d-9ce6-137958f28f4b</name> <entityField>SALUTATION_TEXT</entityField> </neonTableColumn> <neonTableColumn> - <name>3d4b8959-4558-4398-876a-09b46706827d</name> + <name>7789c052-d472-4870-b7a8-5c02b20b104b</name> <entityField>TITLE</entityField> </neonTableColumn> <neonTableColumn> - <name>f7e7e4a7-5719-457c-ac65-a2cdd993d9fb</name> + <name>75564574-3f21-4589-93ad-e30a69b44f4a</name> <entityField>HEADLINE</entityField> </neonTableColumn> <neonTableColumn> - <name>af9f6db4-f53a-48d8-aaa4-1dc8a6fd211e</name> + <name>621460f6-5e1b-4baa-b874-18097b6ca1bf</name> <entityField>LETTERSALUTATION</entityField> </neonTableColumn> <neonTableColumn> - <name>071b540d-3d67-4b0b-b382-7c8b3a43e755</name> + <name>3165c331-0b77-46ec-8f55-44cdb86edb6e</name> <entityField>SEX</entityField> </neonTableColumn> <neonTableColumn> - <name>b642b2cc-3439-4813-bda7-bb4358247f68</name> + <name>b4061b67-bd43-40de-8538-7fc1ca54afef</name> <entityField>SORT</entityField> </neonTableColumn> </columns> diff --git a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod index 4a897cc5cc42bad2de0fbee6f89d8ca7fedf8289..15874fe38d83022e49d356df3f2474b6061bf7a7 100644 --- a/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod +++ b/neonView/WorkflowSignalFilter_view/WorkflowSignalFilter_view.aod @@ -4,9 +4,9 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <filterable v="true" /> <layout> - <noneLayout> + <boxLayout> <name>layout</name> - </noneLayout> + </boxLayout> </layout> <children> <tableViewTemplate> diff --git a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod index 4b53e42cfc3e3ad67b10f25653df09bf611a0fe7..cdac1faccf7f16acf27044fd57f434dea9502e3c 100644 --- a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod +++ b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod @@ -15,12 +15,12 @@ <autoNewRow v="true" /> <columns> <neonTableColumn> - <name>0784e90b-133d-4d2b-b499-ac731a690f64</name> - <entityField>OBJECT_TYPE</entityField> + <name>4935777f-8760-4759-a70a-0ad64c506418</name> + <entityField>#IMAGE</entityField> </neonTableColumn> <neonTableColumn> - <name>c8b4032c-ce59-45fe-ab03-e393f8cdc050</name> - <entityField>TRIGGER_EVENT</entityField> + <name>0784e90b-133d-4d2b-b499-ac731a690f64</name> + <entityField>OBJECT_TYPE</entityField> </neonTableColumn> </columns> </tableViewTemplate> diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index b80ce6921b2c5e758c16154c611bc4be90962f84..83ad817a1b9487b240e512d26d127e7f2b6a74e8 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -145,6 +145,10 @@ ContextUtils.getContextConsumer = function(pContextId) return "PrivatePersons"; case ContextUtils.getContextName("Leadimport"): return "Leadimport"; + case ContextUtils.getContextName("Task"): + return "Tasks"; + case ContextUtils.getContextName("Activity"): + return "Activities"; default: throw new Error(translate.withArguments("No consumer found for context '%0'", [pContextId])); } diff --git a/process/DuplicateScanner_lib/process.js b/process/DuplicateScanner_lib/process.js index a8dc77293f8549353fe7cdc6f922ebed64b3cd45..3576d4dcf361c9a5a42faf46d65d33f7d2157a89 100644 --- a/process/DuplicateScanner_lib/process.js +++ b/process/DuplicateScanner_lib/process.js @@ -642,20 +642,29 @@ DuplicateScannerUtils.MergePerson = function(pSourceContactId, pTargetContactId) var deleteStatements = []; var sourcePersonId = newSelect("PERSON_ID") - .from("CONTACT") - .where("CONTACT.CONTACTID", pSourceContactId) - .cell(); + .from("CONTACT") + .where("CONTACT.CONTACTID", pSourceContactId) + .cell(); + var targetPersonId = newSelect("PERSON_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", pTargetContactId) + .cell(); + var tableInfosCurrentAlias = _DuplicateScannerUtils._getMergeUpdateTableInfosCurrentAlias(); var tableInfosSystemAlias = _DuplicateScannerUtils._getMergeUpdateTableInfosSystemAlias(); - updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateResetStandardCommunications(pSourceContactId)); + updateStatementsCurrentAlias.push(_DuplicateScannerUtils._buildUpdateResetStandardCommunications(pSourceContactId)); updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateContactIdStatements(tableInfosCurrentAlias, pSourceContactId, pTargetContactId)); updateStatementsCurrentAlias = updateStatementsCurrentAlias.concat(_DuplicateScannerUtils._buildUpdateAttachParticipantsToNewContactQuery("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", pSourceContactId, pTargetContactId)); updateStatementsSystemAlias = updateStatementsSystemAlias.concat(_DuplicateScannerUtils._buildUpdateContactIdStatements(tableInfosSystemAlias, pSourceContactId, pTargetContactId, SqlUtils.getSystemAlias())); deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeleteRemoveObsoleteParticipantsRecordsQuery("CAMPAIGNPARTICIPANT", "CONTACT_ID", "CAMPAIGN_ID", pSourceContactId, pTargetContactId)); - deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeletePersonAndContactQuery(sourcePersonId, pSourceContactId)); + + if (sourcePersonId != targetPersonId) + deleteStatements.push(["PERSON", newWhere("PERSON.PERSONID", sourcePersonId).build()]); + + deleteStatements.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); deleteStatements = deleteStatements.concat(_DuplicateScannerUtils._buildDeleteCachedUnrelatedDuplicateQuery(pSourceContactId)); var affectedRowsCurrentAlias = db.updates(updateStatementsCurrentAlias); @@ -664,7 +673,7 @@ DuplicateScannerUtils.MergePerson = function(pSourceContactId, pTargetContactId) DuplicateScannerUtils.DeleteCachedDuplicate(pSourceContactId); - return (affectedRowsCurrentAlias > 0 && deletedRows >= 2); + return (affectedRowsCurrentAlias > 0 && deletedRows > 0); } DuplicateScannerUtils.CreateMergeSuccessActivity = function(pSourceContactId, pTargetContactId, pCurrentContactId, pContext) @@ -821,14 +830,6 @@ DuplicateScannerUtils.GetUnrelatedRelationsForDuplicate = function(pDuplicateId) function _DuplicateScannerUtils() {} -var INDEX_FILTER_CONDITION = 0; -var INDEX_COUNT_CHARS_TO_USE = 1; -var INDEX_MAX_RESULTS_THRESHOLD = 2; - -var INDEX_TABLE_NAME = 0; -var INDEX_COLUMN_NAME = 1; -var INDEX_CONDITION = 2; - _DuplicateScannerUtils._loadEntityFieldsFromFieldConfigs = function(pEntityFieldConfigs) { let fieldNames = []; @@ -843,7 +844,7 @@ _DuplicateScannerUtils._loadEntityFieldsFromFieldConfigs = function(pEntityField _DuplicateScannerUtils._buildUpdateResetStandardCommunications = function(pSourceContactId) { - return [["COMMUNICATION", ["ISSTANDARD"], null, ["0"], newWhere("COMMUNICATION.CONTACT_ID", pSourceContactId).build()]]; + return newWhere("COMMUNICATION.CONTACT_ID", pSourceContactId).buildUpdateStatement({"ISSTANDARD" : "0"}); } /* @@ -938,7 +939,7 @@ _DuplicateScannerUtils._isUseExternalWebservice = function(pFilterName, pTargetE .where("DUPLICATESCANNER.FILTER_NAME", pFilterName) .and("DUPLICATESCANNER.ENTITY_TO_SCAN_NAME", pTargetEntity) .cell(); - return (isUseWebservice == 0) ? false : true; + return isUseWebservice != 0; } /* @@ -1081,39 +1082,23 @@ _DuplicateScannerUtils._buildDeleteRemoveObsoleteParticipantsRecordsQuery = func let deleteCondition = newWhere([pTableName, pAssignableIdColumn], selectAssignableIdsOfTargetContactQuery, SqlBuilder.IN()) .and([pTableName, pAssignableIdColumn], pSourceContactId) - let recordsToDelete = []; - recordsToDelete.push([pTableName, deleteCondition.build()]); - return recordsToDelete; -} - - -/* - * Creates Queries to delete from the PERSON and CONTACT table. - * - * @returns {String[]} Queries to delete - */ -_DuplicateScannerUtils._buildDeletePersonAndContactQuery = function(pSourcePersonId, pSourceContactId) -{ - let recordsToDelete = [] - recordsToDelete.push(["PERSON", newWhere("PERSON.PERSONID", pSourcePersonId).build()]); - recordsToDelete.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); - return recordsToDelete; + return [[pTableName, deleteCondition.build()]]; } _DuplicateScannerUtils._buildDeleteOrganisationAndContactQuery = function(pSourceOrganisationId, pSourceContactId) { - let recordsToDelete = [] - recordsToDelete.push(["ORGANISATION", newWhere("ORGANISATION.ORGANISATIONID", pSourceOrganisationId).build()]); - recordsToDelete.push(["CONTACT", newWhere("CONTACT.CONTACTID", pSourceContactId).build()]); - return recordsToDelete; + return [ + newWhere("ORGANISATION.ORGANISATIONID", pSourceOrganisationId).buildDeleteStatement(), + newWhere("CONTACT.CONTACTID", pSourceContactId).buildDeleteStatement() + ]; } _DuplicateScannerUtils._buildDeleteCachedUnrelatedDuplicateQuery = function(pSourceContactId) { - let recordsToDelete = [] - recordsToDelete.push(["UNRELATEDDUPLICATES", newWhere("UNRELATEDDUPLICATES.SOURCEDUPLICATEID", pSourceContactId).build()]); - recordsToDelete.push(["UNRELATEDDUPLICATES", newWhere("UNRELATEDDUPLICATES.UNRELATEDDUPLICATEID", pSourceContactId).build()]); - return recordsToDelete; + return [ + newWhere("UNRELATEDDUPLICATES.SOURCEDUPLICATEID", pSourceContactId).buildDeleteStatement(), + newWhere("UNRELATEDDUPLICATES.UNRELATEDDUPLICATEID", pSourceContactId).buildDeleteStatement() + ]; } /* @@ -1129,29 +1114,14 @@ _DuplicateScannerUtils._getIgnoreSourceRecordPattern = function(pRecordIdValueTo _DuplicateScannerUtils._buildUpdateContactIdStatements = function(pTableInfos, pSourceContactId, pTargetContactId, pAlias) { - let statements = []; - - for (let i = 0; i < pTableInfos.length; i++) + return pTableInfos.map(function ([tableName, columnName, additionalCondition]) { - let tableInfo = pTableInfos[i]; - let updateStatement = _DuplicateScannerUtils._buildStatement(tableInfo, pSourceContactId, pTargetContactId, pAlias); - statements.push(updateStatement); - } - return statements; -} - -_DuplicateScannerUtils._buildStatement = function(pTableinfos, pSourceContactId, pTargetContactId, pAlias) -{ - let tableName = pTableinfos[INDEX_TABLE_NAME]; - let columnName = pTableinfos[INDEX_COLUMN_NAME]; - let additionalCondition = pTableinfos[INDEX_CONDITION]; - - let condition = newWhere([tableName, columnName], pSourceContactId, undefined, undefined, pAlias); - - if(additionalCondition != "") - condition.and(additionalCondition); - - return [tableName, [columnName], null, [pTargetContactId], condition.build()]; + var updateValues = {}; + updateValues[columnName] = pTargetContactId; + return newWhere([tableName, columnName], pSourceContactId, undefined, undefined, pAlias) + .andIfSet(additionalCondition) + .buildUpdateStatement(updateValues, tableName) + }); } /* @@ -1161,41 +1131,40 @@ _DuplicateScannerUtils._buildStatement = function(pTableinfos, pSourceContactId, */ _DuplicateScannerUtils._getMergeUpdateTableInfosCurrentAlias = function() { - var tableInfos = new Array(); - tableInfos.push(["AB_APPOINTMENTLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["AB_CTILOG", "CONTACT_ID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "AB_OBJECTRELATIONID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "OBJECT1_ROWID", ""]); - tableInfos.push(["AB_OBJECTRELATION", "OBJECT2_ROWID", ""]); - tableInfos.push(["AB_LOGHISTORY", "TABLENAMEID", ""]); - tableInfos.push(["ADDRESS", "CONTACT_ID", ""]); - tableInfos.push(["BULKMAILRECIPIENT", "CONTACT_ID", ""]); - tableInfos.push(["BULKMAIL", "TESTING_CONTACT_ID", ""]); - tableInfos.push(["CAMPAIGN", "EMPLOYEE_CONTACT_ID", ""]); - tableInfos.push(["CAMPAIGNSTEP", "EMPLOYEE_CONTACT_ID", ""]); - tableInfos.push(["COMMRESTRICTION", "CONTACT_ID", ""]); - tableInfos.push(["COMMRESTRICTION", "EMPLOYEE_INVOLVED", ""]); - tableInfos.push(["COMMUNICATION", "CONTACT_ID", ""]); - tableInfos.push(["COMPETITION", "CONTACT_ID", ""]); - tableInfos.push(["CONTRACT", "CONTACT_ID", ""]); - tableInfos.push(["LETTERRECIPIENT", "CONTACT_ID", ""]); - tableInfos.push(["OBJECTMEMBER", "CONTACT_ID", ""]); - tableInfos.push(["OFFER", "CONTACT_ID", ""]); - tableInfos.push(["PRODUCT", "CONTACT_ID", ""]); - tableInfos.push(["PRODUCTPRICE", "CONTACT_ID", ""]); - tableInfos.push(["SALESORDER", "CONTACT_ID", ""]); - tableInfos.push(["SALESPROJECT", "CONTACT_ID", ""]); - tableInfos.push(["TASK", "REQUESTOR_CONTACT_ID", ""]); - tableInfos.push(["TASK", "EDITOR_CONTACT_ID", ""]); - tableInfos.push(["TASKLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["ACTIVITY", "RESPONSIBLE", ""]); - tableInfos.push(["DSGVO", "CONTACT_ID", ""]); - tableInfos.push(["DSGVOINFO", "CONTACT_ID", ""]); - tableInfos.push(["TIMETRACKING", "CONTACT_ID", ""]); - tableInfos.push(["ACTIVITYLINK", "OBJECT_ROWID", ""]); - tableInfos.push(["AB_ATTRIBUTERELATION", "OBJECT_ROWID", ""]); - - return tableInfos; + return [ + ["AB_APPOINTMENTLINK", "OBJECT_ROWID", ""], + ["AB_CTILOG", "CONTACT_ID", ""], + ["AB_OBJECTRELATION", "AB_OBJECTRELATIONID", ""], + ["AB_OBJECTRELATION", "OBJECT1_ROWID", ""], + ["AB_OBJECTRELATION", "OBJECT2_ROWID", ""], + ["AB_LOGHISTORY", "TABLENAMEID", ""], + ["ADDRESS", "CONTACT_ID", ""], + ["BULKMAILRECIPIENT", "CONTACT_ID", ""], + ["BULKMAIL", "TESTING_CONTACT_ID", ""], + ["CAMPAIGN", "EMPLOYEE_CONTACT_ID", ""], + ["CAMPAIGNSTEP", "EMPLOYEE_CONTACT_ID", ""], + ["COMMRESTRICTION", "CONTACT_ID", ""], + ["COMMRESTRICTION", "EMPLOYEE_INVOLVED", ""], + ["COMMUNICATION", "CONTACT_ID", ""], + ["COMPETITION", "CONTACT_ID", ""], + ["CONTRACT", "CONTACT_ID", ""], + ["LETTERRECIPIENT", "CONTACT_ID", ""], + ["OBJECTMEMBER", "CONTACT_ID", ""], + ["OFFER", "CONTACT_ID", ""], + ["PRODUCT", "CONTACT_ID", ""], + ["PRODUCTPRICE", "CONTACT_ID", ""], + ["SALESORDER", "CONTACT_ID", ""], + ["SALESPROJECT", "CONTACT_ID", ""], + ["TASK", "REQUESTOR_CONTACT_ID", ""], + ["TASK", "EDITOR_CONTACT_ID", ""], + ["TASKLINK", "OBJECT_ROWID", ""], + ["ACTIVITY", "RESPONSIBLE", ""], + ["DSGVO", "CONTACT_ID", ""], + ["DSGVOINFO", "CONTACT_ID", ""], + ["TIMETRACKING", "CONTACT_ID", ""], + ["ACTIVITYLINK", "OBJECT_ROWID", ""], + ["AB_ATTRIBUTERELATION", "OBJECT_ROWID", ""] + ]; } /* @@ -1205,10 +1174,10 @@ _DuplicateScannerUtils._getMergeUpdateTableInfosCurrentAlias = function() */ _DuplicateScannerUtils._getMergeUpdateTableInfosSystemAlias = function() { - var tableInfos = new Array(); - tableInfos.push(["ASYS_CALENDARLINK", "DBID", ""]); - tableInfos.push(["ASYS_BINARIES", "ROW_ID", "TABLENAME = 'CONTACT'"]); - return tableInfos; + return [ + ["ASYS_CALENDARLINK", "DBID", ""], + ["ASYS_BINARIES", "ROW_ID", "TABLENAME = 'CONTACT'"] + ]; } /* diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js index 131538d01f20e9e2603f83062254e5b8fbbbd3fc..2393fee4b38cea9c67566988bf561a3c8a119949 100644 --- a/process/Email_lib/process.js +++ b/process/Email_lib/process.js @@ -27,6 +27,7 @@ function EmailWritingUtils () {} * @param {String} [pBindata] base64 binary data * @param {Array} [pAttachments] attachments in a array (base64 encoded). * @param {String} pSubject an optional subject. + * @param {String} [pEmailFilename] filename of the email. * @return {Array} the eml document as array with [filename, base64] */ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments, pSubject, pEmailFilename) @@ -284,9 +285,8 @@ Email.prototype._newMailObject = function() mail.addBase64Attachment(mailId, pAttachment.content, DocumentTemplateUtils.getMimeType(pAttachment.templateId), pAttachment.filename, true, null); } - - mail.addBase64Attachment(mailId, pAttachment.content, pAttachment.contentType, pAttachment.filename, - true, null, null) + else + mail.addBase64Attachment(mailId, pAttachment.content, pAttachment.mimeType, pAttachment.filename, true, null, null) }); return mailId; diff --git a/process/Loghistory_lib/process.js b/process/Loghistory_lib/process.js index 102df509f36fb4f5afbdf481462f14769e3095de..fa07e912c734554fe0e1955b5e3f926f889630fc 100644 --- a/process/Loghistory_lib/process.js +++ b/process/Loghistory_lib/process.js @@ -150,6 +150,8 @@ LogHistoryExecutor.prototype.execute = function () { description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description, olddata[0], newdata[0]], this.translationLanguage)); } + else + description.push(conf.Description + " " + newdata[0]); } if (conf.RefTable) this.affectedTable = conf.RefTable; } //no extra tables @@ -284,7 +286,15 @@ LogHistoryExecutor.prototype._getDataForExtras = function(pId, pValues) if (this.affectedTable == "AB_ATTRIBUTERELATION") { data[0] = AttributeUtil.getFullAttributeName(pId); - data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); + //if the attribute type is "OBJECTSELECTION", entities.getRow is used for resolving the displayValue, that can cause an error + try { + data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); + } + catch (err) + { + logging.log(err); + data[1] = null; + } } else if (this.affectedTable == "COMMUNICATION") { diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 6f66eddba14a1eb66543e240cb9292a85e696295..fb933d980b271bc431bdd4715c15d07243981ade 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -2463,6 +2463,48 @@ SqlBuilder.prototype.updateFields = function (pFieldValues, pTableName) return this.updateData(true, pTableName, columns, null, values); } +/** + * Builds an array containing the table and condition for an update. + * + * @param {Object} pFieldValues Object with the columns to update as keys mapped to their values + * @param {String} [pTableName] The table for updating data. If undefined, the from part of the SqlBuilder will be used (works only if it is a tablename). If no from is set, + * the table of the first where-condition is used. + * @return {Array} array of [tableName, columns, columnTypes, values, preparedCondition], like it is required by db.updates or null if there is no condition + * @example + * var updateStatements = []; + * updateStatements.push(newWhere("PERSON.PERSONID", pPersonId).buildUpdateStatement({"FIRSTNAME" : firstName})); + * updateStatements.push(newWhere("ORGANISATION.ORGANISATIONID", pOrganisationId).buildUpdateStatement({"NAME" : organisationName})); + * db.updates(updateStatements); + */ +SqlBuilder.prototype.buildUpdateStatement = function (pFieldValues, pTableName) +{ + if (!pFieldValues || typeof(pFieldValues) !== "object") + throw SqlBuilder._ERROR_UPDATE_VALUES_INVALID; + + var columns = []; + var values = []; + for (let field in pFieldValues) + { + columns.push(field); + values.push(pFieldValues[field].toString()); + } + + if (columns.length !== 0 && this._checkForUpdate()) + { + if (!pTableName && !this._tableName) + throw SqlBuilder._ERROR_NO_TABLE(); + + return [ + (pTableName ? pTableName : this._tableName), + columns, + null, + values, + this.buildCondition() + ]; + } + return null; +} + /** * Inserts data in the database. This function doesn't require any where-condition, it is intended to be called right after 'new SqlBuilder()'. <br/> * @@ -2565,6 +2607,36 @@ SqlBuilder.prototype.deleteData = function(pExecuteOnlyIfConditionExists, pTable } } +/** + * Builds an array containing the table and condition for a delete. + * + * @param {Boolean} [pOnlyIfConditionExists=true] If true and there is no condition, null is returned.<br/> + * <strong>IMPORTANT: If this is set to false and there is no condition, every row in the table will be deleted!</strong> + * @param {String} [pTableName] The table for deleting data. If undefined, the from part of the SqlBuilder will be used. If no from is set, + * the table of the first where-condition is used. + * @return {Array} array of [tableName, preparedCondition], like it is required by db.deletes + * @example + * var deleteStatements = []; + * deleteStatements.push(newWhere("PERSON.PERSONID", pPersonId).buildDeleteStatement()); + * deleteStatements.push(newWhere("CONTACT.CONTACTID", pContactId).buildDeleteStatement()); + * db.deletes(deleteStatements); + */ +SqlBuilder.prototype.buildDeleteStatement = function(pOnlyIfConditionExists, pTableName) +{ + if (this._checkForUpdate(pOnlyIfConditionExists)) + { + if (!pTableName && !this._tableName) + throw SqlBuilder._ERROR_NO_TABLE(); + + return [ + (pTableName ? pTableName : this._tableName), + this.buildCondition() + ]; + } + else + return null; +} + /** * Executes the SQL using db.cell and returns the result.<br/> * Note: the default for pExecuteOnlyIfConditionExists is false becausse it is more natural to select all rows if no condition exists. diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js index 39b2bdb10b70dc7c9f72e17087f1d144cdb59219..179875a721eeee920de4ed7fa72752661fcefbe9 100644 --- a/process/Workflow_lib/process.js +++ b/process/Workflow_lib/process.js @@ -204,8 +204,9 @@ WorkflowSignalSender.deleted = function (pTargetId, pTargetContext) * @param {String} pEvent event * @param {String} pTargetId uid of the dataset * @param {String} pTargetContext context of the dataset + * @param {Object} pVariables additional variables to set */ -WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext) +WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext, pVariables) { var variables = WorkflowVariables.getTargetVariables(pTargetId, pTargetContext); @@ -214,7 +215,7 @@ WorkflowSignalSender.eventHappened = function (pEvent, pTargetId, pTargetContext { if (_checkCondition(signal.entity, variables[WorkflowVariables.TARGET_ID()], signal.condition)) { - var filteredVariables = {}; + var filteredVariables = pVariables || {}; signal.variables.forEach(function (varName) { filteredVariables[varName] = variables[varName]; diff --git a/process/updateActivities_serverProzess/process.js b/process/updateActivities_serverProzess/process.js index 65cbe7e7042b5872b3d4f9c6067df0227bc0c170..0a952cd68dca8ad315cb606d7aa6f0ef74faf6e4 100644 --- a/process/updateActivities_serverProzess/process.js +++ b/process/updateActivities_serverProzess/process.js @@ -3,9 +3,9 @@ import("system.db"); import("Sql_lib"); var activities = new SqlBuilder().select(["ACTIVITY.INFO", "ACTIVITY.ACTIVITYID"]).from("ACTIVITY").where("ACTIVITY.CATEGORY", "MAIL").and("ACTIVITY.INFO", "<%", SqlBuilder.NOT_LIKE()).and("ACTIVITY.INFO","%<html>%", SqlBuilder.LIKE()).table(); -activities.forEach(function (row) { - let columnsToUpdate = ["INFO"]; - let newValue = row[0].split("<br/>\n").map(function (el) +activities.forEach(function (row) +{ + var newValue = row[0].split("<br/>\n").map(function (el) { if (el == "") return "<br>"; @@ -14,7 +14,6 @@ activities.forEach(function (row) { else return "<p>" + el + "</p><br>"; }).join("\n"); - let projectIdCondition = SqlCondition.equals("ACTIVITY.ACTIVITYID", row[1], "1=2"); - - db.updateData("ACTIVITY", columnsToUpdate, null, [newValue], projectIdCondition); + newWhere("ACTIVITY.ACTIVITYID", row[1]) + .updateFields({"INFO" : newValue}); }); \ No newline at end of file diff --git a/process/workflowServiceTasks_rest/process.js b/process/workflowServiceTasks_rest/process.js index 2da45ade3533c545a968cd5f377a2169e6f89223..470717e7e185c7c7af401533042bcac29582bee1 100644 --- a/process/workflowServiceTasks_rest/process.js +++ b/process/workflowServiceTasks_rest/process.js @@ -6,12 +6,8 @@ function restget (pRequest) { var request = JSON.parse(pRequest); - var serviceTasks = project.getDataModels(project.DATAMODEL_KIND_PROCESS) - .filter(function (row) - { - return /.+_workflowService$/.test(row[0]); - }) - .map(function (row) + var serviceTaskNames = process.getProcesses([process.VARIANT_WORKFLOW]); + var serviceTasks = project.getDataModels(project.DATAMODEL_KIND_PROCESS, serviceTaskNames).map(function (row) { return { id : row[0],