diff --git a/.liquibase/Data_alias/basic/2019.2.1/alter_Campaign_currency.xml b/.liquibase/Data_alias/basic/2019.2.1/alter_Campaign_currency.xml new file mode 100644 index 0000000000000000000000000000000000000000..8a09edddd07545cad3650647e1d05d3b3194b8f0 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2.1/alter_Campaign_currency.xml @@ -0,0 +1,9 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id="28c04b3e-c643-4ef9-b1fa-4a8816e9ad0d"> + <addColumn tableName="CAMPAIGN"> + <column name="CURRENCY" type="CHAR(36)"/> + </addColumn> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2.1/changelog.xml b/.liquibase/Data_alias/basic/2019.2.1/changelog.xml index 4eaaa3d57c6dd1ae0b7c548cc935a7a0dd465047..5293ca357349f7c7d00378562582849490cb2ecd 100644 --- a/.liquibase/Data_alias/basic/2019.2.1/changelog.xml +++ b/.liquibase/Data_alias/basic/2019.2.1/changelog.xml @@ -6,4 +6,6 @@ <include relativeToChangelogFile="true" file="alter_SerialLetter.xml"/> <include relativeToChangelogFile="true" file="insert_SerialLetterStatus_keyword.xml"/> <include relativeToChangelogFile="true" file="insert_AttributeType_Theme_keyword.xml"/> + + <include relativeToChangelogFile="true" file="alter_Campaign_currency.xml"/> </databaseChangeLog> diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 186ac933073e052b10b68c31c0163e6776c16e25..b56cd2af80797dafd4c2563ff958c0d19f9544e3 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -85,6 +85,31 @@ </customBooleanProperty> </customProperties> </entityFieldDb> + <entityFieldDb> + <name>KIND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title>Type</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + <customStringProperty> + <name>keyword</name> + <global v="false" /> + <property>OrganisationType</property> + </customStringProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>SALESAREA</name> <dbName></dbName> @@ -196,20 +221,6 @@ </customBooleanProperty> </customProperties> </entityFieldDb> - <entityFieldDb> - <name>KIND</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -229,6 +240,31 @@ <syncIds></syncIds> </auditSyncConfig> <entityFields> + <entityFieldDb> + <name>ISOLANGUAGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title>Language</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/contact/entityfields/language/customproperties/translate4log/property.js</property> + </customJDitoProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>CONTACTID</name> <dbName></dbName> @@ -356,7 +392,7 @@ <customBooleanProperty> <name>log</name> <global v="false" /> - <property v="true" /> + <property v="false" /> </customBooleanProperty> </customProperties> </entityFieldDb> @@ -402,6 +438,27 @@ </customBooleanProperty> </customProperties> </entityFieldDb> + <entityFieldDb> + <name>CONTACTPOSITION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title>Position Id</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>DATE_EDIT</name> <dbName></dbName> @@ -472,34 +529,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>ISOLANGUAGE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="3" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CONTACTPOSITION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="50" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -820,6 +849,26 @@ </customBooleanProperty> </customProperties> </entityFieldDb> + <entityFieldDb> + <name>PROVINCE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title>${ADDRESS_STATE}</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>ADDR_TYPE</name> <dbName></dbName> @@ -1111,20 +1160,6 @@ <title>Creation user</title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>PROVINCE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="50" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -1209,6 +1244,26 @@ </entityDependency> </dependencies> </entityFieldDb> + <entityFieldDb> + <name>ISSTANDARD</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title>Standard</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>ADDR</name> <dbName></dbName> @@ -1285,20 +1340,6 @@ <title>Modification user</title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>ISSTANDARD</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="5" /> - <size v="5" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -4162,6 +4203,58 @@ </customBooleanProperty> </customProperties> </entityFieldDb> + <entityFieldDb> + <name>SALESPROJECT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title>Salesproject</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/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> + </customProperties> + </entityFieldDb> + <entityFieldDb> + <name>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title>Status</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + <customStringProperty> + <name>keyword</name> + <global v="false" /> + <property>SalesorderState</property> + </customStringProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>SALESORDERDATE</name> <dbName></dbName> @@ -4266,17 +4359,17 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>OFFER_ID</name> + <name>ADDRESS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> + <columnType v="2005" /> + <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title>Offer</title> + <title>Address</title> <description></description> <customProperties> <customBooleanProperty> @@ -4287,249 +4380,32 @@ </customProperties> </entityFieldDb> <entityFieldDb> - <name>PAYDUEDATE</name> + <name>OFFER_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Offer</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> - <name>CANCELLATION</name> + <name>ISOLANGUAGE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="5" /> - <size v="5" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PAYDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>UNPAID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DUNNINGLEVEL</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DUNNINGDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ORDERTYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PAID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ORDERSTATUS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="5" /> - <size v="5" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_ROWID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PAYMENTTERMS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DELIVERYTERMS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PAYMENTADDRESS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DELIVERYADDRESS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>NOTICE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DUNNINGTEXT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ISOLANGUAGE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="3" /> + <columnType v="1" /> + <size v="3" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5136,6 +5012,32 @@ </customBooleanProperty> </customProperties> </entityFieldDb> + <entityFieldDb> + <name>KIND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title>type</title> + <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="false" /> + </customBooleanProperty> + <customStringProperty> + <name>keyword</name> + <global v="false" /> + <property>TaskType</property> + </customStringProperty> + </customProperties> + </entityFieldDb> <entityFieldDb> <name>PARENT_ID</name> <dbName></dbName> @@ -5204,20 +5106,6 @@ </customStringProperty> </customProperties> </entityFieldDb> - <entityFieldDb> - <name>KIND</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -6407,17 +6295,17 @@ </customProperties> </entityFieldDb> <entityFieldDb> - <name>NAME</name> + <name>KIND</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="100" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title>Name</title> + <title>Type</title> <description></description> <customProperties> <customBooleanProperty> @@ -6428,18 +6316,25 @@ </customProperties> </entityFieldDb> <entityFieldDb> - <name>KIND</name> + <name>NAME</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> + <columnType v="12" /> + <size v="100" /> <scale v="0" /> <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Name</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> </entityFields> </entityDb> @@ -7768,11 +7663,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>MILESTONEVALUE</name> + <name>KIND</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> + <columnType v="12" /> + <size v="80" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -7782,11 +7677,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>KIND</name> + <name>MILESTONEVALUE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="80" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -9404,6 +9299,230 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> <title></title> <description></description> </entityFieldDb> @@ -9524,7 +9643,7 @@ <description></description> <auditSyncConfig> <name>auditSyncConfig</name> - <auditMode v="0" /> + <auditMode v="1" /> <syncActive v="false" /> <syncComplete v="true" /> <syncDirection v="1" /> @@ -9542,8 +9661,20 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Document Template</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/bulkmail/entityfields/documenttemplate_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>BULKMAILID</name> @@ -9570,8 +9701,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Description</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>SUBJECT</name> @@ -9584,8 +9722,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Subject</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>NAME</name> @@ -9598,8 +9743,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Name</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>SENDER</name> @@ -9612,8 +9764,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Sender</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>STATUS</name> @@ -10125,6 +10284,20 @@ <name>MAIL</name> <dbName></dbName> <primaryKey v="false" /> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> <columnType v="2005" /> <size v="2147483647" /> <scale v="0" /> @@ -10572,7 +10745,7 @@ <description></description> <auditSyncConfig> <name>auditSyncConfig</name> - <auditMode v="0" /> + <auditMode v="1" /> <syncActive v="false" /> <syncComplete v="true" /> <syncDirection v="1" /> @@ -10590,8 +10763,20 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Document Template</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/serialletter/entityfields/documenttemplate_id/customproperties/translate4log/property.js</property> + </customJDitoProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>SERIALLETTERID</name> @@ -10618,8 +10803,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Title</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>DESCRIPTION</name> @@ -10632,8 +10824,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Description</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>STATUS</name> @@ -10652,9 +10851,9 @@ </entityFields> </entityDb> <entityDb> - <name>SALESPROJECT_TOUCHPOINT</name> + <name>OBJECTMEMBER</name> <dbName></dbName> - <idColumn>SALESPROJECT_TOUCHPOINTID</idColumn> + <idColumn>OBJECTMEMBERID</idColumn> <idGeneratorType v="0" /> <idGeneratorInterval v="1" /> <documentation></documentation> @@ -10670,7 +10869,7 @@ </auditSyncConfig> <entityFields> <entityFieldDb> - <name>SALESPROJECT_TOUCHPOINTID</name> + <name>OBJECTMEMBERID</name> <dbName></dbName> <primaryKey v="true" /> <columnType v="1" /> @@ -10684,13 +10883,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>TOUCHPOINT</name> + <name>OBJECT_ROWID</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="1" /> <size v="36" /> <scale v="0" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -10698,13 +10897,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ENTRYDATE</name> + <name>DECIDER</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -10712,11 +10911,25 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>INFO</name> + <name>CONTACT_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RELATIONSHIP</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -10726,13 +10939,27 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>SALESPROJECT_ID</name> + <name>OBJECT_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MEMBERROLE</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="1" /> <size v="36" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -10742,9 +10969,9 @@ </entityFields> </entityDb> <entityDb> - <name>OBJECTMEMBER</name> + <name>SALESPROJECT_TOUCHPOINT</name> <dbName></dbName> - <idColumn>OBJECTMEMBERID</idColumn> + <idColumn>SALESPROJECT_TOUCHPOINTID</idColumn> <idGeneratorType v="0" /> <idGeneratorInterval v="1" /> <documentation></documentation> @@ -10760,7 +10987,7 @@ </auditSyncConfig> <entityFields> <entityFieldDb> - <name>OBJECTMEMBERID</name> + <name>SALESPROJECT_TOUCHPOINTID</name> <dbName></dbName> <primaryKey v="true" /> <columnType v="1" /> @@ -10774,13 +11001,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>OBJECT_ROWID</name> + <name>TOUCHPOINT</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="1" /> <size v="36" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -10788,13 +11015,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>DECIDER</name> + <name>ENTRYDATE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="5" /> - <size v="5" /> - <scale v="0" /> - <notNull v="true" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -10802,11 +11029,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>MEMBERROLE</name> + <name>INFO</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> + <columnType v="2005" /> + <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -10816,7 +11043,7 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>CONTACT_ID</name> + <name>SALESPROJECT_ID</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="1" /> @@ -10829,34 +11056,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>RELATIONSHIP</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> </entities> diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod index ca18f8ae389fb1ac7e543ef06470b05aa937e6f8..7d902eb40b03b991a7849f18053fed0c49458420 100644 --- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod +++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod @@ -148,6 +148,10 @@ <name>DisplaySimpleName_param</name> <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificattribute/children/displaysimplename_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>AttributeTypes_param</name> + <valueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/specificattribute/children/attributetypes_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityParameter> diff --git a/entity/AttributeRelation_entity/entityfields/specificattribute/children/attributetypes_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/specificattribute/children/attributetypes_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d940f3ac530d0079362be73944a1d6093b82ff45 --- /dev/null +++ b/entity/AttributeRelation_entity/entityfields/specificattribute/children/attributetypes_param/valueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("Attribute_lib"); + +var isTheme = vars.exists("$param.IsTheme_param") && vars.getString("$param.IsTheme_param") == "true"; +if (isTheme) + sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME); +else + sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME, "# != ?"); +result.object([$AttributeTypes.THEME.toString()]); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js index 63d07df52b1e62046aad63448e9b1ef1d2b0def9..691df5362c933e7f12bbad797908bfb221ff8cf9 100644 --- a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js @@ -74,14 +74,11 @@ if (rowId) sqlCondition.and("1=1"); } -var IsTheme = vars.exists("$param.IsTheme_param") && vars.getString("$param.IsTheme_param") == "true"; -if (IsTheme){ - sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", 'THEME'); -} +var isTheme = vars.exists("$param.IsTheme_param") && vars.getString("$param.IsTheme_param") == "true"; +if (isTheme) + sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME); else - { - sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", 'THEME', "# != ?"); - } + sqlCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME, "# != ?"); joinCondition.and("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID"); diff --git a/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod index e590ec8804c0bff64723a9fdfb29fdd968a72b3e..1c36b1046e43d1a63d85676b70e12380e5bd0413 100644 --- a/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod +++ b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod @@ -49,6 +49,7 @@ <contentType>NUMBER</contentType> <outputFormat>#,##0.00</outputFormat> <valueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/variablecosts/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/variablecosts/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>FixCosts</name> @@ -56,6 +57,7 @@ <contentType>NUMBER</contentType> <outputFormat>#,##0.00</outputFormat> <valueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/fixcosts/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/fixcosts/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>TotalCosts</name> @@ -63,6 +65,7 @@ <contentType>NUMBER</contentType> <outputFormat>#,##0.00</outputFormat> <valueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/totalcosts/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/totalcosts/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>CostsPerParticipant</name> @@ -70,6 +73,7 @@ <contentType>NUMBER</contentType> <outputFormat>#,##0.00</outputFormat> <valueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>UID</name> @@ -99,6 +103,10 @@ <expose v="true" /> <description>PARAMETER</description> </entityParameter> + <entityField> + <name>Currency</name> + <valueProcess>%aditoprj%/entity/CampaignAnalysis_entity/entityfields/currency/valueProcess.js</valueProcess> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/displayValueProcess.js b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..fe9d9c02cb11f5f70ecd4c00e41b251ed5f1a789 --- /dev/null +++ b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.CostsPerParticipant"), translate.text("#,##0.00"), vars.get("$field.Currency"))); \ No newline at end of file diff --git a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js index ccd043074d5d151f5226b40cc450c4e510e13657..ec3ccc758e613aec6dd8eb10b071f0f9ed777854 100644 --- a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js +++ b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js @@ -1,4 +1,5 @@ import("system.result"); import("system.vars"); -result.string(parseFloat(vars.getString("$field.TotalCosts")) / parseInt(vars.get("$field.ParticipantCount"))); \ No newline at end of file +var cost = parseFloat(vars.getString("$field.TotalCosts")) / parseInt(vars.get("$field.ParticipantCount")); +result.string(isFinite(cost) ? cost : 0); //if there is no participant, it would cause a division by zero and the result would be infinity \ No newline at end of file diff --git a/entity/CampaignAnalysis_entity/entityfields/currency/valueProcess.js b/entity/CampaignAnalysis_entity/entityfields/currency/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0707325468559c403e49b8cb1410dcfda71b81e5 --- /dev/null +++ b/entity/CampaignAnalysis_entity/entityfields/currency/valueProcess.js @@ -0,0 +1,7 @@ +import("system.db"); +import("system.result"); +import("Sql_lib"); + +result.string(db.cell(SqlCondition.begin() + .andPrepareVars("CAMPAIGN.CAMPAIGNID", "$param.CampaignId_param") + .buildSql("select CURRENCY from CAMPAIGN", "1=2"))); \ No newline at end of file diff --git a/entity/CampaignAnalysis_entity/entityfields/fixcosts/displayValueProcess.js b/entity/CampaignAnalysis_entity/entityfields/fixcosts/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0ef6b1164e2c8b3c15111fe3174f75f74412d558 --- /dev/null +++ b/entity/CampaignAnalysis_entity/entityfields/fixcosts/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.FixCosts"), translate.text("#,##0.00"), vars.get("$field.Currency"))); \ No newline at end of file diff --git a/entity/CampaignAnalysis_entity/entityfields/totalcosts/displayValueProcess.js b/entity/CampaignAnalysis_entity/entityfields/totalcosts/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1446e4d3b304a06f21325dc360dc5f01b5f0c605 --- /dev/null +++ b/entity/CampaignAnalysis_entity/entityfields/totalcosts/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.TotalCosts"), translate.text("#,##0.00"), vars.get("$field.Currency"))); \ No newline at end of file diff --git a/entity/CampaignAnalysis_entity/entityfields/variablecosts/displayValueProcess.js b/entity/CampaignAnalysis_entity/entityfields/variablecosts/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..58579e46183839ab4fb7634bfdd2ccdf3713a1e4 --- /dev/null +++ b/entity/CampaignAnalysis_entity/entityfields/variablecosts/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.VariableCosts"), translate.text("#,##0.00"), vars.get("$field.Currency"))); \ No newline at end of file diff --git a/entity/CampaignCost_entity/CampaignCost_entity.aod b/entity/CampaignCost_entity/CampaignCost_entity.aod index 830b03dd1cc322346e11b8cd85e30550b0556b68..54ea032fe2337da9be23f221dd7bd64371540d1b 100644 --- a/entity/CampaignCost_entity/CampaignCost_entity.aod +++ b/entity/CampaignCost_entity/CampaignCost_entity.aod @@ -55,6 +55,7 @@ <outputFormat>#,##0.00</outputFormat> <inputFormat>#,##0.00</inputFormat> <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/net/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>USER_NEW</name> @@ -215,6 +216,7 @@ <state>READONLY</state> <titleProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/netperparticipant/titleProcess.js</titleProcess> <valueProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/netperparticipant/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignCost_entity/entityfields/netperparticipant/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>countParticipants</name> @@ -232,6 +234,9 @@ <documentation>%aditoprj%/entity/CampaignCost_entity/entityfields/campaignsteps_param/documentation.adoc</documentation> <description>PARAMETER</description> </entityParameter> + <entityField> + <name>CURRENCY</name> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> @@ -242,19 +247,26 @@ <orderClauseProcess>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> <linkInformation> <linkInformation> - <name>70c2db20-0695-4189-92cb-7da585bff401</name> + <name>6010c581-04c5-4578-b07b-5ab5ce27093b</name> <tableName>CAMPAIGNCOST</tableName> <primaryKey>CAMPAIGNCOSTID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> <linkInformation> - <name>b97b7f67-86ea-4d0a-8303-abc05863ed66</name> + <name>e5fcdb82-a4f4-4bf8-a7e5-81b94d6377bb</name> <tableName>CAMPAIGNSTEP</tableName> <primaryKey>CAMPAIGNSTEPID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> + <linkInformation> + <name>22980b1e-ea89-4dc6-a648-bddb77401c6a</name> + <tableName>CAMPAIGN</tableName> + <primaryKey>CAMPAIGNID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> </linkInformation> <recordFieldMappings> <dbRecordFieldMapping> @@ -297,6 +309,10 @@ <name>CATEGORY.displayValue</name> <expression>%aditoprj%/entity/CampaignCost_entity/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js</expression> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CURRENCY.value</name> + <recordfield>CAMPAIGN.CURRENCY</recordfield> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/CampaignCost_entity/entityfields/net/displayValueProcess.js b/entity/CampaignCost_entity/entityfields/net/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..450ae0cfd9fa1701eeb4d4e7c049a3c8fb8fc7a0 --- /dev/null +++ b/entity/CampaignCost_entity/entityfields/net/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.NET"), translate.text("#,##0.00"), vars.get("$field.CURRENCY"))); \ No newline at end of file diff --git a/entity/CampaignCost_entity/entityfields/netperparticipant/displayValueProcess.js b/entity/CampaignCost_entity/entityfields/netperparticipant/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d37ae85c8d479b752a505f2ad78b2fd57f6f0d16 --- /dev/null +++ b/entity/CampaignCost_entity/entityfields/netperparticipant/displayValueProcess.js @@ -0,0 +1,6 @@ +import("Util_lib"); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(NumberUtils.formatWithCurrency(vars.get("$field.netPerParticipant"), translate.text("#,##0.00"), vars.get("$field.CURRENCY"))); \ No newline at end of file diff --git a/entity/CampaignCost_entity/recordcontainers/db/fromClauseProcess.js b/entity/CampaignCost_entity/recordcontainers/db/fromClauseProcess.js index 4d95079d7cb044ddab9f1e475e6921ec8dcfb2f9..bfccf1c985dacc26263d113b9df88f54ec09c022 100644 --- a/entity/CampaignCost_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/CampaignCost_entity/recordcontainers/db/fromClauseProcess.js @@ -1,3 +1,4 @@ import("system.result"); -result.string("CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID") \ No newline at end of file +result.string("CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID \ + join CAMPAIGN on CAMPAIGNCOST.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID"); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod index 6fdce8ab9b250b8e55c297bbf290d7a81654cb2c..364f0019d3722dc74cd8a005c51f3a17e64b3c5a 100644 --- a/entity/Campaign_entity/Campaign_entity.aod +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -486,6 +486,28 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>CURRENCY</name> + <title>Currency</title> + <consumer>KeywordCurrency</consumer> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/currency/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/currency/displayValueProcess.js</displayValueProcess> + </entityField> + <entityConsumer> + <name>KeywordCurrency</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/keywordcurrency/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> @@ -568,6 +590,14 @@ <name>STATUS.displayValue</name> <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CURRENCY.value</name> + <recordfield>CAMPAIGN.CURRENCY</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CURRENCY.displayValue</name> + <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> <filterExtensions> <filterExtensionSet> diff --git a/entity/Campaign_entity/entityfields/currency/displayValueProcess.js b/entity/Campaign_entity/entityfields/currency/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..71f6fd23918c683ebf7eecb2bfc971f603bd00fe --- /dev/null +++ b/entity/Campaign_entity/entityfields/currency/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.currency(), vars.get("$field.CURRENCY"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/currency/valueProcess.js b/entity/Campaign_entity/entityfields/currency/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..05fa9172bc2933be5e71b17e5f7230d844d86664 --- /dev/null +++ b/entity/Campaign_entity/entityfields/currency/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); +import("system.result"); +import("KeywordRegistry_basic"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) + result.string($KeywordRegistry.currency$eur()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/keywordcurrency/children/containername_param/valueProcess.js b/entity/Campaign_entity/entityfields/keywordcurrency/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6e94f823cd6267123836d5c5a4f9ed6f38da0bb6 --- /dev/null +++ b/entity/Campaign_entity/entityfields/keywordcurrency/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("KeywordRegistry_basic"); +import("system.result"); + +result.string($KeywordRegistry.currency()); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..97616b9b6066153e56e577e2aef5425ae22b8da6 --- /dev/null +++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.currency(), "CAMPAIGN.CURRENCY"); +result.string(sql); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index c407f92b638a4758efc976de7c404503020b29de..1025fac61468df0ad65685eb86187d6c530a0c83 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -474,6 +474,12 @@ <entityName>DSGVOInfo_entity</entityName> <fieldName>KeywordGuarantee</fieldName> <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>2443c7e3-9e66-41dc-99c7-3283e9315000</name> + <entityName>Campaign_entity</entityName> + <fieldName>KeywordCurrency</fieldName> + <isConsumer v="false" /> </entityDependency> <entityDependency> <name>2694515c-eda4-44aa-9826-d430aa8a8089</name> diff --git a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js index ac3912f70bfd69006068a8020a8176bc12bfcdce..5acbe1fae9747b958253205861b77d6146f730c4 100644 --- a/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js +++ b/entity/PermissionAction_entity/entityfields/permissiondetails/onValidation.js @@ -15,15 +15,15 @@ var deletedRows = vars.get("$field.PermissionDetails.deletedRows"); if (actionTitle == "null" || actionTitle == undefined || actionTitle == null || actionTitle == "") { result.string(translate.text("Empty actions are not allowed!")); -} else if (PermissionUtil.existsPermission(permissionId)) { +} else if (PermissionUtil.permissionExists(permissionId)) { // existing permission // check if action is already in DB - var actionsInDb = PermissionUtil.getPermissionAction(permissionId); + var actionsInDb = PermissionUtil.getActions([permissionId]); var sqlStr = "select COND from ASYS_PERMISSION where ASYS_PERMISSIONID='" + permissionId + "'"; var permCondDb = db.cell(sqlStr, alias); for each (var action in actionsInDb) { - if (PermissionUtil.resolvePermissionActionId(action) == actionTitle && permCondInput == permCondDb) { + if (PermissionUtil.resolveActionId(action) == actionTitle && permCondInput == permCondDb) { result.string(translate.text("Action '" + actionTitle + "' already linked to this permission!")); break; } diff --git a/entity/PermissionAction_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionAction_entity/recordcontainers/jdito/contentProcess.js index e3af7028be1e1b0648f1c4a92b35b7e382118ff1..50caa264cc31ae1cd5245964b10b119604424cda 100644 --- a/entity/PermissionAction_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionAction_entity/recordcontainers/jdito/contentProcess.js @@ -7,11 +7,11 @@ import("Permission_lib"); var actions = []; var permissionId = vars.exists("$param.PermissionId_param") && vars.get("$param.PermissionId_param"); -if (permissionId && PermissionUtil.existsPermission(permissionId)) +if (permissionId && PermissionUtil.permissionExists(permissionId)) { - var permActions = PermissionUtil.getPermissionAction(permissionId); + var permActions = PermissionUtil.getActions([permissionId]); for each (var permActionId in permActions) { - actions.push([permActionId[0], PermissionUtil.resolvePermissionActionId(permActionId), PermissionUtil.resolvePermissionActionId(permActionId)]); + actions.push([permActionId[0], PermissionUtil.resolveActionId(permActionId), PermissionUtil.resolveActionId(permActionId)]); } result.object(actions); diff --git a/entity/PermissionAction_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionAction_entity/recordcontainers/jdito/onDelete.js index 69b743814c1db71967e744c83ca9b55fa011f84d..3dc7236e2952b0b90e261cce5b615bfc64045a5d 100644 --- a/entity/PermissionAction_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionAction_entity/recordcontainers/jdito/onDelete.js @@ -2,4 +2,4 @@ import("system.vars"); import("Permission_lib"); var action = vars.get("$local.uid"); -PermissionUtil.deletePermissionAction(action); \ No newline at end of file +PermissionUtil.deleteAction(action); \ No newline at end of file diff --git a/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js index eaa90d0cb8597dc1a3374c82d563eb6ada68ab90..ba4a44784604153dc6ae0675b919766fd6d47508 100644 --- a/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js +++ b/entity/PermissionAction_entity/recordcontainers/jdito/onInsert.js @@ -10,7 +10,7 @@ var permissionId = vars.exists("$param.PermissionId_param") && vars.get("$param. if (permissionId) { var newAction = vars.get("$local.rowdata")["ACTION.value"]; - PermissionUtil.insertNewPermissionAction(permissionId, newAction, vars.get("$field.UID")); + PermissionUtil.insertAction(permissionId, newAction, vars.get("$field.UID")); } tools.clearPermissionCache(); \ No newline at end of file diff --git a/entity/PermissionAction_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionAction_entity/recordcontainers/jdito/onUpdate.js index 6d5e623b7c990ff901bcfc65cbae34e86b2b65a8..2ca5d8944019c687e073fa926bf3211c0c1e7ea1 100644 --- a/entity/PermissionAction_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/PermissionAction_entity/recordcontainers/jdito/onUpdate.js @@ -7,7 +7,7 @@ var col = "ACTION"; var table = "ASYS_PERMISSIONACTION"; var permissionId = vars.exists("$param.PermissionId_param") && vars.get("$param.PermissionId_param"); -if (permissionId && PermissionUtil.existsPermission(permissionId)) { +if (permissionId && PermissionUtil.permissionExists(permissionId)) { var newAction = vars.get("$local.rowdata")["ACTION.value"]; PermissionUtil.updateIfDiff(vars.get("$field.UID"), newAction, col, table); } \ No newline at end of file diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js index 834f79bd2a754a3fb66944f5629e2a46de1ce41a..64d2e3dbafd4e842abc03c05b85b260aaf72e727 100644 --- a/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/accesstype/displayValueProcess.js @@ -8,7 +8,7 @@ var field = vars.get("$field.FIELD"); var role = vars.get("$field.ROLE"); var entity = vars.get("$field.ENTITY"); var accesstype = vars.get("$field.ACCESSTYPE"); -var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity); +var rootPermSet = PermissionUtil.getSetRoot(role, entity); if (operatingState == neon.OPERATINGSTATE_SEARCH || neon.OPERATINGSTATE_VIEW) { switch (accesstype) { diff --git a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js index 19d56ab1772593fcca0d1bca9b053c156e384da4..77b31c523511833ae46b2844d6d8c72271298148 100644 --- a/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/accesstype/valueProcess.js @@ -6,8 +6,8 @@ var field = vars.get("$field.FIELD"); var role = vars.get("$field.ROLE"); var entity = vars.get("$field.ENTITY"); var permId = vars.get("$field.UID"); -var rootPermSet = PermissionUtil.getRootPermissionSet(role, entity); -var rootPerm = PermissionUtil.getDefaultPermission(rootPermSet); +var rootPermSet = PermissionUtil.getSetRoot(role, entity); +var rootPerm = PermissionUtil.getPermissionWithoutCond(rootPermSet); if (PermissionUtil.getCondType(rootPerm) == "false") { // condtype="false" is used to display that this entity has the usePermissions flag set but has no permissions linked -> no access on any level diff --git a/entity/PermissionDetail_entity/entityfields/field/stateProcess.js b/entity/PermissionDetail_entity/entityfields/field/stateProcess.js index 2a3f639a77b08b9c6b6bcfe08a44a1260d27ba64..a28f5c86f9be5e45e9d693571091ce4a7fd1d03a 100644 --- a/entity/PermissionDetail_entity/entityfields/field/stateProcess.js +++ b/entity/PermissionDetail_entity/entityfields/field/stateProcess.js @@ -7,7 +7,7 @@ import("Permission_lib"); var role = vars.get("$field.ROLE"); var entity = vars.get("$field.ENTITY"); -rootPermSet = PermissionUtil.getRootPermissionSet(role, entity); +rootPermSet = PermissionUtil.getSetRoot(role, entity); if (rootPermSet == "") { result.string(neon.COMPONENTSTATE_DISABLED); diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js index 7f2dea6db775c3e184ecfe8b4937e583ad91ec39..8380b4e449705c93f42a6b3eae4736708622094a 100644 --- a/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/children/permissionid_param/valueProcess.js @@ -5,10 +5,10 @@ import("Permission_lib"); var entity = vars.get("$field.ENTITY"); var cond = vars.get("$field.CONDITION"); var noCond = "{\"entity\":\"" + entity + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; -var permSetId = PermissionUtil.getPermissionSet(vars.get("$field.ROLE"), vars.get("$field.ENTITY"), vars.get("$field.ACCESSTYPE")); +var permSetId = PermissionUtil.getSet(vars.get("$field.ROLE"), vars.get("$field.ENTITY"), vars.get("$field.ACCESSTYPE")); if (permSetId != "" && (cond == "" || cond == noCond)) { - var rootPermId = PermissionUtil.getDefaultPermission(permSetId); + var rootPermId = PermissionUtil.getPermissionWithoutCond(permSetId); if (rootPermId != "") { result.string(rootPermId); } diff --git a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js index 1abe9d92bfd3d588a564ea9419fb4c2f9c5019c7..9822dae140770b8d12ccf03a616e765b431026ca 100644 --- a/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js +++ b/entity/PermissionDetail_entity/entityfields/permissionactions/onValidation.js @@ -16,17 +16,20 @@ var accesstype = vars.get("$field.ACCESSTYPE"); var permCondInput = vars.get("$field.CONDITION"); var permCondType = vars.get("$field.CONDTYPE"); var permissionId = PermissionUtil.getPermission(roleTitle, entityTitle, fieldTitle, accesstype, permCondInput, permCondType); -var actionsInDb = PermissionUtil.getPermissionAction(permissionId); - +var actionsInDb = PermissionUtil.getActions([permissionId]); var actionsAsStringArray = vars.get("$field.ACTION").split(","); // only useful while working with already existing permissions var deletedRows = vars.get("$field.PermissionActions.deletedRows"); var changedRows = vars.get("$field.PermissionActions.changedRows"); var insertedRows = vars.get("$field.PermissionActions.insertedRows"); -if (PermissionUtil.existsPermission(permissionId)) { +if (deletedRows.length == actionsAsStringArray.length && changedRows.length == 0 && insertedRows.length == 0) { + result.string(translate.text("Permissions without actions are not allowed!")); +} + +if (PermissionUtil.permissionExists(permissionId)) { // old permission - // insert nur möglich, wenn gleiche action auch gelöscht wurde, oder zuvor nicht da war + // insert only possible, if the same action is not already linked to the permission for each (let row in insertedRows) { var actionGotJustDelted = false; if (PermissionUtil.actionExists(row.ACTION, permissionId)) { diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js index 894bb06e116e163c11859003cbc0a3f28bd2c6eb..7caa94138a350ba29d74d1d8fedb0fb1e47d36e6 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js @@ -14,6 +14,7 @@ var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY); var entityStructure; var entitiesUsePermFlagSet = []; var fieldsUsePermFlagSet = []; +var noCond = "{\"entity\":\"" + vars.get("$field.ENTITY") + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; // gets all names of the entites which have the 'usePermission'-flag set (positive list) // gets all names of the fields which have the 'usePermission'-flag set (positive list) @@ -110,15 +111,16 @@ result.object(res.sort(sortResultsAfterAccessTypes)); function prepareResultArray(pEntry, pRes) { var rootPermission = ""; if (pEntry.accesstype != "E") { - if (pEntry.accesstype == "F" && pEntry.cond != "") { - rootPermission = PermissionUtil.getRootFieldPermission(pEntry.permissionid); + if (pEntry.accesstype == "F" && pEntry.cond != "" && pEntry.cond != noCond) { + rootPermission = PermissionUtil.getPermissionWithoutCond(PermissionUtil.getParentSet(pEntry.permissionid)); if (rootPermission == "") { - rootPermission = PermissionUtil.getRootPermission(pEntry.permissionid); + rootPermission = PermissionUtil.getPermissionRoot(pEntry.permissionid); } } else - rootPermission = PermissionUtil.getRootPermission(pEntry.permissionid); + rootPermission = PermissionUtil.getPermissionRoot(pEntry.permissionid); } - pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, sortActions(pEntry.action.split(","), pEntry.accesstype).join(","), pEntry.accesstype, pEntry.condtype, rootPermission]); + pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, + sortActions(pEntry.action.split(","), pEntry.accesstype).join(","), pEntry.accesstype, pEntry.condtype, rootPermission]); return pRes; } diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js index 03032f4d74eaf6b7a7e38ddc8c66c55e8fcfd3c1..9e14cbbfbfc23c51aec6e92da12ecbb3f186a563 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -7,8 +7,8 @@ import("Permission_lib"); var permId = vars.get("$field.UID"); var accessType = vars.get("$field.ACCESSTYPE"); -var parentPermSetId = PermissionUtil.getParentPermissionSet(permId); -var linkedActions = PermissionUtil.getAllChildPermissionActions(permId); +var parentPermSetId = PermissionUtil.getParentSet(permId); +var linkedActions = PermissionUtil.getActionsOfSet(permId); var alias = SqlUtils.getSystemAlias(); var sqlCondDelAction = SqlCondition.begin() @@ -23,10 +23,10 @@ var sqlCondDelPermSet = SqlCondition.begin() switch (accessType) { case "E": - var allPermSets = PermissionUtil.getAllChildPermissionSets(parentPermSetId); + var allPermSets = PermissionUtil.getChildSetsOfSet(parentPermSetId); allPermSets.push(parentPermSetId); - var allPerms = PermissionUtil.getAllPermissions(allPermSets); - var allPermActions = PermissionUtil.getAllPermissionActions(allPerms); + var allPerms = PermissionUtil.getPermissions(allPermSets); + var allPermActions = PermissionUtil.getActions(allPerms); sqlCondDelAction = SqlCondition.begin() .and("ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID in ('" + allPermActions.join("','") + "')") @@ -48,7 +48,7 @@ switch (accessType) { break; } -if (PermissionUtil.permSetIsEmpty(parentPermSetId)) { +if (PermissionUtil.setIsEmpty(parentPermSetId)) { db.deleteData("ASYS_PERMISSIONSET", sqlCondDelPermSet, alias); // delete empty permissionset } diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js index d74cc3ec7c6b9b91038fb9cf8c52c7793098061a..25b19a3327de2ca40aa83018dfd22d69ce2bc42e 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js @@ -22,7 +22,7 @@ var condition = vars.get("$field.CONDITION"); if (checkInput([role, entity, accesstype, condtype])) { // permission set - var permissionsetid = PermissionUtil.getPermissionSet(role, entity, accesstype, field); + var permissionsetid = PermissionUtil.getSet(role, entity, accesstype, field); if (permissionsetid == "") { // no fitting permissionset found - insert new permissionset @@ -30,16 +30,16 @@ if (checkInput([role, entity, accesstype, condtype])) { if (accesstype == "E") { rootpermissionset = ""; } else { - rootpermissionset = PermissionUtil.getRootPermissionSet(role, entity); + rootpermissionset = PermissionUtil.getSetRoot(role, entity); } - permissionsetid = PermissionUtil.insertNewPermissionSet(rootpermissionset, entity, role, field, accesstype); + permissionsetid = PermissionUtil.insertSet(rootpermissionset, entity, role, field, accesstype); } // permission var existingPerm = PermissionUtil.getPermission(role, entity, field, accesstype, condition); if (existingPerm == "") { // no existing perm found -> insert - PermissionUtil.insertNewPermission(permissionsetid, condition, condtype, permissionid); + PermissionUtil.insertPermission(permissionsetid, condition, condtype, permissionid); } else { // existing perm found -> update PermissionUtil.updateIfDiff(existingPerm, permissionsetid, "ASYS_PERMISSIONSET_ID", tablename); diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js index d45ba525a2cd7a43f2ca2710b0038ba6f70b388d..cacdde1e352e2d9859d8f39f20fb9e2f3af4378c 100644 --- a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js @@ -25,14 +25,12 @@ if (diff.length > 0) { // insert the different actions cols = db.getColumns(table, alias); for each (var action in actionNew) { - PermissionUtil.insertNewPermissionAction(permissionid, action); + PermissionUtil.insertAction(permissionid, action); } } PermissionUtil.updateIfDiff(permissionid, permCond, "COND", "ASYS_PERMISSION"); // updates COND if the new cond is different to COND in DB PermissionUtil.updateIfDiff(permissionid, permCondType, "CONDTYPE", "ASYS_PERMISSION"); // updates CONDTYPE if the new condtype is different to CONDTYPE in DB -// entity of children has to be changed/deleted/ignored? -// PermissionUtil.updateIfDiff(PermissionUtil.getParentPermissionSet(permissionid), entityNew, "ENTITY_ID", "ASYS_PERMISSIONSET"); neon.refreshAll(); tools.clearPermissionCache(); \ No newline at end of file diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js index 2c418c0fb630dbf1d8b4981a72b61279ed8919a1..3e15f2cfb644d46d4d4177578c9542d5614fb3ab 100644 --- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("Sql_lib"); import("system.project"); import("system.vars"); import("system.result"); @@ -9,6 +10,7 @@ var roleTitle = ""; var entityTitle = ""; var sqlCond = ""; var sqlStr = ""; +let alias = SqlUtils.getSystemAlias(); var roleInternalEveryone = "INTERNAL_EVERYONE"; var entitiesMetaData = project.getDataModels(project.DATAMODEL_KIND_ENTITY); @@ -20,8 +22,8 @@ for each (let entityMetaData in entitiesMetaData) { entitiesUsePermFlagSet.push(entityMetaData[0]) if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) { // no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, edit, delete - var noAccessPermissionSetIdEntity = PermissionUtil.insertNewPermissionSet("", entityMetaData[0], roleInternalEveryone, "", "E"); - PermissionUtil.insertNewPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E" + var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E"); + PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E" } } } @@ -42,11 +44,12 @@ var rolesOrEntities = db.array(db.COLUMN, sqlStr); var entityPermSetId = ""; for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { - entityPermSetId = PermissionUtil.getRootPermissionSet(roleTitle, entry); + entityPermSetId = PermissionUtil.getSetRoot(roleTitle, entry); } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { - entityPermSetId = PermissionUtil.getRootPermissionSet(entry, entityTitle); + entityPermSetId = PermissionUtil.getSetRoot(entry, entityTitle); } - var recordPermSetId = PermissionUtil.getChildRecordPermissionSet(entityPermSetId); + var recordPermSetId = db.array(db.COLUMN, SqlCondition.begin().and("ASYS_PERMISSIONSET_ID = '" + entityPermSetId + "'").and("ACCESSTYPE = 'R'") + .buildSql("select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET"), alias); var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]; // default entity permissions @@ -63,16 +66,16 @@ for each (var entry in rolesOrEntities) { // entry contains either a role or an result.object(res); function prepareOverview(pPermSetId, pCurrOverview, pMode) { - var permId, defaultPermActionId, conditionalPermActionId = [], currOverview; + var conditionalPermActionId = [], currOverview; switch (pMode) { case "default": - permId = PermissionUtil.getDefaultPermission(pPermSetId); - defaultPermActionId = PermissionUtil.getPermissionAction(permId); + var permId = PermissionUtil.getPermissionWithoutCond(pPermSetId); + var defaultPermActionId = PermissionUtil.getActions([permId]); currOverview = pCurrOverview; if (PermissionUtil.getPermissionCondType(permId) == "true") { for each (let actionSets in defaultPermActionId) { - switch (PermissionUtil.resolvePermissionActionId(actionSets)) { + switch (PermissionUtil.resolveActionId(actionSets)) { case "view": currOverview[2] = "VAADIN:CIRCLE"; break; @@ -93,15 +96,15 @@ function prepareOverview(pPermSetId, pCurrOverview, pMode) { } break; case "conditional": - permId = PermissionUtil.getConditionalPermission(pPermSetId); - for each (let perm in permId) { - conditionalPermActionId.push(PermissionUtil.getPermissionAction(perm)); + var permIds = PermissionUtil.getPermissionWithCond(pPermSetId); + for each (let permId in permIds) { + conditionalPermActionId.push(PermissionUtil.getActions([permId])); } currOverview = pCurrOverview; for each (let actionSets in conditionalPermActionId) { for each (let action in actionSets) { - switch (PermissionUtil.resolvePermissionActionId(action)) { + switch (PermissionUtil.resolveActionId(action)) { case "view": currOverview[2] = "VAADIN:CIRCLE_THIN"; break; diff --git a/neonContext/Person/Person.aod b/neonContext/Person/Person.aod index 814818bacfb89505c438381811ca595b54957bd3..7a804792a5b5bf5fe6bf80f20f2d8bb40b7f8ed7 100644 --- a/neonContext/Person/Person.aod +++ b/neonContext/Person/Person.aod @@ -3,6 +3,7 @@ <name>Person</name> <title>Contact</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:USERS</icon> <mainview>PersonMain_view</mainview> <filterview>PersonFilter_view</filterview> <editview>PersonEdit_view</editview> diff --git a/neonContext/Product/Product.aod b/neonContext/Product/Product.aod index a91bfe8529ca21610ebc1edcea60092691199a93..48e0689ad689e2e10a99877fb4ab129bac24b0e6 100644 --- a/neonContext/Product/Product.aod +++ b/neonContext/Product/Product.aod @@ -3,6 +3,7 @@ <name>Product</name> <title>Product</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:HAMMER</icon> <mainview>ProductMain_view</mainview> <filterview>ProductFilter_view</filterview> <editview>ProductEdit_view</editview> diff --git a/neonView/AttributeTree_view/AttributeTree_view.aod b/neonView/AttributeTree_view/AttributeTree_view.aod index 4ae97a5345fa9c9edb737b8180dff19243b3ee16..544cab8acec1088f10cbb63119e33cb7a15bbb7c 100644 --- a/neonView/AttributeTree_view/AttributeTree_view.aod +++ b/neonView/AttributeTree_view/AttributeTree_view.aod @@ -12,7 +12,6 @@ <name>Attributes</name> <parentField>ATTRIBUTE_PARENT_ID</parentField> <titleField>ATTRIBUTE_NAME</titleField> - <descriptionField>ATTRIBUTE_TYPE</descriptionField> <entryAction>openDetails</entryAction> <entityField>#ENTITY</entityField> <isCreatable v="false" /> diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod index 751828e39b362d14374f2d7dcdf4bf6417f2168c..410733ddd8d5fc98c1af61d7f16d2f89de442860 100644 --- a/neonView/CampaignEdit_view/CampaignEdit_view.aod +++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod @@ -31,6 +31,10 @@ <name>88f13d08-d164-4bac-95fb-713d47ba255b</name> <entityField>STATUS</entityField> </entityFieldLink> + <entityFieldLink> + <name>e5e42cfb-094e-4352-8e53-0f15002d1394</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> <entityFieldLink> <name>114121d3-093a-40e7-9e0e-f187c9eaa5f1</name> <entityField>DESCRIPTION</entityField> diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod index 3ed1410f3b2246bcc7f3460c017b934b0560478c..71a1fd0f5fe754e552886972b7f6ca9d2c6223c0 100644 --- a/neonView/CampaignPreview_view/CampaignPreview_view.aod +++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod @@ -47,10 +47,13 @@ <genericViewTemplate> <name>Description</name> <showDrawer v="true" /> - <hideLabels v="true" /> <entityField>#ENTITY</entityField> <title>Beschreibung</title> <fields> + <entityFieldLink> + <name>4f429cd5-2a89-44fc-8c25-37a5350a711f</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> <entityFieldLink> <name>d7c993ff-9696-4de8-9ba5-fc7c92a1a22b</name> <entityField>DESCRIPTION</entityField> diff --git a/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod b/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod index 61a5467d847ad84f6acea38007724fd0ae7a8896..12ed039849a7cee4f5ad7cb03f39ad4e2231e702 100644 --- a/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod +++ b/neonView/SalesprojectMilestoneChartPhase_view/SalesprojectMilestoneChartPhase_view.aod @@ -13,9 +13,9 @@ <multiDataChartViewTemplate> <name>MilestoneChart</name> <chartType>COLUMN</chartType> - <xAxis>VALUE</xAxis> + <xAxis>MILESTONEVALUE</xAxis> <yAxis>DaysCount</yAxis> - <categoryField>TYPE</categoryField> + <categoryField>KIND</categoryField> <entityField>#ENTITY</entityField> </multiDataChartViewTemplate> </children> diff --git a/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod b/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod index e1d34f9cad28326fb273d2915714764331311413..d38a2ed9e98ae55eef05dcb5cea30a3127cd00aa 100644 --- a/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod +++ b/neonView/SalesprojectMilestoneChartState_view/SalesprojectMilestoneChartState_view.aod @@ -13,9 +13,9 @@ <multiDataChartViewTemplate> <name>MilestoneChart</name> <chartType>COLUMN</chartType> - <xAxis>VALUE</xAxis> + <xAxis>MILESTONEVALUE</xAxis> <yAxis>DaysCount</yAxis> - <categoryField>TYPE</categoryField> + <categoryField>KIND</categoryField> <entityField>#ENTITY</entityField> </multiDataChartViewTemplate> </children> diff --git a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod index cda0efb18582d7cffb57d707d990fe6b5f4e457c..a90d277d3bb575d91d181d4345cf311528d1a510 100644 --- a/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod +++ b/neonView/SalesprojectSourceEdit_view/SalesprojectSourceEdit_view.aod @@ -19,8 +19,8 @@ <entityField>ENTRYDATE</entityField> </entityFieldLink> <entityFieldLink> - <name>594e9e35-cf0c-45b6-a32c-885d442adad4</name> - <entityField>SOURCE</entityField> + <name>3464b72a-8081-49a8-a37f-eda0290bda4c</name> + <entityField>TOUCHPOINT</entityField> </entityFieldLink> <entityFieldLink> <name>f97539fd-70ec-44a0-9d49-01fe829f8d81</name> diff --git a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod index 60ad7534c6f7fb9eb093ad4ac2b20bb65521f8b1..f1bd13ccdb0eea8b2d2c3ad5ce8592c1f7c8b58b 100644 --- a/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod +++ b/neonView/SalesprojectSourceFilter_view/SalesprojectSourceFilter_view.aod @@ -28,7 +28,7 @@ </neonTableColumn> <neonTableColumn> <name>5e672c0f-af11-46e2-8c25-8c9bd3f153f1</name> - <entityField>SOURCE</entityField> + <entityField>TOUCHPOINT</entityField> </neonTableColumn> <neonTableColumn> <name>304ed9dd-0f3d-45b2-9195-cc145775f16d</name> diff --git a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod index a79542f89b7ba9b58447f5c27724dddb531a137f..c0b53ad807cf106099ad6e8d004f378c89515e6a 100644 --- a/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod +++ b/neonView/SalesprojectSourcePreview_view/SalesprojectSourcePreview_view.aod @@ -11,7 +11,7 @@ <children> <cardViewTemplate> <name>Header</name> - <titleField>SOURCE</titleField> + <titleField>TOUCHPOINT</titleField> <descriptionField>ENTRYDATE</descriptionField> <entityField>#ENTITY</entityField> </cardViewTemplate> diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js index 1d8f9942319398d67bcabdfc7751299a6eb594d9..d06b7295339730b1364fe34b7c1bd63a4d21b787 100644 --- a/process/Permission_lib/process.js +++ b/process/Permission_lib/process.js @@ -17,92 +17,56 @@ function PermissionUtil () {} /** * Returns the ids of all subordinated permission sets of a given parent permission set. * - * @param {String} pPermissionSetId the id of the parent permission set + * @param {String} pSetId id of the parent permission set * * @result {String[]} array with the ids of every subordinated permission set. The result can never be null. */ - PermissionUtil.getAllChildPermissionSets = function (pPermissionSetId) + PermissionUtil.getChildSetsOfSet = function (pSetId) { return db.array(db.COLUMN, SqlCondition.begin() - .and("ASYS_PERMISSIONSET_ID = '" + pPermissionSetId + "'") + .and("ASYS_PERMISSIONSET_ID = '" + pSetId + "'") .buildSql("select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET") , alias); } - /** - * Returns the id of the subordinated permission set with accesstype 'record' of a given permission set. - * - * @param {String} pPermissionSetId the id of the parent permission set - * - * @result {String} id of subordinated permission set. The result can never be null. - */ - PermissionUtil.getChildRecordPermissionSet = function (pPermissionSetId) - { - return db.array(db.COLUMN, SqlCondition.begin() - .and("ASYS_PERMISSIONSET_ID = '" + pPermissionSetId + "'") - .and("ACCESSTYPE = 'R'") - .buildSql("select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET") - , alias); - } - - /** - * Returns all subordinated permissions of a given permission set. - * - * @param {String} pPermissionSetId the id of the parent permission set - * - * @result {String[]} array with the ids of every subordinated permission. The result can never be null. - */ - PermissionUtil.getAllChildPermissions = function (pPermissionSetId) - { - return db.array(db.COLUMN, SqlCondition.begin() - .and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = '" + pPermissionSetId + "'") - .buildSql("select ASYS_PERMISSION.ASYS_PERMISSIONID from ASYS_PERMISSION" - + " join ASYS_PERMISSIONSET on ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = ASYS_PERMISSION.ASYS_PERMISSIONSET_ID") - , alias); - } - /** * Returns all subordinated permission actions of a given permission set. * - * @param {String} pPermissionSetId the id of the parent permission set + * @param {String} pSetId id of the parent permission set * * @result {String[]} array with the ids of every subordinated permission action. The result can never be null. */ - PermissionUtil.getAllChildPermissionActions = function (pPermissionSetId) + PermissionUtil.getActionsOfSet = function (pSetId) { return db.array(db.COLUMN, SqlCondition.begin() - .and("ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = '" + pPermissionSetId + "'") + .and("ASYS_PERMISSION.ASYS_PERMISSIONSET_ID = '" + pSetId + "'") .buildSql("select ASYS_PERMISSIONACTION.ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION" + " join ASYS_PERMISSION on ASYS_PERMISSION.ASYS_PERMISSIONID = ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID") , alias); } - + /** - * Returns all subordinated permission actions of a given permission. + * Returns all permission actions of the given permissions. * - * @param {String} pPermissionId the id of the parent permission + * @param {String[]} pPermIds the ids of the permissions * - * @result {String[]} array with the ids of every subordinated permission action. The result can never be null. + * @result {String[]} returns ids of all permission actions. The result can never be null. */ - PermissionUtil.getAllChildPermissionActions = function (pPermissionId) - { - return db.array(db.COLUMN, SqlCondition.begin() - .and("ASYS_PERMISSION_ID = '" + pPermissionId + "'") - .buildSql("select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION") - , alias); + PermissionUtil.getActions = function(pPermIds) { + return db.table("select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION where ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID in ('" + pPermIds.join("','") + "')", alias); } /** * Returns the action a given permission action id. * - * @param {String} pPermissionActionId the id of the action + * @param {String} pActionId id of the action * - * @result {String} action name as readable string of the given permission action id. Never 'null', empty string if there is no result. + * @result {String} title of action as readable string of the given action id. Never 'null', empty string if there is no result. */ - PermissionUtil.resolvePermissionActionId = function (pPermissionActionId) + PermissionUtil.resolveActionId = function (pActionId) { return db.cell(SqlCondition.begin() - .and("ASYS_PERMISSIONACTIONID = '" + pPermissionActionId + "'") + .and("ASYS_PERMISSIONACTIONID = '" + pActionId + "'") .buildSql("select ASYS_PERMISSIONACTION.ACTION from ASYS_PERMISSIONACTION") , alias); } @@ -131,13 +95,13 @@ function PermissionUtil () {} } /** - * Returns the first index at which a given permissionid can be found in the array, or -1 if it is not present. - * - * @param {String} pPermId the id of the permission + * Returns the first index at which a given permissionid can be found in an array, or -1 if it is not present. * * @param {String[]} pPermTable permission table - * - * @result {int} returns the position (index) of the searched permission in the table, otherwise returns -1 if not found + * + * @param {String} pPermId id of the permission + * + * @result {int} returns position (index) of the searched permission in the table, otherwise returns -1 if not found */ PermissionUtil.indexOfPermId = function(pPermTable, pPermId) { var notFound = -1; @@ -167,7 +131,7 @@ function PermissionUtil () {} /** * Checks if the given string is different to the string of a column in the given database table. * - * @param {String} pId the id + * @param {String} pId id of DB entry * * @param {String} pString string which has to be checked if different * @@ -186,7 +150,7 @@ function PermissionUtil () {} /** * Updates the value of the column in table if the values are different. * - * @param {String} pId the id + * @param {String} pId id of DB entry * * @param {String} pValue string which gets checked if different * @@ -209,9 +173,9 @@ function PermissionUtil () {} /** * Gets the number of permissions which are linked to the given entity. * - * @param {String} pEntityName The name of the entity + * @param {String} pEntityName name of the entity * - * @result {Integer} returns the number of permissions linked to the entity. + * @result {Integer} returns number of permissions linked to the entity. */ PermissionUtil.getNumberOfPermissions = function(pEntityName) { var table = "ASYS_PERMISSIONSET"; @@ -222,101 +186,71 @@ function PermissionUtil () {} /** * Gets the default permission of the root permission set. * - * @param {String} pPermId the id of the permission + * @param {String} pPermId id of the permission * - * @result {String} returns the id of the default permission of the root permission set. Never 'null', empty string if there is no result. + * @result {String} returns id of the default permission of the root permission set. Never 'null', empty string if there is no result. */ - PermissionUtil.getRootPermission = function(pPermId) { - var sqlStr = "select ASYS_PERMISSIONSET_ID from ASYS_PERMISSION where ASYS_PERMISSIONID = '" + pPermId + "'"; - var parentPermSet = db.array(db.ROW, sqlStr, alias); + PermissionUtil.getPermissionRoot = function(pPermId) { + var parentSet = [PermissionUtil.getParentSet(pPermId)]; - while (parentPermSet[0] != "") { - sqlStr = "select ASYS_PERMISSIONSET_ID, ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + parentPermSet[0] + "'"; - parentPermSet = db.array(db.ROW, sqlStr, alias); + while (parentSet[0] != "") { + let sqlStr = "select ASYS_PERMISSIONSET_ID, ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + parentSet[0] + "'"; + parentSet = db.array(db.ROW, sqlStr, alias); } - sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION where ASYS_PERMISSIONSET_ID = '" + parentPermSet[1] + "'"; - return db.cell(sqlStr, alias); - } - - /** - * Gets the default field permission of the root field permission set. - * - * @param {String} pPermId the id of the field permission - * - * @result {String} returns the id of the default field permission of the root field permission set. Never 'null', empty string if there is no result. - */ - PermissionUtil.getRootFieldPermission = function(pPermId) { - var sqlStr = "select ASYS_PERMISSIONSET_ID from ASYS_PERMISSION where ASYS_PERMISSIONID = '" + pPermId + "'"; - var parentFieldPermSet = db.array(db.ROW, sqlStr, alias); - - sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION where ASYS_PERMISSIONSET_ID = '" + parentFieldPermSet + "' and cond is null"; - return db.cell(sqlStr, alias); + return PermissionUtil.getPermissionWithoutCond(parentSet[1]); } /** * Gets the default permission of a given permission set. * - * @param {String} pPermSetId the id of the permission set + * @param {String} pSetId id of the permission set * - * @result {String} returns the id of the default permission of a given permission set. Never 'null', empty string if there is no result. + * @result {String} returns id of default permission of given set. Never 'null', empty string if there is no result. */ - PermissionUtil.getDefaultPermission = function(pPermSetId) { - var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pPermSetId + "'"; + PermissionUtil.getPermissionWithoutCond = function(pSetId) { + var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'"; var entityName = db.cell(sqlStr, alias); var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION" - + " where ASYS_PERMISSIONSET_ID = '" + pPermSetId + "'" + + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'" + " and (COND is null or COND like '%" + noCond + "%')"; return db.cell(sqlStr, alias); } /** - * Gets the conditional permissions of a given permission set. + * Gets the permissions with conditions of a given permission set. * - * @param {String} pPermSetId the id of the permission set + * @param {String} pSetId the id of the permission set * - * @result {String[]} returns the ids of the conditional permissions of a given permission set. The result can never be null. + * @result {String[]} returns the ids of permissions with conditions of a given permission set. The result can never be null. */ - PermissionUtil.getConditionalPermission = function(pPermSetId) { - var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pPermSetId + "'"; + PermissionUtil.getPermissionWithCond = function(pSetId) { + var sqlStr = "select ENTITY_ID from ASYS_PERMISSIONSET where ASYS_PERMISSIONSETID = '" + pSetId + "'"; var entityName = db.cell(sqlStr, alias); var noCond = "{\"entity\":\"" + entityName + "\",\"filter\":{\"type\":\"group\",\"operator\":\"AND\",\"childs\":[]}}"; sqlStr = "select ASYS_PERMISSIONID from ASYS_PERMISSION" - + " where ASYS_PERMISSIONSET_ID = '" + pPermSetId + "'" + + " where ASYS_PERMISSIONSET_ID = '" + pSetId + "'" + " and COND is not null and COND not like '" + noCond + "'"; return db.table(sqlStr, alias); } - /** - * Gets the permission actions of a given permission. - * - * @param {String} pPermId the id of the permission - * - * @result {String[]} returns the ids of linked actions of a given permission. The result can never be null. - */ - PermissionUtil.getPermissionAction = function(pPermId) { - var sqlStr = "select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION" - + " where ASYS_PERMISSION_ID = '" + pPermId + "'" - return db.table(sqlStr, alias); - } - /** * Gets the permission set id of a given role-entity-accesstype-combination. * - * @param {String} pRole the name of the role + * @param {String} pRole name of the role * - * @param {String} pEntity the name of the entity + * @param {String} pEntity name of the entity * - * @param {String} pAccessType the name of the access type (E,R,F) + * @param {String} pAccessType name of the access type (E,R,F) * - * @param {String} pField the name of the field + * @param {String} pField name of the field * - * @result {String} returns the id of the matching permission set. The result can never be null. + * @result {String} returns id of the matching permission set. The result can never be null. */ - PermissionUtil.getPermissionSet = function(pRole, pEntity, pAccessType, pField) { + PermissionUtil.getSet = function(pRole, pEntity, pAccessType, pField) { var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET" + " where ROLE_ID = '" + pRole + "' and ENTITY_ID = '" + pEntity + "' and ACCESSTYPE = '" + pAccessType + "'"; if (pField != null && pField != "" && pField != undefined) { @@ -328,13 +262,13 @@ function PermissionUtil () {} /** * Gets the root permission set of a entity-role-combination. * - * @param {String} pRole the id of a role + * @param {String} pRole id of a role * - * @param {String} pEntity the id of an entity + * @param {String} pEntity id of an entity * - * @result {String} returns the id of the root permission set of the given entity-role-combination. Never 'null', empty string if there is no result. + * @result {String} returns id of the root permission set of the given entity-role-combination. Never 'null', empty string if there is no result. */ - PermissionUtil.getRootPermissionSet = function(pRole, pEntity) { + PermissionUtil.getSetRoot = function(pRole, pEntity) { var sqlStr = "select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET" + " where ROLE_ID = '" + pRole + "' and ENTITY_ID = '" + pEntity +"' and ACCESSTYPE = 'E'"; return db.cell(sqlStr, alias); @@ -343,27 +277,27 @@ function PermissionUtil () {} /** * Gets the parent permission set of a permission. * - * @param {String} pPermId the id of the permission + * @param {String} pPermId id of the permission * - * @result {String} returns the id of the parent permission set of the given permission. Never 'null', empty string if there is no result. + * @result {String} returns id of the parent set of the given permission. Never 'null', empty string if there is no result. */ - PermissionUtil.getParentPermissionSet = function(pPermId) { + PermissionUtil.getParentSet = function(pPermId) { var sqlStr = "select ASYS_PERMISSIONSET_ID from ASYS_PERMISSION" + " where ASYS_PERMISSIONID = '" + pPermId + "'"; return db.cell(sqlStr, alias); } /** - * Checks if the given permission has any children left. + * Checks if the given permission set has any children left. * - * @param {String} pPermSetId the id of the permission set + * @param {String} pSetId id of the permission set * * @result {Boolean} returns true if permission set has no children, otherwise false */ - PermissionUtil.permSetIsEmpty = function(pPermSetId) { - var subSets = PermissionUtil.getAllChildPermissionSets(pPermSetId); - var subPerms = PermissionUtil.getAllChildPermissions(pPermSetId); - var subActions = PermissionUtil.getAllChildPermissionActions(pPermSetId); + PermissionUtil.setIsEmpty = function(pSetId) { + var subSets = PermissionUtil.getChildSetsOfSet(pSetId); + var subPerms = PermissionUtil.getPermissions(pSetId); + var subActions = PermissionUtil.getActionsOfSet(pSetId); if (subActions.length == 0 && subPerms == 0 && subSets == 0) return true; @@ -373,23 +307,28 @@ function PermissionUtil () {} /** * Returns all permissions of the given permission sets. * - * @param {String[]} pPermSetIds the ids of the permission sets + * @param {String[]} pSetIds the ids of the permission sets * - * @result {String[]} returns ids of all permissions. The result can never be null. + * @result {String[]} array with ids of all subordinated permissions. The result can never be null. */ - PermissionUtil.getAllPermissions = function(pPermSetIds) { - return db.table("select ASYS_PERMISSIONID from ASYS_PERMISSION where ASYS_PERMISSION.ASYS_PERMISSIONSET_ID in ('" + pPermSetIds.join("','") + "')", alias); + PermissionUtil.getPermissions = function(pSetIds) { + return db.table("select ASYS_PERMISSIONID from ASYS_PERMISSION where ASYS_PERMISSION.ASYS_PERMISSIONSET_ID in ('" + pSetIds.join("','") + "')", alias); } - + /** - * Returns all permission actions of the given permissions. + * Returns all subordinated permissions of a given permission set. * - * @param {String[]} pPermIds the ids of the permissions + * @param {String} pSetId the id of the parent permission set * - * @result {String[]} returns ids of all permission actions. The result can never be null. + * @result {String[]} array with ids of all subordinated permission. The result can never be null. */ - PermissionUtil.getAllPermissionActions = function(pPermIds) { - return db.table("select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION where ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID in ('" + pPermIds.join("','") + "')", alias); + PermissionUtil.getPermissions = function (pSetId) + { + return db.array(db.COLUMN, SqlCondition.begin() + .and("ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = '" + pSetId + "'") + .buildSql("select ASYS_PERMISSION.ASYS_PERMISSIONID from ASYS_PERMISSION" + + " join ASYS_PERMISSIONSET on ASYS_PERMISSIONSET.ASYS_PERMISSIONSETID = ASYS_PERMISSION.ASYS_PERMISSIONSET_ID") + , alias); } /** @@ -402,45 +341,45 @@ function PermissionUtil () {} PermissionUtil.getPermissionCondType = function(pPermId) { return db.cell("select CONDTYPE from ASYS_PERMISSION where ASYS_PERMISSION.ASYS_PERMISSIONID = '" + pPermId + "'", alias); } - + /** * Inserts a new instance of a permission set into ASYS_PERMISSIONSET. * - * @param {String} pParentPermSet The parent permission set, empty if root node + * @param {String} pParentPermSetId parent permission set, empty if root node * - * @param {String} pEntity The entity to which the PermissionSet is linked, mandatory + * @param {String} pEntity entity to which the PermissionSet is linked, mandatory * - * @param {String} pRole The Role to which the PermissionSet is linked, mandatory + * @param {String} pRole Role to which the PermissionSet is linked, mandatory * - * @param {String} pField The Field to which the PermissionSet is linked, empty if no field permission + * @param {String} pField Field to which the PermissionSet is linked, empty if no field permission * * @param {String} pAccessType Entity, Record or Field (E, R, F), mandatory * - * @result {Integer} returns the id of the inserted permission set + * @result {Integer} returns id of the inserted permission set */ - PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole, pField, pAccessType) { + PermissionUtil.insertSet = function(pParentPermSetId, pEntity, pRole, pField, pAccessType) { var table = "ASYS_PERMISSIONSET"; var cols = db.getColumns(table, alias); - var permsetid = util.getNewUUID(); - var vals = [pAccessType, permsetid, pParentPermSet, pEntity, pField, pRole]; + var setId = util.getNewUUID(); + var vals = [pAccessType, setId, pParentPermSetId, pEntity, pField, pRole]; db.insertData(table, cols, null, vals, alias); - return permsetid; + return setId; } /** * Inserts a new instance of a permission into ASYS_PERMISSION. * - * @param {String} pParentPermSet The parent permission set, mandatory + * @param {String} pParentSetId parent permission set, mandatory * - * @param {String} pCond The condition of the permission, empty if no condition + * @param {String} pCond condition of the permission, empty if no condition * - * @param {String} pCondType The Condition Type of the permission, should nearly always be "true" + * @param {String} pCondType condition Type of the permission, should nearly always be "true" * - * @param {String} pPermId The id of the new permission (can be empty/null) + * @param {String} pPermId id of the new permission (can be empty/null) * - * @result {Integer} returns the id of the inserted permission + * @result {Integer} returns id of the inserted permission */ - PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType, pPermId) { + PermissionUtil.insertPermission = function(pParentSetId, pCond, pCondType, pPermId) { var table = "ASYS_PERMISSION"; var cols = db.getColumns(table, alias); var permId; @@ -449,7 +388,7 @@ function PermissionUtil () {} } else { permId = util.getNewUUID(); } - var vals = [permId, pParentPermSet, pCond, pCondType]; + var vals = [permId, pParentSetId, pCond, pCondType]; db.insertData(table, cols, null, vals, alias); return permId; } @@ -457,42 +396,42 @@ function PermissionUtil () {} /** * Inserts a new instance of a permission action into ASYS_PERMISSIONACTION. * - * @param {String} pParentPerm The parent permission, mandatory + * @param {String} pParentPermId parent permission, mandatory * - * @param {String} pAction Action (view, create,...), mandatory + * @param {String} pAction title of action (view, create,...), mandatory * - * @param {String} pActionId The id of the new permission action + * @param {String} pActionId id of the new permission action * - * @result {Integer} returns the id of the inserted permission action, returns null if insert was not possible + * @result {Integer} returns id of the inserted permission action, returns null if insert was not possible */ - PermissionUtil.insertNewPermissionAction = function(pParentPerm, pAction, pActionId) { + PermissionUtil.insertAction = function(pParentPermId, pAction, pActionId) { var table = "ASYS_PERMISSIONACTION"; var cols = db.getColumns(table, alias); - var permactionid; - var sqlStr = "select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION where ASYS_PERMISSIONACTIONID = '" + pActionId + "'"; // if same id is already in db -> create new UID + var actionId; + var sqlStr = "select ASYS_PERMISSIONACTIONID from ASYS_PERMISSIONACTION where ASYS_PERMISSIONACTIONID = '" + pActionId + "'"; if (pActionId != null & pActionId != "" && pActionId != undefined && db.cell(sqlStr, alias) == "") { - permactionid = pActionId; + actionId = pActionId; } else { - permactionid = util.getNewUUID(); + actionId = util.getNewUUID(); // if same id is already in db -> create new UID } - var vals = [pAction, permactionid, pParentPerm]; + var vals = [pAction, actionId, pParentPermId]; if (db.insertData(table, cols, null, vals, alias) == 0) { return null; } - return permactionid; + return actionId; } /** * Returns the cond type of a permission. * - * @param {String} pPerm The permission, mandatory + * @param {String} pPermId id of the permission which condition type should be returned, mandatory * * @result {Integer} returns the cond type of a permission */ - PermissionUtil.getCondType = function(pPerm) { + PermissionUtil.getCondType = function(pPermId) { var table = "ASYS_PERMISSION"; - var sqlStr = "select CONDTYPE from " + table + " where ASYS_PERMISSIONID = '" + pPerm + "'"; + var sqlStr = "select CONDTYPE from " + table + " where ASYS_PERMISSIONID = '" + pPermId + "'"; return db.cell(sqlStr, alias); } @@ -503,7 +442,7 @@ function PermissionUtil () {} * * @result {Boolean} true if permission exists, otherwise false */ - PermissionUtil.existsPermission = function(pPermId) { + PermissionUtil.permissionExists = function(pPermId) { var table = "ASYS_PERMISSION"; var sqlStr = "select COUNT(*) from " + table + " where ASYS_PERMISSIONID = '" + pPermId + "'"; if (db.cell(sqlStr, alias) != "0") { @@ -549,17 +488,17 @@ function PermissionUtil () {} /** * Returns permissionid of the permission with fitting parameters, otherwise returns empty string * - * @param {String} pRole Name of the role + * @param {String} pRole name of the role * - * @param {String} pEntity Name of the entity + * @param {String} pEntity name of the entity * - * @param {String} pField Name of the field + * @param {String} pField name of the field * - * @param {String} pAccesstype Accesstype (E,F,R) + * @param {String} pAccesstype accesstype (E,F,R) * - * @param {String} pCondition The condition (Filter in JSON-format) + * @param {String} pCondition condition (Filter in JSON-format) * - * @param {String} pCondtype Type of the condition (true/false) + * @param {String} pCondtype type of the condition (true/false) * * @result {String} Returns the id of the permission with fitting parameters, otherwise returns empty string, can never be null * @@ -596,13 +535,13 @@ function PermissionUtil () {} /** * Deletes a permission action from ASYS_PERMISSIONACTION. * - * @param {String} pPermActionId The permission action id which should be deleted, mandatory + * @param {String} pActionId permission action id which should be deleted, mandatory * - * @result {Integer} returns the number of deleted records + * @result {Integer} returns number of deleted records */ - PermissionUtil.deletePermissionAction = function(pPermActionId) { + PermissionUtil.deleteAction = function(pActionId) { var table = "ASYS_PERMISSIONACTION"; - var cond = " ASYS_PERMISSIONACTIONID = '" + pPermActionId + "'"; + var cond = " ASYS_PERMISSIONACTIONID = '" + pActionId + "'"; return db.deleteData(table, cond, alias); } diff --git a/process/autostartNeon/process.js b/process/autostartNeon/process.js index ff0ca7831fc9a39fd0b7a1cd45f1899a9ff75570..91769577801a3143e8c682994d529f71287d0578 100644 --- a/process/autostartNeon/process.js +++ b/process/autostartNeon/process.js @@ -29,8 +29,8 @@ for each (let entityMetaData in entitiesMetaData) { entitiesUsePermFlagSet.push(entityMetaData[0]) if (PermissionUtil.getNumberOfPermissions(entityMetaData[0]) == 0) { // no permissions found for the given entity -> create permissionset for role INTERNAL_EVERYONE with five X's for view, create, read, update, delete - var noAccessPermissionSetIdEntity = PermissionUtil.insertNewPermissionSet("", entityMetaData[0], roleInternalEveryone, "", "E"); - PermissionUtil.insertNewPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E" + var noAccessPermissionSetIdEntity = PermissionUtil.insertSet("", entityMetaData[0], roleInternalEveryone, "", "E"); + PermissionUtil.insertPermission(noAccessPermissionSetIdEntity, "", "false"); // false is an indicator for PermissionDetails so the user can create a new PermissionSet on access level "E" } } }