diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index fb04b3c8a9196fd01e846f8628d7646faa565da6..3e692671346939da2c53db11494ce31f0edff7af 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -2131,6 +2131,447 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>SALESPROJECT</name> + <dbName></dbName> + <idColumn>SALESPROJECTID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>STARTDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VOLUME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2" /> + <size v="14" /> + <scale v="2" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ESTIMATIONVALUE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ESTIMATION</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></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</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></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENDDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PHASE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROJECTCODE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SALESPROJECTID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RELATION_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROJECTTITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="30" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>OFFER</name> + <dbName></dbName> + <idColumn>OFFERID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CURRENCY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LANGUAGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VAT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2" /> + <size v="14" /> + <scale v="2" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OFFERDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OFFERID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <title></title> + <description></description> + </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" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</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></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OFFERCODE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROBABILITY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RELATION_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NET</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2" /> + <size v="14" /> + <scale v="2" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index aa39b840b353c139a837a6a28337a1a1a92e7c45..dc3d3dc4aa6a7d2f568a65b02df309afb00dab13 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -6,7 +6,6 @@ <node name="CONTACTS" kind="123" title="Contactmanagement"> <icon>VAADIN:STAR</icon> <node name="Group1" kind="123" title=""> - <node name="_test_clientProcess" kind="103" /> <node name="Vertriebsdashboard" kind="10090" /> <node name="Calendar_context" kind="10077" /> <node name="Org_context" kind="10077" /> @@ -17,6 +16,8 @@ </node> <node name="SALES" kind="123" title="Sales"> <node name="Group2" kind="123" title=""> + <node name="Salesproject_context" kind="10077" /> + <node name="Offer_context" kind="10077" /> <node name="Contract_context" kind="10077" /> <node name="Product_context" kind="10077" /> <node name="INTERNAL_ADMINISTRATOR" kind="159" /> diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod index d46778722edfe6a9fc3d55fe5bcff975b77d25f3..a49173f1dc6b9064764981523b18c8cd586c6d3a 100644 --- a/entity/Contract_entity/Contract_entity.aod +++ b/entity/Contract_entity/Contract_entity.aod @@ -49,6 +49,7 @@ <contentType>DATE</contentType> <resolution>DAY</resolution> <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation> + <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValueChange.js</onValueChange> </entityField> <entityField> <name>CONTRACTSTATUS</name> diff --git a/entity/Contract_entity/entityfields/contractend/onValidation.js b/entity/Contract_entity/entityfields/contractend/onValidation.js index 72fee09352076294811c7eac2db46cd5c831244f..fdd3b12c5740cb61e9421a4f391bc8dd353190db 100644 --- a/entity/Contract_entity/entityfields/contractend/onValidation.js +++ b/entity/Contract_entity/entityfields/contractend/onValidation.js @@ -1,5 +1,3 @@ -import("system.logging"); -import("system.neon"); import("system.result"); import("system.vars"); import("Date_lib"); @@ -8,9 +6,5 @@ var dateUtils = new DateUtils(); var cEnd = vars.get("$local.value"); var cDue = vars.get("$field.CONTRACTDUE"); -//if (cDue > cEnd && cDue != "") -// neon.setFieldValue("$field.CONTRACTDUE", cEnd); -//TODO: auslagern in onValueChange - if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cEnd) === false) result.string(dateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractend/onValueChange.js b/entity/Contract_entity/entityfields/contractend/onValueChange.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5a41f5caef66e87d9275a21f81d09bea8b71b93d 100644 --- a/entity/Contract_entity/entityfields/contractend/onValueChange.js +++ b/entity/Contract_entity/entityfields/contractend/onValueChange.js @@ -0,0 +1,7 @@ +import("system.vars"); + +var cEnd = vars.get("$local.value"); +var cDue = vars.get("$field.CONTRACTDUE"); + +if (cDue > cEnd && cDue != "") + vars.set("$field.CONTRACTDUE", cEnd); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractstart/onValidation.js b/entity/Contract_entity/entityfields/contractstart/onValidation.js index 0e874184bf38bb2bb8c8d03229d6d0b8e89f98f7..f09d0ff9ed4d0de74280fb49485a7100abde3f15 100644 --- a/entity/Contract_entity/entityfields/contractstart/onValidation.js +++ b/entity/Contract_entity/entityfields/contractstart/onValidation.js @@ -7,9 +7,5 @@ var dateUtils = new DateUtils(); var cStart = vars.get("$local.value"); var cDue = vars.get("$field.CONTRACTDUE"); -//if (cDue < cStart && cDue != "") -// neon.setFieldValue("$field.CONTRACTDUE", cStart); -//TODO: auslagern in onValueChange - if (dateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.CONTRACTEND")) === false) result.string(dateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractstart/onValueChange.js b/entity/Contract_entity/entityfields/contractstart/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..c8715e611c2a54cd2cb3c2aa7acfa8975da87693 --- /dev/null +++ b/entity/Contract_entity/entityfields/contractstart/onValueChange.js @@ -0,0 +1,7 @@ +import("system.vars"); + +var cStart = vars.get("$local.value"); +var cDue = vars.get("$field.CONTRACTDUE"); + +if (cDue < cStart && cDue != "") + vars.set("$field.CONTRACTDUE", cStart); \ No newline at end of file diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..696f09f949d671927d4bea2c3a4e0ed26eb20264 --- /dev/null +++ b/entity/Offer_entity/Offer_entity.aod @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.0.3"> + <name>Offer_entity</name> + <title>Offer</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <alias>Data_alias</alias> + <recordContainerType>DB</recordContainerType> + <caption>Offer</caption> + <entityFields> + <entityIncomingField> + <name>#INCOMING</name> + </entityIncomingField> + <entityField> + <name>CURRENCY</name> + <tableName>OFFER</tableName> + <columnName>CURRENCY</columnName> + <caption>Currency</caption> + <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/currency/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <tableName>OFFER</tableName> + <columnName>DATE_EDIT</columnName> + <contentType>DATE</contentType> + <outputFormat>yyyy-MM-dd&apos;T&apos;HH:mm:ssZ</outputFormat> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <tableName>OFFER</tableName> + <columnName>DATE_NEW</columnName> + <contentType>DATE</contentType> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>LANGUAGE</name> + <tableName>OFFER</tableName> + <columnName>LANGUAGE</columnName> + <caption>Language</caption> + <mandatory v="true" /> + <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/language/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>NET</name> + <tableName>OFFER</tableName> + <columnName>NET</columnName> + <caption>Total net</caption> + </entityField> + <entityField> + <name>OFFERCODE</name> + <tableName>OFFER</tableName> + <columnName>OFFERCODE</columnName> + <caption>Offer number</caption> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offercode/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/Offer_entity/entityfields/offercode/onValidation.js</onValidation> + </entityField> + <entityField> + <name>OFFERDATE</name> + <tableName>OFFER</tableName> + <columnName>OFFERDATE</columnName> + <caption>Date</caption> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerdate/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>OFFERID</name> + <tableName>OFFER</tableName> + <columnName>OFFERID</columnName> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offerid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>PROBABILITY</name> + <tableName>OFFER</tableName> + <columnName>PROBABILITY</columnName> + <caption>Probability</caption> + <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>RELATION_ID</name> + <tableName>OFFER</tableName> + <columnName>RELATION_ID</columnName> + <caption>Contact / Company</caption> + <mandatory v="true" /> + </entityField> + <entityField> + <name>SALESPROJECT_ID</name> + <tableName>OFFER</tableName> + <columnName>SALESPROJECT_ID</columnName> + <caption>Salesproject</caption> + </entityField> + <entityField> + <name>STATUS</name> + <tableName>OFFER</tableName> + <columnName>STATUS</columnName> + <caption>Status</caption> + <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <tableName>OFFER</tableName> + <columnName>USER_EDIT</columnName> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <tableName>OFFER</tableName> + <columnName>USER_NEW</columnName> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>VAT</name> + <tableName>OFFER</tableName> + <columnName>VAT</columnName> + <caption>Total VAT</caption> + </entityField> + <entityField> + <name>IMAGE</name> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/image/valueProcess.js</valueProcess> + </entityField> + </entityFields> + <linkInformation> + <linkInformation> + <name>8f05a818-b447-40e6-8ee6-d3c2452f3dbe</name> + <tableName>OFFER</tableName> + <primaryKey>OFFERID</primaryKey> + <isUIDTable v="true" /> + </linkInformation> + </linkInformation> +</entity> diff --git a/entity/Offer_entity/entityfields/currency/possibleItemsProcess.js b/entity/Offer_entity/entityfields/currency/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9720030d0928dab40dc10c2f915247352dfd9903 --- /dev/null +++ b/entity/Offer_entity/entityfields/currency/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("CURRENCY"); +result.object(items); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/date_edit/valueProcess.js b/entity/Offer_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..00e95d744eab3b281e0f6ae5ee325cee91419534 --- /dev/null +++ b/entity/Offer_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/date_new/valueProcess.js b/entity/Offer_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7ace62531432fbfb08b15fc33e25d271dc34bd6a --- /dev/null +++ b/entity/Offer_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/image/valueProcess.js b/entity/Offer_entity/entityfields/image/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f0d0bb6a8a1229845c50e171b17e7ec651385736 --- /dev/null +++ b/entity/Offer_entity/entityfields/image/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("Keyword_lib"); + +var KeywUtils = new KeywordUtils(); + +result.string("TEXT:" + KeywUtils.getViewValue("OFFER.STATUS", vars.getString("$field.STATUS")) ); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/language/possibleItemsProcess.js b/entity/Offer_entity/entityfields/language/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..26992f2c6cfc67f4cbfae11030af30b34b7c553d --- /dev/null +++ b/entity/Offer_entity/entityfields/language/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("LANGUAGE"); +result.object(items); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offercode/onValidation.js b/entity/Offer_entity/entityfields/offercode/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..7dc708a6c7f89ce9c3ee25c515090e14bcdc4242 --- /dev/null +++ b/entity/Offer_entity/entityfields/offercode/onValidation.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Offer_lib"); + +var OfferUtils = new OfferUtils(); + +if( !OfferUtils.validateOfferNumber(vars.get("$local.value")) ) +{ + result.string(OfferUtils.getOfferNumberValidationFailString()); +} \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offercode/valueProcess.js b/entity/Offer_entity/entityfields/offercode/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..05581ec804c4ae88d831274152f6242f692357e3 --- /dev/null +++ b/entity/Offer_entity/entityfields/offercode/valueProcess.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Offer_lib"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) +{ + var OfferUtils = new OfferUtils(); + + result.string( OfferUtils.getNextOfferNumber() ); +} \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offerdate/valueProcess.js b/entity/Offer_entity/entityfields/offerdate/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..af2c1f09cc605dfe6664dd0c9829026fc6785993 --- /dev/null +++ b/entity/Offer_entity/entityfields/offerdate/valueProcess.js @@ -0,0 +1,12 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +{ + var DateUtils = new DateUtils(); + result.string(DateUtils.getTodayUTC()); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offerid/valueProcess.js b/entity/Offer_entity/entityfields/offerid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588 --- /dev/null +++ b/entity/Offer_entity/entityfields/offerid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js b/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..21b13505b4df01227f958d618137e2f2f36030bd --- /dev/null +++ b/entity/Offer_entity/entityfields/probability/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("OFFER.PROBABILITY"); +result.object(items); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/status/possibleItemsProcess.js b/entity/Offer_entity/entityfields/status/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5eab809f3ab08cb692f1b3602a2861f1f57edd30 --- /dev/null +++ b/entity/Offer_entity/entityfields/status/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("OFFER.STATUS"); +result.object(items); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/user_edit/valueProcess.js b/entity/Offer_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..67c86b14ca987054658978c88cecf6bd03fa44af --- /dev/null +++ b/entity/Offer_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/user_new/valueProcess.js b/entity/Offer_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..81966a3fbcd9b3cf25a186c93baa1928abc9d6d2 --- /dev/null +++ b/entity/Offer_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/Org_entity/Org_entity.aod b/entity/Org_entity/Org_entity.aod index a4ccd58638b6113155858bf0a0da147a20cfe1d1..f71fe8af6f4e2667995cacc3168036197f79bd96 100644 --- a/entity/Org_entity/Org_entity.aod +++ b/entity/Org_entity/Org_entity.aod @@ -202,6 +202,12 @@ <fieldName>ProductOrg_dfo</fieldName> <isOutgoing v="false" /> </entityDependency> + <entityDependency> + <name>a6e1d9a2-9079-4415-b56f-865df5170d5e</name> + <entityName>Salesproject_entity</entityName> + <fieldName>SalesprojectOrg_dfo</fieldName> + <isOutgoing v="false" /> + </entityDependency> </dependencies> </entityIncomingField> <entityOutgoingField> diff --git a/entity/Pers_entity/entityfields/orgname/onValueChange.js b/entity/Pers_entity/entityfields/orgname/onValueChange.js index fce9fb549efd4d46f4b6a0626a31665f943ac66c..5829235884fae6d8311f1e95876d9fa0f539da6f 100644 --- a/entity/Pers_entity/entityfields/orgname/onValueChange.js +++ b/entity/Pers_entity/entityfields/orgname/onValueChange.js @@ -9,7 +9,7 @@ logging.log("value change -> " + org_id); if(org_id != '') { - neon.setFieldValue("$field.ORG_ID", org_id); + vars.set("$field.ORG_ID", org_id); var org_name = db.cell("select NAME from ORG where ORGID = '" + org_id + "'"); vars.set("$image.lookup_orgname", org_name); diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod index 94e866304de861379e3d8c828b0f291327db3d04..9f18f3a50d9938d1ad8e1fc7211b7bf899ad7c22 100644 --- a/entity/Product_entity/Product_entity.aod +++ b/entity/Product_entity/Product_entity.aod @@ -60,7 +60,7 @@ <name>PRODUCTCODE</name> <tableName>PRODUCT</tableName> <columnName>PRODUCTCODE</columnName> - <caption>Product no.</caption> + <caption>Product number</caption> <mandatory v="true" /> <onValidation>%aditoprj%/entity/Product_entity/entityfields/productcode/onValidation.js</onValidation> </entityField> diff --git a/entity/Product_entity/entityfields/date_new/valueProcess.js b/entity/Product_entity/entityfields/date_new/valueProcess.js index eedddb3cf02507bf4da985cf9db27f79c8468b55..abfd322661115639b35d528163d98e4112b15eaa 100644 --- a/entity/Product_entity/entityfields/date_new/valueProcess.js +++ b/entity/Product_entity/entityfields/date_new/valueProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("system.result"); import("system.neon"); diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..2398361961635ff3eb850c159d96d34527f31ea7 --- /dev/null +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.3" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.0.3"> + <name>Salesproject_entity</name> + <title>Salesproject</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <alias>Data_alias</alias> + <recordContainerType>DB</recordContainerType> + <caption>Salesproject</caption> + <iconId>VAADIN:FILTER</iconId> + <entityFields> + <entityIncomingField> + <name>#INCOMING</name> + </entityIncomingField> + <entityField> + <name>DATE_EDIT</name> + <tableName>SALESPROJECT</tableName> + <columnName>DATE_EDIT</columnName> + <contentType>DATE</contentType> + <outputFormat>yyyy-MM-dd&apos;T&apos;HH:mm:ssZ</outputFormat> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <tableName>SALESPROJECT</tableName> + <columnName>DATE_NEW</columnName> + <contentType>DATE</contentType> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>ENDDATE</name> + <tableName>SALESPROJECT</tableName> + <columnName>ENDDATE</columnName> + <caption>Rollout</caption> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>ESTIMATION</name> + <tableName>SALESPROJECT</tableName> + <columnName>ESTIMATION</columnName> + <caption>Estimation</caption> + </entityField> + <entityField> + <name>ESTIMATIONVALUE</name> + <tableName>SALESPROJECT</tableName> + <columnName>ESTIMATIONVALUE</columnName> + </entityField> + <entityField> + <name>INFO</name> + <tableName>SALESPROJECT</tableName> + <columnName>INFO</columnName> + <caption>Information</caption> + </entityField> + <entityField> + <name>PHASE</name> + <tableName>SALESPROJECT</tableName> + <columnName>PHASE</columnName> + <caption>Phase</caption> + <mandatory v="true" /> + <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>PROJECTCODE</name> + <tableName>SALESPROJECT</tableName> + <columnName>PROJECTCODE</columnName> + <caption>Project number</caption> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValidation.js</onValidation> + <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js</onValueChange> + </entityField> + <entityField> + <name>PROJECTTITLE</name> + <tableName>SALESPROJECT</tableName> + <columnName>PROJECTTITLE</columnName> + <caption>Project title</caption> + <mandatory v="true" /> + </entityField> + <entityField> + <name>RELATION_ID</name> + <tableName>SALESPROJECT</tableName> + <columnName>RELATION_ID</columnName> + <caption>Company</caption> + <mandatory v="true" /> + </entityField> + <entityField> + <name>SALESPROJECTID</name> + <tableName>SALESPROJECT</tableName> + <columnName>SALESPROJECTID</columnName> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>STARTDATE</name> + <tableName>SALESPROJECT</tableName> + <columnName>STARTDATE</columnName> + <caption>Project start</caption> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>STATUS</name> + <tableName>SALESPROJECT</tableName> + <columnName>STATUS</columnName> + <caption>Status</caption> + <mandatory v="true" /> + <possibleItemsProcess>%aditoprj%/entity/Salesproject_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <tableName>SALESPROJECT</tableName> + <columnName>USER_EDIT</columnName> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <tableName>SALESPROJECT</tableName> + <columnName>USER_NEW</columnName> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>VOLUME</name> + <tableName>SALESPROJECT</tableName> + <columnName>VOLUME</columnName> + <caption>Volume</caption> + </entityField> + <entityOutgoingField> + <name>SalesprojectOrg_dfo</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Org_entity</entityName> + <fieldName>Org_dfi</fieldName> + </dependency> + </entityOutgoingField> + </entityFields> + <linkInformation> + <linkInformation> + <name>a343a42f-d810-492e-a93f-3ffcab9a88bd</name> + <tableName>SALESPROJECT</tableName> + <primaryKey>SALESPROJECTID</primaryKey> + <isUIDTable v="true" /> + </linkInformation> + </linkInformation> +</entity> diff --git a/entity/Salesproject_entity/entityfields/date_edit/valueProcess.js b/entity/Salesproject_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..00e95d744eab3b281e0f6ae5ee325cee91419534 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/date_new/valueProcess.js b/entity/Salesproject_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7ace62531432fbfb08b15fc33e25d271dc34bd6a --- /dev/null +++ b/entity/Salesproject_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b27871853b658ad34b7de4e3e674d0a627c1617b --- /dev/null +++ b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js @@ -0,0 +1,12 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +{ + var DateUtils = new DateUtils(); + result.string(DateUtils.getDateIncrementedByYears(DateUtils.getTodayUTC(), 1)); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9d12c334f8a0626defebf0eeb2c31f6602a56477 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/phase/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("SALESPROJECT.PHASE"); +result.object(items); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/projectcode/onValidation.js b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..75b9fcc84cc451463b73ba313b7d9b08c154fc24 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Salesproject_lib"); + +var SalesprojectUtils = new SalesprojectUtils(); + +if( !SalesprojectUtils.validateProjectNumber(vars.get("$local.value")) ) +{ + result.string(SalesprojectUtils.getProjectNumberValidationFailString()); +} \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js b/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..937237a494b75ed2ccdf11605a94a9d9abcf4418 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js @@ -0,0 +1,9 @@ +import("system.vars"); +import("system.result"); +import("Salesproject_lib"); + +var SalesprojectUtils = new SalesprojectUtils(); +if( !SalesprojectUtils.validateProjectNumber(vars.get("$local.value")) ) +{ + vars.set("$field.PROJECTCODE", SalesprojectUtils.getNextProjectNumber()); +} diff --git a/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js b/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ae603c5b65c7d5a626ec4896db39c8e1fecfdeb8 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Salesproject_lib"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) +{ + var SalesprojectUtils = new SalesprojectUtils(); + + result.string( SalesprojectUtils.getNextProjectNumber() ); +} \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/salesprojectid/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/salesprojectid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..af2c1f09cc605dfe6664dd0c9829026fc6785993 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js @@ -0,0 +1,12 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +{ + var DateUtils = new DateUtils(); + result.string(DateUtils.getTodayUTC()); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/status/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/status/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b6e8809f0d24c7f2ce8732b420a058e8c5229e5a --- /dev/null +++ b/entity/Salesproject_entity/entityfields/status/possibleItemsProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("Keyword_lib"); + +var kwdUtils, items; + +kwdUtils = new KeywordUtils(); +items = kwdUtils.getStandardArray("SALESPROJECT.STATUS"); +result.object(items); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/user_edit/valueProcess.js b/entity/Salesproject_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..67c86b14ca987054658978c88cecf6bd03fa44af --- /dev/null +++ b/entity/Salesproject_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/user_new/valueProcess.js b/entity/Salesproject_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..81966a3fbcd9b3cf25a186c93baa1928abc9d6d2 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/Social_entity/Social_entity.aod b/entity/Social_entity/Social_entity.aod index ccdd6b21697e049fb4c55bab0e456b9dab97d9b4..5dc92aa0f75876874ccbd76ec958160d2e1c2501 100644 --- a/entity/Social_entity/Social_entity.aod +++ b/entity/Social_entity/Social_entity.aod @@ -35,7 +35,7 @@ <name>Account_param</name> <title>Benutzer</title> <expose v="true" /> - <description>PARAMETER</description> + <description>Benutzer</description> </entityParameter> </entityFields> </entity> diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index 752d6106fc2c147a633f72d6b4b9e18f177d7417..5e43abff3ddafb88a73b99484943b6f106692fe7 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -537,6 +537,129 @@ <entry> <key>Quantity</key> </entry> + <entry> + <key>Current purchase/sales price</key> + </entry> + <entry> + <key>Salesproject</key> + </entry> + <entry> + <key>Rollout</key> + </entry> + <entry> + <key>Estimation</key> + </entry> + <entry> + <key>Phase</key> + </entry> + <entry> + <key>Product number</key> + </entry> + <entry> + <key>Project number</key> + </entry> + <entry> + <key>Project title</key> + </entry> + <entry> + <key>Project start</key> + </entry> + <entry> + <key>Volume</key> + </entry> + <entry> + <key>The project number already exists!</key> + </entry> + <entry> + <key>Partial order</key> + </entry> + <entry> + <key>Open</key> + </entry> + <entry> + <key>Lost</key> + </entry> + <entry> + <key>Order</key> + </entry> + <entry> + <key>Postponed</key> + </entry> + <entry> + <key>Aborted</key> + </entry> + <entry> + <key>Negotiation</key> + </entry> + <entry> + <key>Workshop</key> + </entry> + <entry> + <key>Presentation preparation</key> + </entry> + <entry> + <key>Waiting for request</key> + </entry> + <entry> + <key>Specifications in progress</key> + </entry> + <entry> + <key>Project decision</key> + </entry> + <entry> + <key>Lead</key> + </entry> + <entry> + <key>Presentation postprocessing</key> + </entry> + <entry> + <key>Statement given</key> + </entry> + <entry> + <key>Total net</key> + </entry> + <entry> + <key>Offer</key> + </entry> + <entry> + <key>Offer number</key> + </entry> + <entry> + <key>Probability</key> + </entry> + <entry> + <key>Total VAT</key> + </entry> + <entry> + <key>Person / Firma</key> + </entry> + <entry> + <key>The offer number already exists!</key> + </entry> + <entry> + <key>0 %</key> + </entry> + <entry> + <key>75 %</key> + </entry> + <entry> + <key>100 %</key> + </entry> + <entry> + <key>25 %</key> + </entry> + <entry> + <key>50 %</key> + </entry> + <entry> + <key>Won</key> + </entry> + <entry> + <key>Checked</key> + </entry> + <entry> + <key>Sent</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index f15a8cd953409c3b832bf5a431a03d058f44dccd..527dfbf9421c7be5b41f317d79c2a6f8dd19bef6 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -710,6 +710,160 @@ <entry> <key>Menge</key> </entry> + <entry> + <key>Salesproject</key> + <value>Vertriebsprojekt</value> + </entry> + <entry> + <key>Rollout</key> + <value>Roll Out</value> + </entry> + <entry> + <key>Estimation</key> + <value>Einschätzung</value> + </entry> + <entry> + <key>Phase</key> + <value>Phase</value> + </entry> + <entry> + <key>Product number</key> + <value>Produktnummer</value> + </entry> + <entry> + <key>Project number</key> + <value>Projektnummer</value> + </entry> + <entry> + <key>Project title</key> + <value>Projekttitel</value> + </entry> + <entry> + <key>Project start</key> + <value>Projektstart</value> + </entry> + <entry> + <key>Volume</key> + <value>Volumen</value> + </entry> + <entry> + <key>The project number already exists!</key> + <value>Die Projektnummer existiert bereits!</value> + </entry> + <entry> + <key>Partial order</key> + <value>Teilauftrag</value> + </entry> + <entry> + <key>Open</key> + <value>Offen</value> + </entry> + <entry> + <key>Lost</key> + <value>Verloren</value> + </entry> + <entry> + <key>Order</key> + <value>Auftrag</value> + </entry> + <entry> + <key>Postponed</key> + <value>Vertagt</value> + </entry> + <entry> + <key>Aborted</key> + <value>Abgebrochen</value> + </entry> + <entry> + <key>Negotiation</key> + <value>Verhandlung</value> + </entry> + <entry> + <key>Workshop</key> + <value>Workshop</value> + </entry> + <entry> + <key>Presentation preparation</key> + <value>Präsentationsvorbereitung</value> + </entry> + <entry> + <key>Waiting for request</key> + <value>Auf Anforderungen warten</value> + </entry> + <entry> + <key>Specifications in progress</key> + <value>Lastenheft in Bearbeitung</value> + </entry> + <entry> + <key>Project decision</key> + <value>Projektentscheidung</value> + </entry> + <entry> + <key>Lead</key> + <value>Lead</value> + </entry> + <entry> + <key>Presentation postprocessing</key> + <value>Präsentationsnachbereitung</value> + </entry> + <entry> + <key>Statement given</key> + <value>Stellungnahme abgeben</value> + </entry> + <entry> + <key>Total net</key> + <value>Betrag netto</value> + </entry> + <entry> + <key>Offer</key> + <value>Angebot</value> + </entry> + <entry> + <key>Offer number</key> + <value>Angebotsnummer</value> + </entry> + <entry> + <key>Probability</key> + <value>Wahrscheinlichkeit</value> + </entry> + <entry> + <key>Total VAT</key> + <value>Betrag MWST</value> + </entry> + <entry> + <key>Person / Firma</key> + </entry> + <entry> + <key>The offer number already exists!</key> + <value>Die Angebotsnummer existiert bereits!</value> + </entry> + <entry> + <key>0 %</key> + </entry> + <entry> + <key>75 %</key> + </entry> + <entry> + <key>100 %</key> + </entry> + <entry> + <key>25 %</key> + </entry> + <entry> + <key>50 %</key> + </entry> + <entry> + <key>Won</key> + <value>Gewonnen</value> + </entry> + <entry> + <key>Checked</key> + <value>Geprüft</value> + </entry> + <entry> + <key>Sent</key> + <value>Versendet</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 286cdf13592839be873333620b4617f290ee5065..d2c0fea4788260cbf74454c9a94957af8113deee 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -545,6 +545,129 @@ <entry> <key>Quantity</key> </entry> + <entry> + <key>Current purchase/sales price</key> + </entry> + <entry> + <key>Salesproject</key> + </entry> + <entry> + <key>Rollout</key> + </entry> + <entry> + <key>Estimation</key> + </entry> + <entry> + <key>Phase</key> + </entry> + <entry> + <key>Product number</key> + </entry> + <entry> + <key>Project number</key> + </entry> + <entry> + <key>Project title</key> + </entry> + <entry> + <key>Project start</key> + </entry> + <entry> + <key>Volume</key> + </entry> + <entry> + <key>The project number already exists!</key> + </entry> + <entry> + <key>Partial order</key> + </entry> + <entry> + <key>Open</key> + </entry> + <entry> + <key>Lost</key> + </entry> + <entry> + <key>Order</key> + </entry> + <entry> + <key>Postponed</key> + </entry> + <entry> + <key>Aborted</key> + </entry> + <entry> + <key>Negotiation</key> + </entry> + <entry> + <key>Workshop</key> + </entry> + <entry> + <key>Presentation preparation</key> + </entry> + <entry> + <key>Waiting for request</key> + </entry> + <entry> + <key>Specifications in progress</key> + </entry> + <entry> + <key>Project decision</key> + </entry> + <entry> + <key>Lead</key> + </entry> + <entry> + <key>Presentation postprocessing</key> + </entry> + <entry> + <key>Statement given</key> + </entry> + <entry> + <key>Total net</key> + </entry> + <entry> + <key>Offer</key> + </entry> + <entry> + <key>Offer number</key> + </entry> + <entry> + <key>Probability</key> + </entry> + <entry> + <key>Total VAT</key> + </entry> + <entry> + <key>Person / Firma</key> + </entry> + <entry> + <key>The offer number already exists!</key> + </entry> + <entry> + <key>0 %</key> + </entry> + <entry> + <key>75 %</key> + </entry> + <entry> + <key>100 %</key> + </entry> + <entry> + <key>25 %</key> + </entry> + <entry> + <key>50 %</key> + </entry> + <entry> + <key>Won</key> + </entry> + <entry> + <key>Checked</key> + </entry> + <entry> + <key>Sent</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/Offer_context/Offer_context.aod b/neonContext/Offer_context/Offer_context.aod new file mode 100644 index 0000000000000000000000000000000000000000..77b1dfe024bd7940849b34e8081f49894c0e8cab --- /dev/null +++ b/neonContext/Offer_context/Offer_context.aod @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0"> + <name>Offer_context</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>OfferMain_view</mainview> + <filterview>OfferFilter_view</filterview> + <editview>OfferEdit_view</editview> + <preview>OfferPreview_view</preview> + <entity>Offer_entity</entity> + <references> + <neonViewReference> + <name>1dd0290d-b820-4a3b-ada7-1850025ca914</name> + <view>OfferFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>08b180ed-7983-4675-9be4-2b55467c713c</name> + <view>OfferMain_view</view> + </neonViewReference> + <neonViewReference> + <name>4ed03135-fe7e-4413-8272-c64ad5f3287d</name> + <view>OfferEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>c7f456ce-a141-436b-ad4b-7007a95eae04</name> + <view>OfferPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Org_context/Org_context.aod b/neonContext/Org_context/Org_context.aod index c9a5b204f3b4e4a97f86b3e8ae7509fd265c4ca3..388b6446c3b02f5ddfd7f0726af591ea0854193c 100644 --- a/neonContext/Org_context/Org_context.aod +++ b/neonContext/Org_context/Org_context.aod @@ -9,6 +9,7 @@ <filterview>OrgFilter_view</filterview> <editview>OrgEdit_view</editview> <preview>OrgPreview_view</preview> + <lookupview>OrgFilter_view</lookupview> <entity>Org_entity</entity> <references> <neonViewReference> diff --git a/neonContext/Salesproject_context/Salesproject_context.aod b/neonContext/Salesproject_context/Salesproject_context.aod new file mode 100644 index 0000000000000000000000000000000000000000..4619a612976d4d83265083082193f6db41bd2b5e --- /dev/null +++ b/neonContext/Salesproject_context/Salesproject_context.aod @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0"> + <name>Salesproject_context</name> + <title>Salesproject</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>SalesprojectMain_view</mainview> + <filterview>SalesprojectFilter_view</filterview> + <editview>SalesprojectEdit_view</editview> + <preview>SalesprojectPreview_view</preview> + <entity>Salesproject_entity</entity> + <references> + <neonViewReference> + <name>a791a80d-ecec-43e3-b168-633e411835c2</name> + <view>SalesprojectPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>0d053d4a-a946-417f-a6f7-95e22b9a7cae</name> + <view>SalesprojectMain_view</view> + </neonViewReference> + <neonViewReference> + <name>fe6fb9fc-4e7c-49d6-a452-e022b55cbc55</name> + <view>SalesprojectFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c35cc718-94a8-43cf-afe4-f02d251d4e9f</name> + <view>SalesprojectEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod b/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod index 1b3afa1d1e15c5fbcd73d24c5e91ff919e2198e9..8f01de2d20ab81e587c3cfe261f3b67dc59426c2 100644 --- a/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod +++ b/neonDashboard/Vertriebsdashboard/Vertriebsdashboard.aod @@ -1,86 +1,34 @@ <?xml version="1.0" encoding="UTF-8"?> <neonDashboard xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonDashboard/1.0.0"> <name>Vertriebsdashboard</name> - <title>Salesdashboard</title> + <title>Vertriebsdashboard</title> <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>NEON:PUZZLE</icon> + <icon>NEON:LOGO_A</icon> <dashboardType>PUBLIC</dashboardType> <defaultDashlets> <neonDashlet> - <name>859bc9bc-17be-4ce9-91a0-0b3720bf31ea</name> + <name>Dashlet</name> <viewName>TwitterTimeline_view</viewName> <configName>AditoTwitterDashlet</configName> + <title>Aditonews</title> <uiConfiguration> <name>uiConfiguration</name> - <x v="0" /> - <y v="0" /> + <xPos v="0" /> + <yPos v="0" /> <colspan v="1" /> - <rowspan v="8" /> + <rowspan v="7" /> </uiConfiguration> </neonDashlet> <neonDashlet> - <name>51770c1a-b470-4a60-ba70-8ab1eac69502</name> + <name>Dashlet3</name> <viewName>FacebookTimeline_view</viewName> <configName>AditoFacebookDashlet</configName> + <title>Adito FB</title> <uiConfiguration> <name>uiConfiguration</name> - <x v="1" /> - <y v="0" /> - <colspan v="1" /> - <rowspan v="4" /> - </uiConfiguration> - </neonDashlet> - <neonDashlet> - <name>3b610152-cd0b-47ba-8587-e190757e1916</name> - <viewName>TwitterTimeline_view</viewName> - <configName>TwitterDashletConfig</configName> - <title>Frank</title> - <requiresConfiguration v="false" /> - <uiConfiguration> - <name>uiConfiguration</name> - <x v="2" /> - <y v="0" /> - <colspan v="1" /> - <rowspan v="4" /> - </uiConfiguration> - <parameters> - <neonDashletParameter> - <name>Account_param</name> - <value>fkullm</value> - </neonDashletParameter> - </parameters> - </neonDashlet> - <neonDashlet> - <name>0fcb3a5b-192b-4f1d-9720-e3c993108ff1</name> - <viewName>FacebookTimeline_view</viewName> - <configName>FacebookDashletConfig</configName> - <title>Microsoft News</title> - <requiresConfiguration v="false" /> - <uiConfiguration> - <name>uiConfiguration</name> - <x v="2" /> - <y v="8" /> - <colspan v="1" /> - <rowspan v="4" /> - </uiConfiguration> - <parameters> - <neonDashletParameter> - <name>Account_param</name> - <value>microsoft</value> - </neonDashletParameter> - </parameters> - </neonDashlet> - <neonDashlet> - <name>e6354df0-189f-4f1f-960f-f15e66fe42df</name> - <viewName>PersFilter_view</viewName> - <configName>MyContactsDashlet</configName> - <title>Kontakte</title> - <requiresConfiguration v="false" /> - <uiConfiguration> - <name>uiConfiguration</name> - <x v="0" /> - <y v="12" /> - <colspan v="1" /> + <xPos v="1" /> + <yPos v="0" /> + <colspan v="2" /> <rowspan v="4" /> </uiConfiguration> </neonDashlet> diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..fc6c2ad73511b9fbd4d8510cbf2ccb4c47bdedce --- /dev/null +++ b/neonView/OfferEdit_view/OfferEdit_view.aod @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>OfferEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>OfferEdit_generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>20a42587-69dd-4b8e-9a2e-3f7e8717b6ee</name> + <entityField>OFFERCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e95c7a5d-3931-4637-a759-c034ae5eb81d</name> + <entityField>RELATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>768683f3-08c8-4e85-bb4c-7e5c74a8dec0</name> + <entityField>OFFERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ca883d2e-f391-4681-b9f7-72040d4b9669</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ce72d9f3-66ce-4a5e-a5af-c3a82520141d</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferFilter_view/OfferFilter_view.aod b/neonView/OfferFilter_view/OfferFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..c50ceb2b9db62cdfe9a7983e9e58365f3c6ecf2c --- /dev/null +++ b/neonView/OfferFilter_view/OfferFilter_view.aod @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>OfferFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>OfferFilter_template</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>60b83daa-9349-4bef-94d8-5f1fc350da59</name> + <entityField>OFFERCODE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2e926750-d1db-4cb0-8fd9-f930ed7f0252</name> + <entityField>RELATION_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>443c8480-5676-43a3-9617-f86dae39c960</name> + <entityField>OFFERDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6f55da1e-281c-44ba-ab97-729b75516c32</name> + <entityField>NET</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a0e5fc8f-ce4f-4a79-902d-27f3e3ad2a3d</name> + <entityField>CURRENCY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>24440d2f-cb7a-4a5f-9d54-b1cd130908c8</name> + <entityField>PROBABILITY</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferMain_view/OfferMain_view.aod b/neonView/OfferMain_view/OfferMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..957c32ed2fa1d4b5e637b5f1a4551172b5db9d8c --- /dev/null +++ b/neonView/OfferMain_view/OfferMain_view.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>OfferMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>5b93621b-c597-4ee8-88d5-3075e3890eb5</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>5b93621b-c597-4ee8-88d5-3075e3890eb5</name> + <entityField>#ENTITY</entityField> + <view>OfferPreview_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..d639c0b4f7c4d5134e511749ef64ff9f3b97b0f3 --- /dev/null +++ b/neonView/OfferPreview_view/OfferPreview_view.aod @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>OfferPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>OfferHeader_template</name> + <iconField>IMAGE</iconField> + <titleField>OFFERCODE</titleField> + <descriptionField>RELATION_ID</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Offer_generic</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>b120a564-fb97-4ae3-bd3e-13ce25d97834</name> + <entityField>OFFERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>42befe2f-40c0-4674-b0b1-70ae5523f861</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7a145c84-dc49-4af2-870f-44960dd89d12</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9e876b07-3029-42fe-a1e7-5c19b845e50d</name> + <entityField>NET</entityField> + </entityFieldLink> + <entityFieldLink> + <name>cd72899a-69b2-4fe2-bf58-4fb9f594324e</name> + <entityField>VAT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>16d38881-d3d3-4c4d-9f23-39d60eadce8d</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>037889c4-136c-4e9e-b8e2-ff4f13af13c1</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name> + <entityField>SALESPROJECT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PersMain_view/PersMain_view.aod b/neonView/PersMain_view/PersMain_view.aod index 5aae7090e565a1e7200796fc9c02144c91700caa..5f77bdaab1821fb500a21fa9c0a13b65fe54691b 100644 --- a/neonView/PersMain_view/PersMain_view.aod +++ b/neonView/PersMain_view/PersMain_view.aod @@ -19,10 +19,5 @@ <entityField>PersHistory_dfo</entityField> <view>HistoryFilter_view</view> </neonViewReference> - <neonViewReference> - <name>fa0dc2e9-15c8-4f70-859a-7ab35bcc4f3c</name> - <entityField>PersPricelist_dfo</entityField> - <view>ProductpriceRelation_view</view> - </neonViewReference> </children> </neonView> diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..18c48ce098c04d4bfc50ecbb1beb86850fe80186 --- /dev/null +++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>SalesprojectEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>SalesprojectEdit_generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2bc931ef-03f4-4812-b75f-70070c3dc849</name> + <entityField>PROJECTTITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a68c2b51-4b0d-46b0-b97e-dc87d168cf0a</name> + <entityField>PROJECTCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d0a2027b-1796-4c5c-82f5-6fdb8f178ab5</name> + <entityField>RELATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ceaa6824-a100-4552-a3a7-50a84faadaf9</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>218a0751-9a53-4639-9d79-f9463f399b93</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c00b2121-c44d-41a1-8c32-e2339b4dd234</name> + <entityField>PHASE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>13ad6d3f-3a5d-4385-aae6-c454ab7531f4</name> + <entityField>STARTDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ed4308b5-dd5a-49a1-b748-9a2980291d56</name> + <entityField>ENDDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5b3c3dc2-4ca5-45c5-96e5-7196a99dcdce</name> + <entityField>VOLUME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f9332d9d-184b-4044-afaf-5d377fe59072</name> + <entityField>ESTIMATION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..ea47ded94475100f9c2fe86d9c88c01b66cd38dd --- /dev/null +++ b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>SalesprojectFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>SalesprojectFilter_table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>91a153d4-4ede-4ba1-b11e-713e476e77c9</name> + <entityField>PROJECTCODE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9f6b967e-5140-420f-84ca-2273920221bd</name> + <entityField>PROJECTTITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>fec843c3-f7c0-42c7-8295-50386651edb2</name> + <entityField>STARTDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4cc3c3f1-6f86-434d-8d1d-32a965aa76b2</name> + <entityField>ENDDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>92699fdb-4eea-4ce2-98d2-6cc3f3b7581e</name> + <entityField>VOLUME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2689fee8-bebb-4d7c-b11e-4a7310664977</name> + <entityField>PHASE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>52a851b0-9059-4d57-8ff5-335c819359e8</name> + <entityField>STATUS</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..b8ddc1dc4d32f3cd0d3b40406ab297cec4655240 --- /dev/null +++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>SalesprojectMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + </masterSlaveLayout> + </layout> +</neonView> diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..8262da274e19afb0d1a51c80bc3443f6575aa2fd --- /dev/null +++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0"> + <name>SalesprojectPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> +</neonView> diff --git a/others/db_changes/masterChangelog.xml b/others/db_changes/masterChangelog.xml index ee76531830eadd8c20d9b6e685bc4fa4e5d4927c..eb33b63d871620479ad58241dfb68b1a4b729026 100644 --- a/others/db_changes/masterChangelog.xml +++ b/others/db_changes/masterChangelog.xml @@ -13,7 +13,10 @@ <include file="struct/create_prod2prod.xml"/> <include file="struct/create_productprice.xml"/> <include file="struct/create_stock.xml"/> + <include file="struct/create_salesproject.xml"/> + <include file="struct/create_offer.xml"/> <include file="struct/contractChanges.xml"/> + <include file="struct/offerChanges.xml"/> <include file="struct/productChanges.xml"/> <include file="misc/1535533490181_persChanges.xml"/> <include file="struct/1535612802325_addressChange.xml"/> diff --git a/others/db_changes/struct/changeLanguageType.xml b/others/db_changes/struct/changeLanguageType.xml new file mode 100644 index 0000000000000000000000000000000000000000..77aeb44c5d6f26182eb030495fc83be0ee62534e --- /dev/null +++ b/others/db_changes/struct/changeLanguageType.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.schroeger" id="609a8e0d-d104-4cdb-a803-3ac65bb456b3"> + <modifyDataType tableName="OFFER" columnName="LANGUAGE" newDataType="varchar(5)"/> + <modifyDataType tableName="RELATION" columnName="LANGUAGE" newDataType="varchar(5)"/> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/others/db_changes/struct/create_offer.xml b/others/db_changes/struct/create_offer.xml new file mode 100644 index 0000000000000000000000000000000000000000..45c57d54f220d3459012b137702cee3da3abc86d --- /dev/null +++ b/others/db_changes/struct/create_offer.xml @@ -0,0 +1,30 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> +<changeSet author="m.schroeger" id="2f02d14b-731b-4e66-a945-af90b2e3b762"> + <createTable tableName="OFFER"> + <column name="OFFERID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_OFFER_OFFERID"/> + </column> + <column name="RELATION_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="SALESPROJECT_ID" type="CHAR(36)"/> + <column name="OFFERDATE" type="TIMESTAMP"/> + <column name="LANGUAGE" type="INTEGER"/> + <column name="OFFERCODE" type="INTEGER"/> + <column name="STATUS" type="INTEGER"/> + <column name="PROBABILITY" type="INTEGER"/> + <column name="NET" type="NUMERIC(14,2)"/> + <column name="VAT" type="NUMERIC(14,2)"/> + <column name="CURRENCY" type="INTEGER"/> + <column name="DATE_EDIT" type="TIMESTAMP"/> + <column name="DATE_NEW" type="TIMESTAMP"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="VARCHAR(50)"/> + <column name="USER_NEW" type="VARCHAR(50)"> + <constraints nullable="false"/> + </column> + </createTable> +</changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/others/db_changes/struct/create_salesproject.xml b/others/db_changes/struct/create_salesproject.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c95b04689af9ccb87e3c8e432ceb7ffcfddff17 --- /dev/null +++ b/others/db_changes/struct/create_salesproject.xml @@ -0,0 +1,37 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.schroeger" id="52da4775-e669-4633-ac22-3c5a74e44be9"> + <createTable tableName="SALESPROJECT"> + + <column name="PROJECTCODE" type="INTEGER"> + <constraints nullable="false" unique="true" uniqueConstraintName="UNIQUE_SALESPROJECT_PROJECTCODE" /> + </column> + <column name="PROJECTTITLE" type="VARCHAR(30)"/> + <column name="RELATION_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="INFO" type="CLOB"/> + <column name="STATUS" type="INTEGER"/> + <column name="PHASE" type="INTEGER"/> + <column name="VOLUME" type="NUMERIC(14,2)"/> + <column name="STARTDATE" type="TIMESTAMP"/> + <column name="ENDDATE" type="TIMESTAMP"/> + <column name="ESTIMATION" type="VARCHAR(50)"/> + <column name="ESTIMATIONVALUE" type="INTEGER"/> + + <column name="SALESPROJECTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_SALESPROJECT_SALESPROJECTID"/> + </column> + + <column name="USER_EDIT" type="VARCHAR(50)"/> + <column name="USER_NEW" type="VARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="TIMESTAMP"> + <constraints nullable="false"/> + </column> + <column name="DATE_EDIT" type="TIMESTAMP"/> + + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/others/db_changes/struct/offerChanges.xml b/others/db_changes/struct/offerChanges.xml new file mode 100644 index 0000000000000000000000000000000000000000..37adab85f193765f80dd571f224dda328375cf8b --- /dev/null +++ b/others/db_changes/struct/offerChanges.xml @@ -0,0 +1,9 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.schroeger" id="27bc9279-0794-436c-9b54-dda05c3c310e"> + <dropColumn tableName="OFFER" columnName="LANGUAGE"/> + <addColumn tableName="OFFER"> + <column name="LANGUAGE" type="varchar(5)"/> + </addColumn> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod index 9fb33b2728fdfd126836bddb26f10b1287064351..b0f2142f63120b471b54bfc6315e1e9844692dc3 100644 --- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod +++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod @@ -2,7 +2,7 @@ <preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.0.1"> <name>_____PREFERENCES_PROJECT</name> <majorModelMode>DISTRIBUTED</majorModelMode> - <projectName>xRM-Basic 5</projectName> + <projectName>xRM-Basic-5</projectName> <jditoMaxContentSize v="57671680" /> <calendarCategoriesEvent> <entry> diff --git a/process/Date_lib/process.js b/process/Date_lib/process.js index fd70a766cc9dbb38afecdc501d0c8d83b79168e4..18a8c5d75a362aa1c4c552ee1cb394267be39062 100644 --- a/process/Date_lib/process.js +++ b/process/Date_lib/process.js @@ -1,9 +1,12 @@ import("system.translate"); +import("system.datetime"); + /** * provides methods for interactions with dates */ function DateUtils(){ - + + var that = this; /** * Validates two date inputs (beginning should always be before the end!) * @@ -13,11 +16,34 @@ function DateUtils(){ * @result {Boolean|null} Boolean if it was able to check smth or null if the input values were not valid */ this.validateBeginnBeforeEnd = function(pStart, pEnd) { - if (pStart == "" || pStart == null || pEnd == "" || pEnd == null) return null + if (pStart == "" || pStart == null || pEnd == "" || pEnd == null) return null; return pStart <= pEnd; } this.getValidationFailString = function(){ return translate.text("The expiry date must be after the start date!"); } + + /** + * Delivers the current date at midnight in UTC + * + * @result {Number} + */ + this.getTodayUTC = function(){ + return datetime.today("UTC"); + } + + /** + * Delivers the passed date incremented by passed years + * + * @param pDate {Number} + * @param pYears {Number} + * + * @result {Number} date incremented by years + */ + this.getDateIncrementedByYears = function(pDate, pYears){ + var dateObj = new Date(pDate); + + return dateObj.setFullYear(dateObj.getFullYear() + pYears); + } } \ No newline at end of file diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js index 5a86e8886e47eff2e87bf296b0d76cca698c22b9..7e8781529f62f054c579424e158129a7a7a8a0c9 100644 --- a/process/Keyword_lib/process.js +++ b/process/Keyword_lib/process.js @@ -185,6 +185,46 @@ function KeywordUtils(){ ,createKeywordEntry("3", translate.text("Warehouse 3")) ]); break; + case "SALESPROJECT.STATUS": + valueContainer = createKeywordEntriesContainer([ + createKeywordEntry("1", translate.text("Open")) + ,createKeywordEntry("2", translate.text("Postponed")) + ,createKeywordEntry("3", translate.text("Aborted")) + ,createKeywordEntry("4", translate.text("Partial order")) + ,createKeywordEntry("5", translate.text("Order")) + ,createKeywordEntry("6", translate.text("Lost")) + ]); + break; + case "SALESPROJECT.PHASE": + valueContainer = createKeywordEntriesContainer([ + createKeywordEntry("1", translate.text("Project decision")) + ,createKeywordEntry("2", translate.text("Negotiation")) + ,createKeywordEntry("3", translate.text("Workshop")) + ,createKeywordEntry("4", translate.text("Presentation postprocessing")) + ,createKeywordEntry("5", translate.text("Presentation preparation")) + ,createKeywordEntry("6", translate.text("Statement given")) + ,createKeywordEntry("7", translate.text("Specifications in progress")) + ,createKeywordEntry("8", translate.text("Waiting for request")) + ,createKeywordEntry("9", translate.text("Lead")) + ]); + break; + case "OFFER.PROBABILITY": + valueContainer = createKeywordEntriesContainer([ + createKeywordEntry("1", translate.text("0 %"), null, {percentValue: 0}) + ,createKeywordEntry("2", translate.text("25 %"), null, {percentValue: 25}) + ,createKeywordEntry("3", translate.text("50 %"), null, {percentValue: 50}) + ,createKeywordEntry("4", translate.text("75 %"), null, {percentValue: 75}) + ,createKeywordEntry("5", translate.text("100 %"), null, {percentValue: 100}) + ]); + break; + case "OFFER.STATUS": + valueContainer = createKeywordEntriesContainer([ + createKeywordEntry("1", translate.text("Checked")) + ,createKeywordEntry("2", translate.text("Sent")) + ,createKeywordEntry("3", translate.text("Won")) + ,createKeywordEntry("4", translate.text("Lost")) + ]); + break; default: throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [ arguments.callee.name, keywordType diff --git a/process/Offer_lib/Offer_lib.aod b/process/Offer_lib/Offer_lib.aod new file mode 100644 index 0000000000000000000000000000000000000000..ae2ae4230f73ba0dd50f29dcb7d4273254ea4d4b --- /dev/null +++ b/process/Offer_lib/Offer_lib.aod @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.7" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.1.7"> + <name>Offer_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Offer_lib/process.js</process> +</process> diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js new file mode 100644 index 0000000000000000000000000000000000000000..d142a7bc54e17f5950585a38c7fdd81f56c0ace9 --- /dev/null +++ b/process/Offer_lib/process.js @@ -0,0 +1,33 @@ +import("system.translate"); +import("system.db"); +import("system.eMath"); +import("Util_lib"); + +function OfferUtils(){ + var that = this; + /** + * Delivers the next valid offer number (has to be unique) + * + * @result {String} next valid offer number + */ + this.getNextOfferNumber = function(){ + var JdUtils = new JDitoUtils(); + return JdUtils.getNextUniqueNumber("OFFERCODE", "OFFER"); + } + + /** + * Checks if the passed offer number is valid (has to be unique) + * + * @param {String} pOfferNumber offer number to check + * + * @result {boolean} passed number is valid + */ + this.validateOfferNumber = function(pOfferNumber){ + var JdUtils = new JDitoUtils(); + return JdUtils.validateUniqueNumber(pOfferNumber, "OFFERCODE", "OFFER"); + } + + this.getOfferNumberValidationFailString = function(){ + return translate.text("The offer number already exists!"); + } +} \ No newline at end of file diff --git a/process/Salesproject_lib/Salesproject_lib.aod b/process/Salesproject_lib/Salesproject_lib.aod new file mode 100644 index 0000000000000000000000000000000000000000..7ee5946b8e74e524bc4703941b72d44a4a59318d --- /dev/null +++ b/process/Salesproject_lib/Salesproject_lib.aod @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.7" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.1.7"> + <name>Salesproject_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Salesproject_lib/process.js</process> +</process> diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js new file mode 100644 index 0000000000000000000000000000000000000000..6f0456ff37736543ef381c5a1af3b2a526432c1a --- /dev/null +++ b/process/Salesproject_lib/process.js @@ -0,0 +1,33 @@ +import("system.translate"); +import("system.db"); +import("system.eMath"); +import("Util_lib"); + +function SalesprojectUtils(){ + var that = this; + /** + * Delivers the next valid project number (has to be unique) + * + * @result {String} next valid project number + */ + this.getNextProjectNumber = function(){ + var JdUtils = new JDitoUtils(); + return JdUtils.getNextUniqueNumber("PROJECTCODE", "SALESPROJECT"); + } + + /** + * Checks if the passed project number is valid (has to be unique) + * + * @param {String} pProjectNumber project number to check + * + * @result {boolean} passed number is valid + */ + this.validateProjectNumber = function(pProjectNumber){ + var JdUtils = new JDitoUtils(); + return JdUtils.validateUniqueNumber(pProjectNumber, "PROJECTCODE", "SALESPROJECT"); + } + + this.getProjectNumberValidationFailString = function(){ + return translate.text("The project number already exists!"); + } +} \ No newline at end of file diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js index b811addbd2561fd9124866db2fbbc271ff19172f..406f2120f84bec12a8021d9a6b58e88c0ac22b64 100644 --- a/process/Util_lib/process.js +++ b/process/Util_lib/process.js @@ -779,6 +779,7 @@ function BinaryUtils() */ function JDitoUtils() { + var that = this; /** * A wrapper for process.executeScript * @@ -899,6 +900,56 @@ function JDitoUtils() return data.concat(temp); } + + /** + * Delivers the next unique number + * + * @param {String} pColumn req database column that contains unique numbers + * @param {String} pTable req database table + * @param {Number} pStartNumber opt number to start numeration + * + * @result {String} next valid number + */ + this.getNextUniqueNumber = function(pColumn, pTable, pStartNumber){ + var maxNum = that.getMaxUniqueNumber(pColumn, pTable); + + if(maxNum == "0") + { + if(pStartNumber == undefined) pStartNumber = 1000; + return pStartNumber; + } + + return eMath.addInt(maxNum, "1");//increment currently highest number + } + + /** + * Checks if the passed number is valid (has to be unique) + * + * @param {String} pNumber number to check + * @param {String} pColumn req database column that contains unique numbers + * @param {String} pTable req database table + * + * @result {boolean} passed number is valid + */ + this.validateUniqueNumber = function(pNumber, pColumn, pTable){ + var maxNum = that.getMaxUniqueNumber(pColumn, pTable); + + return Number(pNumber) > Number(maxNum); + } + + /** + * Delivers the hightest number currently stored in database + * + * @param {String} pColumn req database column that contains unique numbers + * @param {String} pTable req database table + * + * @result {String} hightest number + */ + this.getMaxUniqueNumber = function(pColumn, pTable){ + var maxNum = db.cell("select max(" + pColumn + ") from " + pTable); + + return maxNum == "" ? "0" : maxNum; + } } /** * Class containing utility functions for use with JSON