diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 157b48c9df17d6e4eb57dab64721f5912cdc786f..fb04b3c8a9196fd01e846f8628d7646faa565da6 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -1280,7 +1280,7 @@
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <title></title>
                 <description></description>
               </entityFieldDb>
@@ -1481,7 +1481,7 @@
                 <scale v="0" />
                 <notNull v="false" />
                 <isUnique v="false" />
-                <index v="false" />
+                <index v="true" />
                 <title></title>
                 <description></description>
               </entityFieldDb>
@@ -1962,6 +1962,175 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>STOCK</name>
+            <dbName></dbName>
+            <idColumn>STOCKID</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>REFNUMBER</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>STOCKID</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>WAREHOUSE</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_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>QUANTITY</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>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>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>ENTRYDATE</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>PRODUCT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="true" />
+                <title></title>
+                <description></description>
+                <dependencies>
+                  <entityDependency>
+                    <name>1d99d9fe-4956-4fd4-9f67-32b1c731dcc1</name>
+                    <entityName>PRODUCT</entityName>
+                    <fieldName>PRODUCTID</fieldName>
+                  </entityDependency>
+                </dependencies>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>IN_OUT</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>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>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index bfd129a9b0fd7fb05438effa5ec32e7b71a2f05e..24d0ce85178a4ea6630a65d0547cf71b071e4671 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -12,13 +12,14 @@
       <name>CONTRACTCODE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTCODE</columnName>
-      <caption>Vertragsnummer</caption>
+      <caption>Contract number</caption>
+      <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>CONTRACTDUE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTDUE</columnName>
-      <caption>nächste Fälligkeit</caption>
+      <caption>Next due date</caption>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/onValidation.js</onValidation>
@@ -27,7 +28,7 @@
       <name>CONTRACTEND</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTEND</columnName>
-      <caption>Vertragsende</caption>
+      <caption>Contract expiry date</caption>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValidation.js</onValidation>
@@ -37,12 +38,13 @@
       <name>CONTRACTID</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTID</columnName>
+      <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>CONTRACTSTART</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTART</columnName>
-      <caption>Vertragsbeginn</caption>
+      <caption>Contract start date</caption>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation>
@@ -51,14 +53,14 @@
       <name>CONTRACTSTATUS</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTATUS</columnName>
-      <caption>Status</caption>
+      <caption>${CONTRACT_STATUS}</caption>
       <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>CONTRACTTYPE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTTYPE</columnName>
-      <caption>Vertragsart</caption>
+      <caption>Type of contract</caption>
       <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
@@ -81,7 +83,7 @@
       <name>PAYMENT</name>
       <tableName>CONTRACT</tableName>
       <columnName>PAYMENT</columnName>
-      <caption>Zahlweise</caption>
+      <caption>Payment method</caption>
       <mandatory v="true" />
       <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
@@ -89,7 +91,7 @@
       <name>RELATION_ID</name>
       <tableName>CONTRACT</tableName>
       <columnName>RELATION_ID</columnName>
-      <caption>Person / Firma</caption>
+      <caption>Contact / Company</caption>
       <linkedContextProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/linkedContextProcess.js</linkedContextProcess>
       <mandatory v="true" />
       <outgoingField>ContractOrg_dfo</outgoingField>
@@ -101,7 +103,7 @@
       <name>REMARK</name>
       <tableName>CONTRACT</tableName>
       <columnName>REMARK</columnName>
-      <caption>Beschreibung</caption>
+      <caption>Description</caption>
       <contentType>LONG_TEXT</contentType>
     </entityField>
     <entityField>
diff --git a/entity/Contract_entity/conditionProcess.js b/entity/Contract_entity/conditionProcess.js
index bc6c39039001a9ae74f6eaa20a2eca8dcd586ab8..fea5817cc169aaa1830db0e0d43f8195ce8276d3 100644
--- a/entity/Contract_entity/conditionProcess.js
+++ b/entity/Contract_entity/conditionProcess.js
@@ -1,7 +1,7 @@
 import("system.result");
 import("system.vars");
 
-if(vars.exists("$param.RelId_param") && vars.get("$param.RelId_param") != null)
+if(vars.exists("$param.RelId_param") && vars.get("$param.RelId_param") != null && vars.get("$param.RelId_param") != "")
     result.string("CONTRACT.RELATION_ID = ('" + vars.getString("$param.RelId_param") + "')");  
 else
-    result.string("");  
\ No newline at end of file
+    result.string("1 = 1");  
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractcode/onValidation.js b/entity/Contract_entity/entityfields/contractcode/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..5b26ae2f6e7dae262d52887628e7b09247f913f7
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractcode/onValidation.js
@@ -0,0 +1,11 @@
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("system.db");
+
+var codeCount = db.cell("select count(CONTRACTCODE) from CONTRACT where CONTRACTCODE = '" + vars.get("$local.value") + "'"
+                       + " and CONTRACTID <> '" + vars.get("$field.CONTRACTID") + "'");
+if(codeCount > 0)
+{
+    result.string(translate.text("The contract number already exists!"));
+}
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractdue/onValidation.js b/entity/Contract_entity/entityfields/contractdue/onValidation.js
index eda236fcfd7726965bf7eeed28c5233b6b0d0e4d..6e86ad155d5d935e10071d2350b22c0a0f16dc63 100644
--- a/entity/Contract_entity/entityfields/contractdue/onValidation.js
+++ b/entity/Contract_entity/entityfields/contractdue/onValidation.js
@@ -7,5 +7,5 @@ var dateUtils = new DateUtils();
 var cDue = vars.get("$local.value");
 
 if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cDue) === false || dateUtils.validateBeginnBeforeEnd(cDue, vars.get("$field.CONTRACTEND")) === false) {
-    result.string(translate.text("Nächste Fälligkeit muss nach Vertragsbeginn und vor Vertragsende liegen!"));
+    result.string(translate.text("The next due date must be after the start of the contract and before the expiry of the contract!"));
 }
diff --git a/entity/Contract_entity/entityfields/contractend/onValidation.js b/entity/Contract_entity/entityfields/contractend/onValidation.js
index ab2e63d3e9b1848662474418d91988f30f4c4e79..395a6cc1c1c9b364724ceb28322251dcb7737cb0 100644
--- a/entity/Contract_entity/entityfields/contractend/onValidation.js
+++ b/entity/Contract_entity/entityfields/contractend/onValidation.js
@@ -1,12 +1,8 @@
-import("system.logging");
 import("system.neon");
 import("system.result");
-import("system.translate");
 import("system.vars");
 import("Date_lib");
 
-logging.log("###END_onValidation");
-
 var dateUtils = new DateUtils();
 var cEnd = vars.get("$local.value");
 var cDue = vars.get("$field.CONTRACTDUE");
@@ -15,4 +11,4 @@ if (cDue > cEnd && cDue != "")
     neon.setFieldValue("$field.CONTRACTDUE", cEnd);
 
 if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cEnd) === false)
-    result.string(translate.text("Das Ende-Datum muss nach dem Beginn-Datum liegen"));
\ No newline at end of file
+    result.string(dateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractid/valueProcess.js b/entity/Contract_entity/entityfields/contractid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractid/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/Contract_entity/entityfields/contractstart/onValidation.js b/entity/Contract_entity/entityfields/contractstart/onValidation.js
index d48c866c04d6ab612cc555fba35a129bdc141bd4..708535533f895c6c79495deb2000a2e9a3dcad33 100644
--- a/entity/Contract_entity/entityfields/contractstart/onValidation.js
+++ b/entity/Contract_entity/entityfields/contractstart/onValidation.js
@@ -1,12 +1,8 @@
-import("system.logging");
 import("system.neon");
 import("system.result");
-import("system.translate");
 import("system.vars");
 import("Date_lib");
 
-logging.log("###START_validation");
-
 var dateUtils = new DateUtils();
 var cStart = vars.get("$local.value");
 var cDue = vars.get("$field.CONTRACTDUE");
@@ -15,4 +11,4 @@ if (cDue < cStart && cDue != "")
     neon.setFieldValue("$field.CONTRACTDUE", cStart);
 
 if (dateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.CONTRACTEND")) === false)
-    result.string(translate.text("Das Ende-Datum muss nach dem Beginn-Datum liegen"));
\ No newline at end of file
+    result.string(dateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/relation_id/fieldIdProcess.js b/entity/Contract_entity/entityfields/relation_id/fieldIdProcess.js
index 70e9184ae257bc5c6ff7704d28009ca4d6444ce7..c354a6b460cbecf0233c20761c02c66415c20e72 100644
--- a/entity/Contract_entity/entityfields/relation_id/fieldIdProcess.js
+++ b/entity/Contract_entity/entityfields/relation_id/fieldIdProcess.js
@@ -1,6 +1,4 @@
 import("system.vars");
-import("system.db");
 import("system.result");
-import("system.neon");
 
 result.string (vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Org_entity/Org_entity.aod b/entity/Org_entity/Org_entity.aod
index 1906789e80a1005891cf3462cfd2271632d305ba..a25d34b1f522f29e604a9a3332c58ac4c048e212 100644
--- a/entity/Org_entity/Org_entity.aod
+++ b/entity/Org_entity/Org_entity.aod
@@ -281,6 +281,23 @@
         </entityParameter>
       </children>
     </entityOutgoingField>
+    <entityOutgoingField>
+      <name>OrgProductprice_dfo</name>
+      <title>Conditions</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <caption>Conditions</caption>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Productprice_entity</entityName>
+        <fieldName>OrgProductprice_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RelID_param</name>
+          <code>%aditoprj%/entity/Org_entity/entityfields/orgproductprice_dfo/children/relid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Org_entity/entityfields/orgproductprice_dfo/children/relid_param/code.js b/entity/Org_entity/entityfields/orgproductprice_dfo/children/relid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa257b8b78ed72ce888626a9fa22a890e3c9bf17
--- /dev/null
+++ b/entity/Org_entity/entityfields/orgproductprice_dfo/children/relid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.RELATIONID"));
\ No newline at end of file
diff --git a/entity/Pers_entity/Pers_entity.aod b/entity/Pers_entity/Pers_entity.aod
index 4f2e76fecc9db8a4d2cdd7cbd0ea5fbf595c31aa..3bde50426e7df363af3df0c628a7579347165569 100644
--- a/entity/Pers_entity/Pers_entity.aod
+++ b/entity/Pers_entity/Pers_entity.aod
@@ -359,6 +359,25 @@
         </entityParameter>
       </children>
     </entityOutgoingField>
+    <entityOutgoingField>
+      <name>PersPricelist_dfo</name>
+      <title>Conditions</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <caption>Conditions</caption>
+      <state>AUTO</state>
+      <stateProcess>%aditoprj%/entity/Pers_entity/entityfields/perspricelist_dfo/stateProcess.js</stateProcess>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Productprice_entity</entityName>
+        <fieldName>PersProductprice_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RelID_param</name>
+          <code>%aditoprj%/entity/Pers_entity/entityfields/perspricelist_dfo/children/relid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Pers_entity/entityfields/perspricelist_dfo/children/relid_param/code.js b/entity/Pers_entity/entityfields/perspricelist_dfo/children/relid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa257b8b78ed72ce888626a9fa22a890e3c9bf17
--- /dev/null
+++ b/entity/Pers_entity/entityfields/perspricelist_dfo/children/relid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.RELATIONID"));
\ No newline at end of file
diff --git a/entity/Pers_entity/entityfields/perspricelist_dfo/stateProcess.js b/entity/Pers_entity/entityfields/perspricelist_dfo/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..41f9da82fe6225865cafe66e1568f7d9421d4b9c
--- /dev/null
+++ b/entity/Pers_entity/entityfields/perspricelist_dfo/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.logging");
+import("system.vars");
+import("system.result");
+
+var org_id = vars.get("$field.ORG_ID").trim();
+
+if(org_id == "0")
+{
+    result.string("EDITABLE");
+}
+else
+{
+    result.string("INVISIBLE");
+}
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index ffd81f6318d950c6225d54963fc2b365668e45d0..aa87c91ce0b841ec76f18e4affe47fd9a319f042 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -11,7 +11,7 @@
       <name>ADVERTISING</name>
       <tableName>PRODUCT</tableName>
       <columnName>ADVERTISING</columnName>
-      <caption>Werbemittel</caption>
+      <caption>Advertising material</caption>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/Product_entity/entityfields/advertising/valueProcess.js</valueProcess>
@@ -36,7 +36,7 @@
       <name>GROUPCODEID</name>
       <tableName>PRODUCT</tableName>
       <columnName>GROUPCODEID</columnName>
-      <caption>Produktgruppe</caption>
+      <caption>Product group</caption>
       <mandatory v="true" />
       <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
@@ -44,7 +44,7 @@
       <name>MINSTOCK</name>
       <tableName>PRODUCT</tableName>
       <columnName>MINSTOCK</columnName>
-      <caption>Min.-Bestand</caption>
+      <caption>Min. stock</caption>
       <contentType>NUMBER</contentType>
       <outputFormat>#,##0.##</outputFormat>
     </entityField>
@@ -52,14 +52,14 @@
       <name>ORG_ID</name>
       <tableName>PRODUCT</tableName>
       <columnName>ORG_ID</columnName>
-      <caption>Hersteller</caption>
+      <caption>Developer</caption>
       <valueProcess>%aditoprj%/entity/Product_entity/entityfields/org_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PRODUCTCODE</name>
       <tableName>PRODUCT</tableName>
       <columnName>PRODUCTCODE</columnName>
-      <caption>Produkt-Nr.</caption>
+      <caption>Product no.</caption>
       <mandatory v="true" />
       <onValidation>%aditoprj%/entity/Product_entity/entityfields/productcode/onValidation.js</onValidation>
     </entityField>
@@ -67,12 +67,13 @@
       <name>PRODUCTID</name>
       <tableName>PRODUCT</tableName>
       <columnName>PRODUCTID</columnName>
+      <valueProcess>%aditoprj%/entity/Product_entity/entityfields/productid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PRODUCTNAME</name>
       <tableName>PRODUCT</tableName>
       <columnName>PRODUCTNAME</columnName>
-      <caption>Produktname</caption>
+      <caption>Product name</caption>
       <mandatory v="true" />
     </entityField>
     <entityField>
@@ -84,7 +85,7 @@
       <name>STATUS</name>
       <tableName>PRODUCT</tableName>
       <columnName>STATUS</columnName>
-      <caption>Aktiv</caption>
+      <caption>Active</caption>
       <contentType>BOOLEAN</contentType>
       <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/Product_entity/entityfields/status/valueProcess.js</valueProcess>
@@ -93,7 +94,7 @@
       <name>UNIT</name>
       <tableName>PRODUCT</tableName>
       <columnName>UNIT</columnName>
-      <caption>Einheit</caption>
+      <caption>Unit</caption>
       <mandatory v="true" />
       <possibleItemsProcess>%aditoprj%/entity/Product_entity/entityfields/unit/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
@@ -132,7 +133,7 @@
     </entityIncomingField>
     <entityField>
       <name>STOCKCOUNT</name>
-      <caption>Lagerbestand</caption>
+      <caption>Stock</caption>
     </entityField>
     <entityParameter>
       <name>OrgId_param</name>
@@ -143,15 +144,17 @@
     </entityParameter>
     <entityField>
       <name>currentPurchasePrice</name>
-      <caption>akt. EK-Preis</caption>
+      <caption>Curr. purchase price</caption>
     </entityField>
     <entityField>
       <name>currentSalesPrice</name>
-      <caption>akt. VK-Preis</caption>
+      <caption>Curr. sales price</caption>
     </entityField>
     <entityOutgoingField>
       <name>ProductProductprice_dfo</name>
+      <title>Price list</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <caption>Price list</caption>
       <dependency>
         <name>dependency</name>
         <entityName>Productprice_entity</entityName>
@@ -164,6 +167,35 @@
         </entityParameter>
       </children>
     </entityOutgoingField>
+    <entityIncomingField>
+      <name>Product_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>15dd9e6b-f551-452f-adce-53d7031ed468</name>
+          <entityName>Productprice_entity</entityName>
+          <fieldName>ProductpriceProduct_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
+    <entityOutgoingField>
+      <name>ProductStock_dfo</name>
+      <title>Stock</title>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <caption>Stock</caption>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Stock_entity</entityName>
+        <fieldName>ProductStock_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ProductId_param</name>
+          <code>%aditoprj%/entity/Product_entity/entityfields/productstock_dfo/children/productid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js b/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js
index 88409cc96839a46311a84f379e6b0e6a31841920..f31ec18e895bf707037b8c3986728f184322152e 100644
--- a/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js
+++ b/entity/Product_entity/entityfields/advertising/possibleItemsProcess.js
@@ -2,6 +2,6 @@ import("system.translate");
 import("system.result");
 
 result.object([
-     ["Y", translate.text("Ja")]
-    ,["N", translate.text("Nein")]
+     ["Y", translate.text("Yes")]
+    ,["N", translate.text("No")]
 ]);
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/productcode/onValidation.js b/entity/Product_entity/entityfields/productcode/onValidation.js
index 9c3a82d0063c2dd4ab29b8cbf2f8bb3211c4c034..5de6f5400bbaa5a1f6308a171078d3296d45d7bc 100644
--- a/entity/Product_entity/entityfields/productcode/onValidation.js
+++ b/entity/Product_entity/entityfields/productcode/onValidation.js
@@ -1,12 +1,11 @@
-import("system.db");
-import("system.vars");
-import("system.swing");
-import("system.result");
 import("system.translate");
+import("system.result");
+import("system.vars");
+import("system.db");
 
-//Productcode has to be unique
-if(db.cell("select count(PRODUCTID) from PRODUCT where PRODUCTCODE = '" + vars.get("$local.value")
-    + "' and PRODUCTID != '" + vars.get("$field.PRODUCTID") + "'") != 0)
+var codeCount = db.cell("select count(PRODUCTCODE) from PRODUCT where PRODUCTCODE = '" + vars.get("$local.value") + "'"
+                       + " and PRODUCTID <> '" + vars.get("$field.PRODUCTID") + "'");
+if(codeCount > 0)
 {
-    result.string( translate.text("Die Produktnummer exisitiert bereits!") );
+    result.string(translate.text("The product number already exists!"));
 }
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/productid/valueProcess.js b/entity/Product_entity/entityfields/productid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588
--- /dev/null
+++ b/entity/Product_entity/entityfields/productid/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/Product_entity/entityfields/productstock_dfo/children/productid_param/code.js b/entity/Product_entity/entityfields/productstock_dfo/children/productid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..24f19f37786781bff6661183f3fcd8ae8d1efb45
--- /dev/null
+++ b/entity/Product_entity/entityfields/productstock_dfo/children/productid_param/code.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.PRODUCTID"));
\ No newline at end of file
diff --git a/entity/Product_entity/entityfields/status/possibleItemsProcess.js b/entity/Product_entity/entityfields/status/possibleItemsProcess.js
index dd8baa43d335eeb12dc419d4bce5804dc9a1bb97..2098a9cd175a5c5fb4389008c4fc971153e11e6a 100644
--- a/entity/Product_entity/entityfields/status/possibleItemsProcess.js
+++ b/entity/Product_entity/entityfields/status/possibleItemsProcess.js
@@ -2,6 +2,6 @@ import("system.translate");
 import("system.result");
 
 result.object([
-     ["1", translate.text("Ja")]
-    ,["2", translate.text("Nein")]
+     ["1", translate.text("Yes")]
+    ,["2", translate.text("No")]
 ]);
\ No newline at end of file
diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod
index 6d5578caa8d3504e739696fc45ebede7423c7290..1358998db1fe92d2b2a2ba7af6fad48ca199b56d 100644
--- a/entity/Productprice_entity/Productprice_entity.aod
+++ b/entity/Productprice_entity/Productprice_entity.aod
@@ -1,22 +1,27 @@
 <?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>Productprice_entity</name>
+  <title>Price list</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <alias>Data_alias</alias>
   <recordContainerType>DB</recordContainerType>
+  <caption>Price list</caption>
   <entityFields>
     <entityField>
       <name>BUYSELL</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>BUYSELL</columnName>
-      <caption>EK/VK</caption>
+      <caption>PP/SP</caption>
+      <mandatory v="true" />
+      <mandatoryProcess>%aditoprj%/entity/Productprice_entity/entityfields/buysell/mandatoryProcess.js</mandatoryProcess>
       <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/buysell/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>CURRENCY</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>CURRENCY</columnName>
-      <caption>Währung</caption>
+      <caption>Currency</caption>
+      <mandatory v="true" />
       <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/currency/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
@@ -39,7 +44,7 @@
       <name>FROMQUANTITY</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>FROMQUANTITY</columnName>
-      <caption>ab Stückzahl</caption>
+      <caption>From no. of units</caption>
       <contentType>NUMBER</contentType>
       <outputFormat>#,##0</outputFormat>
     </entityField>
@@ -47,24 +52,34 @@
       <name>PRICE</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>PRICE</columnName>
-      <caption>Preis</caption>
+      <caption>Price</caption>
       <contentType>NUMBER</contentType>
       <outputFormat>#,##0.00</outputFormat>
+      <mandatory v="true" />
     </entityField>
     <entityField>
       <name>PRODUCTPRICEID</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>PRODUCTPRICEID</columnName>
+      <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/productpriceid/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PRODUCT_ID</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>PRODUCT_ID</columnName>
+      <caption>Product name</caption>
+      <linkedContext>Product_context</linkedContext>
+      <mandatory v="true" />
+      <outgoingField>ProductpriceProduct_dfo</outgoingField>
+      <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/possibleItemsProcess.js</possibleItemsProcess>
+      <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/valueProcess.js</valueProcess>
+      <fieldIdProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_id/fieldIdProcess.js</fieldIdProcess>
     </entityField>
     <entityField>
       <name>RELATION_ID</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>RELATION_ID</columnName>
+      <caption>Company</caption>
     </entityField>
     <entityField>
       <name>USER_EDIT</name>
@@ -82,22 +97,37 @@
       <name>VALID_FROM</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>VALID_FROM</columnName>
+      <caption>Valid from</caption>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <mandatory v="true" />
+      <onValidation>%aditoprj%/entity/Productprice_entity/entityfields/valid_from/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>VALID_TO</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>VALID_TO</columnName>
+      <caption>Valid until</caption>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <onValidation>%aditoprj%/entity/Productprice_entity/entityfields/valid_to/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>VAT</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>VAT</columnName>
+      <caption>VAT</caption>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
+      <mandatory v="true" />
     </entityField>
     <entityField>
       <name>PRICELIST</name>
       <tableName>PRODUCTPRICE</tableName>
       <columnName>PRICELIST</columnName>
+      <caption>Price list</caption>
       <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/possibleItemsProcess.js</possibleItemsProcess>
+      <state>AUTO</state>
     </entityField>
     <entityIncomingField>
       <name>ProductProductprice_dfi</name>
@@ -120,9 +150,62 @@
     </entityParameter>
     <entityField>
       <name>Pricelist_Relation</name>
-      <caption>Preisliste / Firma</caption>
+      <caption>Price list / Company</caption>
+      <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist_relation/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist_relation/valueProcess.js</valueProcess>
+      <onValueChange>%aditoprj%/entity/Productprice_entity/entityfields/pricelist_relation/onValueChange.js</onValueChange>
     </entityField>
+    <entityField>
+      <name>PRODUCT_GROUPCODEID</name>
+      <caption>Product group</caption>
+      <possibleItemsProcess>%aditoprj%/entity/Productprice_entity/entityfields/product_groupcodeid/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityIncomingField>
+      <name>OrgProductprice_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>93263731-7e48-4933-bdea-500a58a53357</name>
+          <entityName>Org_entity</entityName>
+          <fieldName>OrgProductprice_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
+    <entityParameter>
+      <name>RelID_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityIncomingField>
+      <name>PersProductprice_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>268bacb4-334d-42ba-9685-11e4854f0d85</name>
+          <entityName>Pers_entity</entityName>
+          <fieldName>PersPricelist_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>RelID_param</name>
+          <code>%aditoprj%/entity/Productprice_entity/entityfields/persproductprice_dfi/children/relid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityIncomingField>
+    <entityOutgoingField>
+      <name>ProductpriceProduct_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Product_entity</entityName>
+        <fieldName>Product_dfi</fieldName>
+      </dependency>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Productprice_entity/entityfields/buysell/mandatoryProcess.js b/entity/Productprice_entity/entityfields/buysell/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc886dd36565a2844d6801b8843fa78e7e6e0cf1
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/buysell/mandatoryProcess.js
@@ -0,0 +1,14 @@
+import("system.logging");
+import("system.vars");
+import("system.result");
+
+logging.log("#####ProductId_param:" + vars.get("$param.ProductId_param"));
+
+if(vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") != "")
+{
+    result.string("true");
+}
+else
+{
+    result.string("false");
+}
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/buysell/possibleItemsProcess.js b/entity/Productprice_entity/entityfields/buysell/possibleItemsProcess.js
index e77515b52f055838cbecc59e26a4c1a2b3514d55..5da424e274784b45e964216aa3a62cf03bdbacc4 100644
--- a/entity/Productprice_entity/entityfields/buysell/possibleItemsProcess.js
+++ b/entity/Productprice_entity/entityfields/buysell/possibleItemsProcess.js
@@ -2,6 +2,6 @@ import("system.translate");
 import("system.result");
 
 result.object([
-    ["EK", translate.text("EK")],
-    ["VK", translate.text("VK")]
+    ["PP", translate.text("PP")],
+    ["SP", translate.text("SP")]
     ]);
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/persproductprice_dfi/children/relid_param/code.js b/entity/Productprice_entity/entityfields/persproductprice_dfi/children/relid_param/code.js
new file mode 100644
index 0000000000000000000000000000000000000000..aa257b8b78ed72ce888626a9fa22a890e3c9bf17
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/persproductprice_dfi/children/relid_param/code.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.RELATIONID"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/pricelist_relation/onValueChange.js b/entity/Productprice_entity/entityfields/pricelist_relation/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8c3dba368e8d5d48a48b464b716b452b29459ab
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/pricelist_relation/onValueChange.js
@@ -0,0 +1,4 @@
+//import("system.neon");
+//import("system.vars");
+//
+//neon.setFieldValue("$field.PRICELIST", vars.get("$local.value"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/pricelist_relation/possibleItemsProcess.js b/entity/Productprice_entity/entityfields/pricelist_relation/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6b44f39adb82667f216ba46a76f1b3db73f83879
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/pricelist_relation/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("PRICELIST");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/product_groupcodeid/possibleItemsProcess.js b/entity/Productprice_entity/entityfields/product_groupcodeid/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec42dede214f092bd764b4151c5a0e93fa25de84
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/product_groupcodeid/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("GROUPCODE");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/product_id/fieldIdProcess.js b/entity/Productprice_entity/entityfields/product_id/fieldIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c354a6b460cbecf0233c20761c02c66415c20e72
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/product_id/fieldIdProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string (vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/product_id/possibleItemsProcess.js b/entity/Productprice_entity/entityfields/product_id/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/Productprice_entity/entityfields/product_id/valueProcess.js b/entity/Productprice_entity/entityfields/product_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4428a4ab94878205e5ce66644189ed3cb07b2e1b
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/product_id/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    if(vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") != null && vars.get("$param.ProductId_param") != "")
+        result.string(vars.getString("$param.ProductId_param"));    
+}
+
diff --git a/entity/Productprice_entity/entityfields/productpriceid/valueProcess.js b/entity/Productprice_entity/entityfields/productpriceid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/productpriceid/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/Productprice_entity/entityfields/valid_from/onValidation.js b/entity/Productprice_entity/entityfields/valid_from/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5e5361b6b6b1653cb2a8ce5b77ad1169d307c28
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/valid_from/onValidation.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.vars");
+import("Date_lib");
+
+var dateUtils = new DateUtils();
+var cStart = vars.get("$local.value");
+
+if (dateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.VALID_TO")) === false)
+    result.string(dateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/valid_to/onValidation.js b/entity/Productprice_entity/entityfields/valid_to/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..5558b9a4ab1023868ff63eb1da8e4166518d0d29
--- /dev/null
+++ b/entity/Productprice_entity/entityfields/valid_to/onValidation.js
@@ -0,0 +1,9 @@
+import("system.result");
+import("system.vars");
+import("Date_lib");
+
+var dateUtils = new DateUtils();
+var cEnd = vars.get("$local.value");
+
+if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.VALID_FROM"), cEnd) === false)
+    result.string(dateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Stock_entity/Stock_entity.aod b/entity/Stock_entity/Stock_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..695e012d5449a2af9b25969fc5ca7b4f0be9b671
--- /dev/null
+++ b/entity/Stock_entity/Stock_entity.aod
@@ -0,0 +1,114 @@
+<?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>Stock_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <alias>Data_alias</alias>
+  <conditionProcess>%aditoprj%/entity/Stock_entity/conditionProcess.js</conditionProcess>
+  <recordContainerType>DB</recordContainerType>
+  <entityFields>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <tableName>STOCK</tableName>
+      <columnName>DATE_EDIT</columnName>
+      <contentType>DATE</contentType>
+      <outputFormat>yyyy-MM-dd&amp;apos;T&amp;apos;HH:mm:ssZ</outputFormat>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <tableName>STOCK</tableName>
+      <columnName>DATE_NEW</columnName>
+      <contentType>DATE</contentType>
+      <outputFormat>yyyy-MM-dd&amp;apos;T&amp;apos;HH:mm:ssZ</outputFormat>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ENTRYDATE</name>
+      <tableName>STOCK</tableName>
+      <columnName>ENTRYDATE</columnName>
+      <caption>Date</caption>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/entrydate/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>IN_OUT</name>
+      <tableName>STOCK</tableName>
+      <columnName>IN_OUT</columnName>
+      <caption>I / O</caption>
+      <contentType>TEXT</contentType>
+      <possibleItemsProcess>%aditoprj%/entity/Stock_entity/entityfields/in_out/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>PRODUCT_ID</name>
+      <tableName>STOCK</tableName>
+      <columnName>PRODUCT_ID</columnName>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/product_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>QUANTITY</name>
+      <tableName>STOCK</tableName>
+      <columnName>QUANTITY</columnName>
+      <caption>Menge</caption>
+      <contentType>NUMBER</contentType>
+      <outputFormat></outputFormat>
+    </entityField>
+    <entityField>
+      <name>REFNUMBER</name>
+      <tableName>STOCK</tableName>
+      <columnName>REFNUMBER</columnName>
+      <caption>Reference</caption>
+    </entityField>
+    <entityField>
+      <name>STOCKID</name>
+      <tableName>STOCK</tableName>
+      <columnName>STOCKID</columnName>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/stockid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <tableName>STOCK</tableName>
+      <columnName>USER_EDIT</columnName>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <tableName>STOCK</tableName>
+      <columnName>USER_NEW</columnName>
+      <valueProcess>%aditoprj%/entity/Stock_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>WAREHOUSE</name>
+      <tableName>STOCK</tableName>
+      <columnName>WAREHOUSE</columnName>
+      <caption>Warehouse</caption>
+      <possibleItemsProcess>%aditoprj%/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityParameter>
+      <name>ProductId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityIncomingField>
+      <name>ProductStock_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>aa9264c8-2c96-4a7a-94c7-e38bc0ae7df3</name>
+          <entityName>Product_entity</entityName>
+          <fieldName>ProductStock_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
+  </entityFields>
+  <linkInformation>
+    <linkInformation>
+      <name>f8caac29-1e0d-4cf5-9137-fedd6a765d55</name>
+      <tableName>STOCK</tableName>
+      <primaryKey>STOCKID</primaryKey>
+      <isUIDTable v="true" />
+    </linkInformation>
+  </linkInformation>
+</entity>
diff --git a/entity/Stock_entity/conditionProcess.js b/entity/Stock_entity/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35ef2ecc7bdabe34ed689e2db72553356afde5a4
--- /dev/null
+++ b/entity/Stock_entity/conditionProcess.js
@@ -0,0 +1,8 @@
+import("system.logging");
+import("system.result");
+import("system.vars");
+
+if(vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") != null)
+    result.string("STOCK.PRODUCT_ID = ('" + vars.getString("$param.ProductId_param") + "')");  
+else
+    result.string("1 = 2");  
\ No newline at end of file
diff --git a/entity/Stock_entity/entityfields/date_edit/valueProcess.js b/entity/Stock_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..00e95d744eab3b281e0f6ae5ee325cee91419534
--- /dev/null
+++ b/entity/Stock_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/Stock_entity/entityfields/date_new/valueProcess.js b/entity/Stock_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ace62531432fbfb08b15fc33e25d271dc34bd6a
--- /dev/null
+++ b/entity/Stock_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/Stock_entity/entityfields/entrydate/valueProcess.js b/entity/Stock_entity/entityfields/entrydate/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ace62531432fbfb08b15fc33e25d271dc34bd6a
--- /dev/null
+++ b/entity/Stock_entity/entityfields/entrydate/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/Stock_entity/entityfields/in_out/possibleItemsProcess.js b/entity/Stock_entity/entityfields/in_out/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e87580dcd9e538b55135c0ffb2d179fd5d352f98
--- /dev/null
+++ b/entity/Stock_entity/entityfields/in_out/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.translate");
+
+result.object([
+    ["1", translate.text("IN")], 
+    ["-1", translate.text("OUT")]
+    ]);
\ No newline at end of file
diff --git a/entity/Stock_entity/entityfields/product_id/valueProcess.js b/entity/Stock_entity/entityfields/product_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4428a4ab94878205e5ce66644189ed3cb07b2e1b
--- /dev/null
+++ b/entity/Stock_entity/entityfields/product_id/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
+{
+    if(vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") != null && vars.get("$param.ProductId_param") != "")
+        result.string(vars.getString("$param.ProductId_param"));    
+}
+
diff --git a/entity/Stock_entity/entityfields/stockid/valueProcess.js b/entity/Stock_entity/entityfields/stockid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5be18c39832eee52e38b7147961d7db4bab5a588
--- /dev/null
+++ b/entity/Stock_entity/entityfields/stockid/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/Stock_entity/entityfields/user_edit/valueProcess.js b/entity/Stock_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..67c86b14ca987054658978c88cecf6bd03fa44af
--- /dev/null
+++ b/entity/Stock_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/Stock_entity/entityfields/user_new/valueProcess.js b/entity/Stock_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..81966a3fbcd9b3cf25a186c93baa1928abc9d6d2
--- /dev/null
+++ b/entity/Stock_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/Stock_entity/entityfields/warehouse/possibleItemsProcess.js b/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2f6ce317e1e0a5188118a66a2fbe3ec299afecc
--- /dev/null
+++ b/entity/Stock_entity/entityfields/warehouse/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("STOCK.WAREHOUSE");
+result.object(items);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index c7ad60356ce57d61cd321258c196cd916c193055..85d20120736b91a257c334746d86e346629f15a5 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -297,6 +297,243 @@
     <entry>
       <key>standard address</key>
     </entry>
+    <entry>
+      <key>PP</key>
+    </entry>
+    <entry>
+      <key>Liter</key>
+    </entry>
+    <entry>
+      <key>Key account</key>
+    </entry>
+    <entry>
+      <key>VAT</key>
+    </entry>
+    <entry>
+      <key>The expiry date must be after the start date!</key>
+    </entry>
+    <entry>
+      <key>Product</key>
+    </entry>
+    <entry>
+      <key>Developer</key>
+    </entry>
+    <entry>
+      <key>Valid until</key>
+    </entry>
+    <entry>
+      <key>Price list</key>
+    </entry>
+    <entry>
+      <key>Currency</key>
+    </entry>
+    <entry>
+      <key>Payment method</key>
+    </entry>
+    <entry>
+      <key>Pieces</key>
+    </entry>
+    <entry>
+      <key>${PRICELIST_DEFAULT}</key>
+    </entry>
+    <entry>
+      <key>Price list / Company</key>
+    </entry>
+    <entry>
+      <key>Service contract</key>
+    </entry>
+    <entry>
+      <key>Curr. sales price</key>
+    </entry>
+    <entry>
+      <key>CND</key>
+    </entry>
+    <entry>
+      <key>Contract</key>
+    </entry>
+    <entry>
+      <key>Stock</key>
+    </entry>
+    <entry>
+      <key>PP/SP</key>
+    </entry>
+    <entry>
+      <key>Next due date</key>
+    </entry>
+    <entry>
+      <key>Discount</key>
+    </entry>
+    <entry>
+      <key>Curr. purchase price</key>
+    </entry>
+    <entry>
+      <key>The next due date must be after the start of the contract and before the expiry of the contract!</key>
+    </entry>
+    <entry>
+      <key>Valid, unlimited</key>
+    </entry>
+    <entry>
+      <key>Sales</key>
+    </entry>
+    <entry>
+      <key>Contract number</key>
+    </entry>
+    <entry>
+      <key>Min. stock</key>
+    </entry>
+    <entry>
+      <key>SP</key>
+    </entry>
+    <entry>
+      <key>USD</key>
+    </entry>
+    <entry>
+      <key>Commodity group 3</key>
+    </entry>
+    <entry>
+      <key>Commodity group 2</key>
+    </entry>
+    <entry>
+      <key>None, individual count</key>
+    </entry>
+    <entry>
+      <key>Commodity group 1</key>
+    </entry>
+    <entry>
+      <key>Contract start date</key>
+    </entry>
+    <entry>
+      <key>Spare parts</key>
+    </entry>
+    <entry>
+      <key>Contact / Company</key>
+    </entry>
+    <entry>
+      <key>Kgs</key>
+    </entry>
+    <entry>
+      <key>CHF</key>
+    </entry>
+    <entry>
+      <key>Semiannually</key>
+    </entry>
+    <entry>
+      <key>Not signed yet</key>
+    </entry>
+    <entry>
+      <key>Unit</key>
+    </entry>
+    <entry>
+      <key>Annually</key>
+    </entry>
+    <entry>
+      <key>EUR</key>
+    </entry>
+    <entry>
+      <key>Maintenance contract</key>
+    </entry>
+    <entry>
+      <key>Valid, limited</key>
+    </entry>
+    <entry>
+      <key>Contract expiry date</key>
+    </entry>
+    <entry>
+      <key>Hours</key>
+    </entry>
+    <entry>
+      <key>Yes</key>
+    </entry>
+    <entry>
+      <key>Special price list1</key>
+    </entry>
+    <entry>
+      <key>Product no.</key>
+    </entry>
+    <entry>
+      <key>Type of contract</key>
+    </entry>
+    <entry>
+      <key>No</key>
+    </entry>
+    <entry>
+      <key>Framework contract</key>
+    </entry>
+    <entry>
+      <key>Service</key>
+    </entry>
+    <entry>
+      <key>Cancelled</key>
+    </entry>
+    <entry>
+      <key>Advertising material</key>
+    </entry>
+    <entry>
+      <key>Valid from</key>
+    </entry>
+    <entry>
+      <key>Product name</key>
+    </entry>
+    <entry>
+      <key>Quarterly</key>
+    </entry>
+    <entry>
+      <key>Product group</key>
+    </entry>
+    <entry>
+      <key>${PRICELIST_SERVICE}</key>
+    </entry>
+    <entry>
+      <key>${CONTRACT_STATUS}</key>
+    </entry>
+    <entry>
+      <key>From no. of units</key>
+    </entry>
+    <entry>
+      <key>Price</key>
+    </entry>
+    <entry>
+      <key>Conditions</key>
+    </entry>
+    <entry>
+      <key>Standard</key>
+    </entry>
+    <entry>
+      <key>I / O</key>
+    </entry>
+    <entry>
+      <key>Date</key>
+    </entry>
+    <entry>
+      <key>IN</key>
+    </entry>
+    <entry>
+      <key>OUT</key>
+    </entry>
+    <entry>
+      <key>Menge</key>
+    </entry>
+    <entry>
+      <key>Warehouse</key>
+    </entry>
+    <entry>
+      <key>Warehouse 2</key>
+    </entry>
+    <entry>
+      <key>Warehouse 1</key>
+    </entry>
+    <entry>
+      <key>Warehouse 3</key>
+    </entry>
+    <entry>
+      <key>Reference</key>
+    </entry>
+    <entry>
+      <key>The contract number already exists!</key>
+    </entry>
+    <entry>
+      <key>The product number already exists!</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 b7dfaee3c09650cb76b0a99a8c59d73439680888..bc03fe3d3286cee471e2507af28e1cb27808eecd 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -319,21 +319,25 @@
     </entry>
     <entry>
       <key>Bestätigt</key>
+      <value></value>
     </entry>
     <entry>
       <key>Benutzer</key>
+      <value></value>
     </entry>
     <entry>
       <key>frei</key>
     </entry>
     <entry>
       <key>Vorläufig</key>
+      <value></value>
     </entry>
     <entry>
       <key>Monatliche Serie nicht genauer spezifiziert. Ignoriere Serie.</key>
     </entry>
     <entry>
       <key>Betreff</key>
+      <value></value>
     </entry>
     <entry>
       <key>Internal (2)</key>
@@ -365,6 +369,7 @@
     </entry>
     <entry>
       <key>Ein Gruppentermin kann nur durch den Organisator bearbeitet werden.</key>
+      <value></value>
     </entry>
     <entry>
       <key>Communication Other</key>
@@ -382,6 +387,321 @@
       <key>standard address</key>
       <value>Standardadresse</value>
     </entry>
+    <entry>
+      <key>PP</key>
+      <value>EK</value>
+    </entry>
+    <entry>
+      <key>Liter</key>
+      <value>Liter</value>
+    </entry>
+    <entry>
+      <key>Key account</key>
+      <value>Großkunde</value>
+    </entry>
+    <entry>
+      <key>VAT</key>
+      <value>UmsSt.</value>
+    </entry>
+    <entry>
+      <key>The expiry date must be after the start date!</key>
+      <value>Das Ende-Datum muss nach dem Beginn-Datum liegen!</value>
+    </entry>
+    <entry>
+      <key>Product</key>
+      <value>Produkt</value>
+    </entry>
+    <entry>
+      <key>Developer</key>
+      <value>Hersteller</value>
+    </entry>
+    <entry>
+      <key>Valid until</key>
+      <value>gültig bis</value>
+    </entry>
+    <entry>
+      <key>Price list</key>
+      <value>Preisliste</value>
+    </entry>
+    <entry>
+      <key>Currency</key>
+      <value>Währung</value>
+    </entry>
+    <entry>
+      <key>Payment method</key>
+      <value>Zahlweise</value>
+    </entry>
+    <entry>
+      <key>Pieces</key>
+      <value>Stück</value>
+    </entry>
+    <entry>
+      <key>${PRICELIST_DEFAULT}</key>
+      <value>Standard</value>
+    </entry>
+    <entry>
+      <key>Price list / Company</key>
+      <value>Preisliste / Firma</value>
+    </entry>
+    <entry>
+      <key>Service contract</key>
+      <value>Werksvertrag</value>
+    </entry>
+    <entry>
+      <key>Curr. sales price</key>
+      <value>akt. VK-Preis</value>
+    </entry>
+    <entry>
+      <key>CND</key>
+      <value>CND</value>
+    </entry>
+    <entry>
+      <key>Contract</key>
+      <value>Vertrag</value>
+    </entry>
+    <entry>
+      <key>Stock</key>
+      <value>Lagerbestand</value>
+    </entry>
+    <entry>
+      <key>PP/SP</key>
+      <value>EK/VK</value>
+    </entry>
+    <entry>
+      <key>Next due date</key>
+      <value>nächste Fälligkeit</value>
+    </entry>
+    <entry>
+      <key>Discount</key>
+      <value>Rabatt</value>
+    </entry>
+    <entry>
+      <key>Curr. purchase price</key>
+      <value>akt. EK-Preis</value>
+    </entry>
+    <entry>
+      <key>The next due date must be after the start of the contract and before the expiry of the contract!</key>
+      <value>Nächste Fälligkeit muss nach Vertragsbeginn und vor Vertragsende liegen!</value>
+    </entry>
+    <entry>
+      <key>Valid, unlimited</key>
+      <value>gültig, unbefristet</value>
+    </entry>
+    <entry>
+      <key>Sales</key>
+      <value>Vertrieb</value>
+    </entry>
+    <entry>
+      <key>Contract number</key>
+      <value>Vertragsnummer</value>
+    </entry>
+    <entry>
+      <key>Min. stock</key>
+      <value>Min.-Bestand</value>
+    </entry>
+    <entry>
+      <key>SP</key>
+      <value>VK</value>
+    </entry>
+    <entry>
+      <key>USD</key>
+      <value>USD</value>
+    </entry>
+    <entry>
+      <key>Commodity group 3</key>
+      <value>Warengruppe 3</value>
+    </entry>
+    <entry>
+      <key>Commodity group 2</key>
+      <value>Warengruppe 2</value>
+    </entry>
+    <entry>
+      <key>None, individual count</key>
+      <value>keiner, Einzelberechnung</value>
+    </entry>
+    <entry>
+      <key>Commodity group 1</key>
+      <value>Warengruppe 1</value>
+    </entry>
+    <entry>
+      <key>Contract start date</key>
+      <value>Vertragsbeginn</value>
+    </entry>
+    <entry>
+      <key>Spare parts</key>
+      <value>Ersatzteile</value>
+    </entry>
+    <entry>
+      <key>Contact / Company</key>
+      <value>Person / Firma</value>
+    </entry>
+    <entry>
+      <key>Kgs</key>
+      <value>Kg</value>
+    </entry>
+    <entry>
+      <key>CHF</key>
+      <value>CHF</value>
+    </entry>
+    <entry>
+      <key>Semiannually</key>
+      <value>halbjährlich</value>
+    </entry>
+    <entry>
+      <key>Not signed yet</key>
+      <value>noch nicht unterschrieben</value>
+    </entry>
+    <entry>
+      <key>Unit</key>
+      <value>Einheit</value>
+    </entry>
+    <entry>
+      <key>Annually</key>
+      <value>jährlich</value>
+    </entry>
+    <entry>
+      <key>EUR</key>
+      <value>EUR</value>
+    </entry>
+    <entry>
+      <key>Maintenance contract</key>
+      <value>Wartungsvertrag</value>
+    </entry>
+    <entry>
+      <key>Valid, limited</key>
+      <value>gültig, befristet</value>
+    </entry>
+    <entry>
+      <key>Contract expiry date</key>
+      <value>Vertragsende</value>
+    </entry>
+    <entry>
+      <key>Hours</key>
+      <value>Stunden</value>
+    </entry>
+    <entry>
+      <key>Yes</key>
+      <value>Ja</value>
+    </entry>
+    <entry>
+      <key>Special price list1</key>
+      <value>Sonderpreisliste1</value>
+    </entry>
+    <entry>
+      <key>Product no.</key>
+      <value>Produkt-Nr.</value>
+    </entry>
+    <entry>
+      <key>Type of contract</key>
+      <value>Vertragsart</value>
+    </entry>
+    <entry>
+      <key>No</key>
+      <value>Nein</value>
+    </entry>
+    <entry>
+      <key>Framework contract</key>
+      <value>Rahmenvertrag</value>
+    </entry>
+    <entry>
+      <key>Service</key>
+      <value>Dienstleistung</value>
+    </entry>
+    <entry>
+      <key>Cancelled</key>
+      <value>gekündigt</value>
+    </entry>
+    <entry>
+      <key>Advertising material</key>
+      <value>Werbemittel</value>
+    </entry>
+    <entry>
+      <key>Valid from</key>
+      <value>gültig ab</value>
+    </entry>
+    <entry>
+      <key>Product name</key>
+      <value>Produktname</value>
+    </entry>
+    <entry>
+      <key>Quarterly</key>
+      <value>vierteljährlich</value>
+    </entry>
+    <entry>
+      <key>Product group</key>
+      <value>Produktgruppe</value>
+    </entry>
+    <entry>
+      <key>${PRICELIST_SERVICE}</key>
+      <value>Service</value>
+    </entry>
+    <entry>
+      <key>${CONTRACT_STATUS}</key>
+      <value>Status</value>
+    </entry>
+    <entry>
+      <key>From no. of units</key>
+      <value>ab Stückzahl</value>
+    </entry>
+    <entry>
+      <key>Price</key>
+      <value>Preis</value>
+    </entry>
+    <entry>
+      <key>Conditions</key>
+      <value>Konditionen</value>
+    </entry>
+    <entry>
+      <key>Standard</key>
+    </entry>
+    <entry>
+      <key>I / O</key>
+      <value>E / A</value>
+    </entry>
+    <entry>
+      <key>Date</key>
+      <value>Datum</value>
+    </entry>
+    <entry>
+      <key>IN</key>
+      <value>EIN</value>
+    </entry>
+    <entry>
+      <key>OUT</key>
+      <value>AUS</value>
+    </entry>
+    <entry>
+      <key>Menge</key>
+      <value>Quantity</value>
+    </entry>
+    <entry>
+      <key>Warehouse</key>
+      <value>Lager</value>
+    </entry>
+    <entry>
+      <key>Warehouse 2</key>
+      <value>Lager 2</value>
+    </entry>
+    <entry>
+      <key>Warehouse 1</key>
+      <value>Lager 1</value>
+    </entry>
+    <entry>
+      <key>Warehouse 3</key>
+      <value>Lager 3</value>
+    </entry>
+    <entry>
+      <key>Reference</key>
+      <value>Referenz</value>
+    </entry>
+    <entry>
+      <key>The contract number already exists!</key>
+      <value>Die Vertragsnummer existiert bereits!</value>
+    </entry>
+    <entry>
+      <key>The product number already exists!</key>
+      <value>Die Produktnummer existiert bereits!</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 399a5d44fbc46af244fd779a4e4d372a9755820f..23910819b7db0dd862c99b52ddf2abd4e359c637 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -302,6 +302,246 @@
     <entry>
       <key>standard address</key>
     </entry>
+    <entry>
+      <key>PP</key>
+    </entry>
+    <entry>
+      <key>Liter</key>
+    </entry>
+    <entry>
+      <key>Key account</key>
+    </entry>
+    <entry>
+      <key>VAT</key>
+    </entry>
+    <entry>
+      <key>The expiry date must be after the start date!</key>
+    </entry>
+    <entry>
+      <key>Product</key>
+    </entry>
+    <entry>
+      <key>Developer</key>
+    </entry>
+    <entry>
+      <key>Valid until</key>
+    </entry>
+    <entry>
+      <key>Price list</key>
+    </entry>
+    <entry>
+      <key>Currency</key>
+    </entry>
+    <entry>
+      <key>Payment method</key>
+    </entry>
+    <entry>
+      <key>Pieces</key>
+    </entry>
+    <entry>
+      <key>${PRICELIST_DEFAULT}</key>
+      <value>Default</value>
+    </entry>
+    <entry>
+      <key>Price list / Company</key>
+    </entry>
+    <entry>
+      <key>Service contract</key>
+    </entry>
+    <entry>
+      <key>Curr. sales price</key>
+    </entry>
+    <entry>
+      <key>CND</key>
+    </entry>
+    <entry>
+      <key>Contract</key>
+    </entry>
+    <entry>
+      <key>Stock</key>
+    </entry>
+    <entry>
+      <key>PP/SP</key>
+    </entry>
+    <entry>
+      <key>Next due date</key>
+    </entry>
+    <entry>
+      <key>Discount</key>
+    </entry>
+    <entry>
+      <key>Curr. purchase price</key>
+    </entry>
+    <entry>
+      <key>The next due date must be after the start of the contract and before the expiry of the contract!</key>
+    </entry>
+    <entry>
+      <key>Valid, unlimited</key>
+    </entry>
+    <entry>
+      <key>Sales</key>
+    </entry>
+    <entry>
+      <key>Contract number</key>
+    </entry>
+    <entry>
+      <key>Min. stock</key>
+    </entry>
+    <entry>
+      <key>SP</key>
+    </entry>
+    <entry>
+      <key>USD</key>
+    </entry>
+    <entry>
+      <key>Commodity group 3</key>
+    </entry>
+    <entry>
+      <key>Commodity group 2</key>
+    </entry>
+    <entry>
+      <key>None, individual count</key>
+    </entry>
+    <entry>
+      <key>Commodity group 1</key>
+    </entry>
+    <entry>
+      <key>Contract start date</key>
+    </entry>
+    <entry>
+      <key>Spare parts</key>
+    </entry>
+    <entry>
+      <key>Contact / Company</key>
+    </entry>
+    <entry>
+      <key>Kgs</key>
+    </entry>
+    <entry>
+      <key>CHF</key>
+    </entry>
+    <entry>
+      <key>Semiannually</key>
+    </entry>
+    <entry>
+      <key>Not signed yet</key>
+    </entry>
+    <entry>
+      <key>Unit</key>
+    </entry>
+    <entry>
+      <key>Annually</key>
+    </entry>
+    <entry>
+      <key>EUR</key>
+    </entry>
+    <entry>
+      <key>Maintenance contract</key>
+    </entry>
+    <entry>
+      <key>Valid, limited</key>
+    </entry>
+    <entry>
+      <key>Contract expiry date</key>
+    </entry>
+    <entry>
+      <key>Hours</key>
+    </entry>
+    <entry>
+      <key>Yes</key>
+    </entry>
+    <entry>
+      <key>Special price list1</key>
+    </entry>
+    <entry>
+      <key>Product no.</key>
+    </entry>
+    <entry>
+      <key>Type of contract</key>
+    </entry>
+    <entry>
+      <key>No</key>
+    </entry>
+    <entry>
+      <key>Framework contract</key>
+    </entry>
+    <entry>
+      <key>Service</key>
+    </entry>
+    <entry>
+      <key>Cancelled</key>
+    </entry>
+    <entry>
+      <key>Advertising material</key>
+    </entry>
+    <entry>
+      <key>Valid from</key>
+    </entry>
+    <entry>
+      <key>Product name</key>
+    </entry>
+    <entry>
+      <key>Quarterly</key>
+    </entry>
+    <entry>
+      <key>Product group</key>
+    </entry>
+    <entry>
+      <key>${PRICELIST_SERVICE}</key>
+      <value>Service</value>
+    </entry>
+    <entry>
+      <key>${CONTRACT_STATUS}</key>
+      <value>Status</value>
+    </entry>
+    <entry>
+      <key>From no. of units</key>
+    </entry>
+    <entry>
+      <key>Price</key>
+    </entry>
+    <entry>
+      <key>Conditions</key>
+    </entry>
+    <entry>
+      <key>Standard</key>
+    </entry>
+    <entry>
+      <key>I / O</key>
+    </entry>
+    <entry>
+      <key>Date</key>
+    </entry>
+    <entry>
+      <key>IN</key>
+    </entry>
+    <entry>
+      <key>OUT</key>
+    </entry>
+    <entry>
+      <key>Menge</key>
+    </entry>
+    <entry>
+      <key>Warehouse</key>
+    </entry>
+    <entry>
+      <key>Warehouse 2</key>
+    </entry>
+    <entry>
+      <key>Warehouse 1</key>
+    </entry>
+    <entry>
+      <key>Warehouse 3</key>
+    </entry>
+    <entry>
+      <key>Reference</key>
+    </entry>
+    <entry>
+      <key>The contract number already exists!</key>
+    </entry>
+    <entry>
+      <key>The product number already exists!</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Product_context/Product_context.aod b/neonContext/Product_context/Product_context.aod
index 40fafab151b7d1b7a8df4588c3c8d18c4b9b56df..aaded98da9191d609ac03eefc061ca2b20b33d18 100644
--- a/neonContext/Product_context/Product_context.aod
+++ b/neonContext/Product_context/Product_context.aod
@@ -7,6 +7,7 @@
   <filterview>ProductFilter_view</filterview>
   <editview>ProductEdit_view</editview>
   <preview>ProductPreview_view</preview>
+  <lookupview>ProductFilter_view</lookupview>
   <entity>Product_entity</entity>
   <references>
     <neonViewReference>
diff --git a/neonContext/Productprice_context/Productprice_context.aod b/neonContext/Productprice_context/Productprice_context.aod
index a6dd6fc15c074a8fdc093e961c20181232fdf60e..9b7a23a449810d5f92adf19ec7f5b361d8c19a3d 100644
--- a/neonContext/Productprice_context/Productprice_context.aod
+++ b/neonContext/Productprice_context/Productprice_context.aod
@@ -3,11 +3,20 @@
   <name>Productprice_context</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <filterview>ProductpriceFilter_view</filterview>
+  <editview>ProductpriceEdit_view</editview>
   <entity>Productprice_entity</entity>
   <references>
     <neonViewReference>
       <name>cb76925e-63da-45c8-b332-e0fd2faff26e</name>
       <view>ProductpriceFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>5d987a22-773d-4353-87d5-8da2427f4239</name>
+      <view>ProductpriceEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>d1c8b084-a20b-49ae-88fe-7a578396d4a5</name>
+      <view>ProductpriceRelation_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Stock_context/Stock_context.aod b/neonContext/Stock_context/Stock_context.aod
new file mode 100644
index 0000000000000000000000000000000000000000..f9bebb231c0b9f33062ef3c1a625a32bb332149f
--- /dev/null
+++ b/neonContext/Stock_context/Stock_context.aod
@@ -0,0 +1,18 @@
+<?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>Stock_context</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterview>StockFilter_view</filterview>
+  <editview>StockEdit_view</editview>
+  <entity>Stock_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>cf5ed980-dc4f-40b2-9e85-cad631bd1c85</name>
+      <view>StockFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>29d6a038-220f-411c-95ac-335e6779b1fa</name>
+      <view>StockEdit_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/OrgMain_view/OrgMain_view.aod b/neonView/OrgMain_view/OrgMain_view.aod
index edb4bb4693ef97734f73efa8ada4fe2fc86b9acc..8a580cad3a558d7225371e2f39be9055993e3468 100644
--- a/neonView/OrgMain_view/OrgMain_view.aod
+++ b/neonView/OrgMain_view/OrgMain_view.aod
@@ -25,5 +25,10 @@
       <entityField>PersOrg_dfo</entityField>
       <view>PersFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>78aee175-d3ac-4378-8b3b-27f44a529aa5</name>
+      <entityField>OrgProductprice_dfo</entityField>
+      <view>ProductpriceRelation_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/PersMain_view/PersMain_view.aod b/neonView/PersMain_view/PersMain_view.aod
index 5f77bdaab1821fb500a21fa9c0a13b65fe54691b..5aae7090e565a1e7200796fc9c02144c91700caa 100644
--- a/neonView/PersMain_view/PersMain_view.aod
+++ b/neonView/PersMain_view/PersMain_view.aod
@@ -19,5 +19,10 @@
       <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/ProductMain_view/ProductMain_view.aod b/neonView/ProductMain_view/ProductMain_view.aod
index 4a3ba7c08129890f867755cc97bc48a9f5fce92e..fb403a674b627419e97cfa8eb220458dbbd99f48 100644
--- a/neonView/ProductMain_view/ProductMain_view.aod
+++ b/neonView/ProductMain_view/ProductMain_view.aod
@@ -2,4 +2,27 @@
 <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>ProductMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>9ff71d55-84be-411e-9637-5dc0eba6c79e</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>9ff71d55-84be-411e-9637-5dc0eba6c79e</name>
+      <entityField>#ENTITY</entityField>
+      <view>ProductPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>11c4c5a0-27fa-4748-a6c6-3a667d2f3d8f</name>
+      <entityField>ProductProductprice_dfo</entityField>
+      <view>ProductpriceFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>076b1373-def3-4f1b-8228-51410cc9decf</name>
+      <entityField>ProductStock_dfo</entityField>
+      <view>StockFilter_view</view>
+    </neonViewReference>
+  </children>
 </neonView>
diff --git a/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9f54f721136c00246d507a06439bf8aa962ecffb
--- /dev/null
+++ b/neonView/ProductpriceEdit_view/ProductpriceEdit_view.aod
@@ -0,0 +1,55 @@
+<?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>ProductpriceEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Productprice_generic</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>1df849bc-354d-4c52-a468-638a58966270</name>
+          <entityField>PRICELIST</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>fa21fa53-ac64-44b1-a5d1-8a1af16590fe</name>
+          <entityField>VALID_FROM</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>62012f94-6139-4419-9124-12c6f6720a71</name>
+          <entityField>VALID_TO</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>e82da6cf-63f2-4d52-a7e5-38e775b4c123</name>
+          <entityField>PRICE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3685f50e-e21c-4091-9246-d042cf1e0fa9</name>
+          <entityField>BUYSELL</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3a9e1f32-2c7e-42ab-8ffb-7e4e32c40bd6</name>
+          <entityField>FROMQUANTITY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>562e1b29-ba29-4eae-b8f0-473935ea62a3</name>
+          <entityField>VAT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ca06ebcb-abf5-4606-98cd-fd54dccce6d0</name>
+          <entityField>CURRENCY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>21c8be49-ee64-4d9c-a8b0-eb44575cfd01</name>
+          <entityField>PRODUCT_ID</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
index 364cb7d0c188f24c4be39e02310be6f886797e64..c3b1ebfd15c231d4f665ba9a71237d80b848ff95 100644
--- a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
+++ b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod
@@ -2,6 +2,7 @@
 <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>ProductpriceFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <quickAdd v="false" />
   <layout>
     <boxLayout>
       <name>layout</name>
@@ -10,14 +11,39 @@
   <children>
     <tableViewTemplate>
       <name>Table_template</name>
+      <autoNewRow v="true" />
       <entityField>#ENTITY</entityField>
       <columns>
+        <neonTableColumn>
+          <name>695ce7be-d738-48a9-833d-e8815c6eff74</name>
+          <entityField>Pricelist_Relation</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name>
+          <entityField>VALID_FROM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name>
+          <entityField>VALID_TO</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>56902ebb-b48b-42f9-b867-fb2b07527461</name>
+          <entityField>PRICE</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>15a669d9-b089-4134-89a0-129de6e1e68c</name>
           <entityField>BUYSELL</entityField>
         </neonTableColumn>
         <neonTableColumn>
           <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name>
+          <entityField>FROMQUANTITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>981f29b1-b4c5-4591-8064-21a72f339179</name>
+          <entityField>VAT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name>
           <entityField>CURRENCY</entityField>
         </neonTableColumn>
       </columns>
diff --git a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..f9b2431be4c67d072640199adea97c97900f99b1
--- /dev/null
+++ b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.0">
+  <name>ProductpriceRelation_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <quickAdd v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table_template</name>
+      <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>0b2271ca-f55f-4339-b63f-f6f95d1d18e6</name>
+          <entityField>PRODUCT_GROUPCODEID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>9b809450-cbe5-40f3-8d64-b4a5bac5eb5b</name>
+          <entityField>PRODUCT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>fd5ab54d-439c-4836-a761-3af16e437a0e</name>
+          <entityField>VALID_FROM</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>da4728b2-d5fe-4df1-84e5-a77a653dc558</name>
+          <entityField>VALID_TO</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>4fd6845e-cb3a-4fe3-8900-3b58a86cb374</name>
+          <entityField>FROMQUANTITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>3ed800e0-a630-42b4-9dda-288ab5eefc69</name>
+          <entityField>PRICE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>20efd64c-297d-4774-b020-437d3610e798</name>
+          <entityField>CURRENCY</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/StockEdit_view/StockEdit_view.aod b/neonView/StockEdit_view/StockEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..14e1a6c4b107aa7424c1bf7ec0e5e8d0c1a1b244
--- /dev/null
+++ b/neonView/StockEdit_view/StockEdit_view.aod
@@ -0,0 +1,39 @@
+<?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>StockEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Generic_template</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>4c474e8e-ad47-484a-91fb-a8bd6390e0af</name>
+          <entityField>WAREHOUSE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>588e46dd-4761-47cb-87c3-a483f69fecae</name>
+          <entityField>ENTRYDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9f8426c6-84d6-4065-880a-805ebecb6638</name>
+          <entityField>IN_OUT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>8004c2e8-5ef1-480c-9381-dad3cd574dca</name>
+          <entityField>QUANTITY</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>591e6fbd-d392-458e-a79a-d20e9cb845d3</name>
+          <entityField>REFNUMBER</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/StockFilter_view/StockFilter_view.aod b/neonView/StockFilter_view/StockFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..65c6327aa9c98380282a64c41b0c2e35e3128028
--- /dev/null
+++ b/neonView/StockFilter_view/StockFilter_view.aod
@@ -0,0 +1,39 @@
+<?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>StockFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Table_template</name>
+      <autoNewRow v="true" />
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>135080e7-1d91-4be2-8bdb-8368e247127d</name>
+          <entityField>WAREHOUSE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>1a744bfe-b078-4ac4-a930-f1c8cd3ecac7</name>
+          <entityField>ENTRYDATE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>fea73255-6fd2-4a32-8e53-37f47fa57ac1</name>
+          <entityField>IN_OUT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>a5dcfc3a-c464-4c63-bd2d-ebe4d195b45b</name>
+          <entityField>QUANTITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>82f57c96-613e-4699-925d-a49a0ef8a29f</name>
+          <entityField>REFNUMBER</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/others/db_changes/masterChangelog.xml b/others/db_changes/masterChangelog.xml
index 16175150af5e61461b43ce78da813153ccdfb548..ee76531830eadd8c20d9b6e685bc4fa4e5d4927c 100644
--- a/others/db_changes/masterChangelog.xml
+++ b/others/db_changes/masterChangelog.xml
@@ -12,6 +12,9 @@
     <include file="struct/create_product.xml"/>
     <include file="struct/create_prod2prod.xml"/>
     <include file="struct/create_productprice.xml"/>
+    <include file="struct/create_stock.xml"/>
+    <include file="struct/contractChanges.xml"/>
+    <include file="struct/productChanges.xml"/>
     <include file="misc/1535533490181_persChanges.xml"/>
     <include file="struct/1535612802325_addressChange.xml"/>
     <include file="data/example_org/ORG_privat.xml"/>
diff --git a/others/db_changes/struct/contractChanges.xml b/others/db_changes/struct/contractChanges.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f7f2e2c301f1d2493348bd0943e6bf98687ffcd3
--- /dev/null
+++ b/others/db_changes/struct/contractChanges.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="eae40a20-2a4a-4a96-99f6-b66fb9f5e6c9">
+        <addUniqueConstraint tableName="CONTRACT" columnNames="CONTRACTCODE" constraintName="unique_CONTRACT_CONTRACTCODE"/>
+
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/struct/create_stock.xml b/others/db_changes/struct/create_stock.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5450df334f226cfa463115fa86e56d53dd65e92b
--- /dev/null
+++ b/others/db_changes/struct/create_stock.xml
@@ -0,0 +1,26 @@
+<?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="1f68f308-a82d-4e68-82c0-aa2bb6e8a8f1">
+	<createTable tableName="STOCK">
+		<column name="STOCKID" type="CHAR(36)">
+			<constraints primaryKey="true" primaryKeyName="PK_STOCK_STOCKID"/>
+		</column>    
+                <column name="IN_OUT" type="INTEGER"/>
+                <column name="QUANTITY" type="NUMERIC(14,2)"/>
+                <column name="REFNUMBER" type="VARCHAR(50)"/>
+                <column name="PRODUCT_ID" type="CHAR(36)">
+                    <constraints nullable="false" foreignKeyName="FK_STOCK_PRODUCT_ID" references="PRODUCT(PRODUCTID)"/>
+                </column>
+                <column name="ENTRYDATE" type="TIMESTAMP"/>
+                <column name="WAREHOUSE" 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/productChanges.xml b/others/db_changes/struct/productChanges.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c5f418ec6809f83845b156ee337ae878e2e26c0
--- /dev/null
+++ b/others/db_changes/struct/productChanges.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="9d7715ea-da67-4579-b591-ab4cd871e320">
+        <addUniqueConstraint tableName="PRODUCT" columnNames="PRODUCTCODE" constraintName="unique_PRODUCT_PRODUCTCODE"/>
+        <rollback>
+            <dropUniqueConstraint tableName="PRODUCT" constraintName="unique_PRODUCT_PRODUCTCODE"/>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/process/Date_lib/process.js b/process/Date_lib/process.js
index 116db949910cd572600dbe4883119bdac4294535..fd70a766cc9dbb38afecdc501d0c8d83b79168e4 100644
--- a/process/Date_lib/process.js
+++ b/process/Date_lib/process.js
@@ -1,3 +1,4 @@
+import("system.translate");
 /**
  * provides methods for interactions with dates
  */
@@ -15,5 +16,8 @@ function DateUtils(){
         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!");
+    }
 }
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index fb28a27a9d44c834aa0f4b40c3eac43bd857f273..5a86e8886e47eff2e87bf296b0d76cca698c22b9 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -123,51 +123,51 @@ function KeywordUtils(){
                 break;
             case "CONTRACT.CONTRACTTYPE":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("0", translate.text("Rahmenvertrag"))
-                    ,createKeywordEntry("1", translate.text("Werksvertrag"))
-                    ,createKeywordEntry("2", translate.text("Wartungsvertrag"))
+                     createKeywordEntry("0", translate.text("Framework contract"))
+                    ,createKeywordEntry("1", translate.text("Service contract"))
+                    ,createKeywordEntry("2", translate.text("Maintenance contract"))
                 ]);
                 break;
             case "CONTRACT.CONTRACTSTATUS":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("0", translate.text("gültig, unbefristet"))
-                    ,createKeywordEntry("1", translate.text("gültig, befristet"))
-                    ,createKeywordEntry("2", translate.text("noch nicht unterschrieben"))
-                    ,createKeywordEntry("3", translate.text("keiner, Einzelberechnung"))
-                    ,createKeywordEntry("4", translate.text("gekündigt"))
+                     createKeywordEntry("0", translate.text("Valid, unlimited"))
+                    ,createKeywordEntry("1", translate.text("Valid, limited"))
+                    ,createKeywordEntry("2", translate.text("Not signed yet"))
+                    ,createKeywordEntry("3", translate.text("None, individual count"))
+                    ,createKeywordEntry("4", translate.text("Cancelled"))
                 ]);
                 break;
             case "CONTRACT.PAYMENT":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("0", translate.text("jährlich"))
-                    ,createKeywordEntry("1", translate.text("halbjährlich"))
-                    ,createKeywordEntry("2", translate.text("vierteljährlich"))
+                     createKeywordEntry("0", translate.text("Annually"))
+                    ,createKeywordEntry("1", translate.text("Semiannually"))
+                    ,createKeywordEntry("2", translate.text("Quarterly"))
                 ]);
                 break;
             case "GROUPCODE":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Warengruppe 1"))
-                    ,createKeywordEntry("2", translate.text("Warengruppe 2"))
-                    ,createKeywordEntry("3", translate.text("Warengruppe 3"))
-                    ,createKeywordEntry("4", translate.text("Rabatt"))
-                    ,createKeywordEntry("5", translate.text("Ersatzteile"))
-                    ,createKeywordEntry("6", translate.text("Dienstleistung"))
+                     createKeywordEntry("1", translate.text("Commodity group 1"))
+                    ,createKeywordEntry("2", translate.text("Commodity group 2"))
+                    ,createKeywordEntry("3", translate.text("Commodity group 3"))
+                    ,createKeywordEntry("4", translate.text("Discount"))
+                    ,createKeywordEntry("5", translate.text("Spare parts"))
+                    ,createKeywordEntry("6", translate.text("Service"))
                 ]);
                 break;
             case "UNIT":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Stück"))
-                    ,createKeywordEntry("2", translate.text("Kg"))
+                     createKeywordEntry("1", translate.text("Pieces"))
+                    ,createKeywordEntry("2", translate.text("Kgs"))
                     ,createKeywordEntry("3", translate.text("Liter"))
-                    ,createKeywordEntry("4", translate.text("Stunden"))
+                    ,createKeywordEntry("4", translate.text("Hours"))
                 ]);
                 break;
             case "PRICELIST":
                 valueContainer = createKeywordEntriesContainer([
-                     createKeywordEntry("1", translate.text("Standard"))
-                    ,createKeywordEntry("2", translate.text("Großkunde"))
-                    ,createKeywordEntry("3", translate.text("Sonderpreisliste1"))
-                    ,createKeywordEntry("4", translate.text("Service"))
+                     createKeywordEntry("1", translate.text("${PRICELIST_DEFAULT}"))
+                    ,createKeywordEntry("2", translate.text("Key account"))
+                    ,createKeywordEntry("3", translate.text("Special price list1"))
+                    ,createKeywordEntry("4", translate.text("${PRICELIST_SERVICE}"))
                 ]);
                 break;
             case "CURRENCY":
@@ -178,6 +178,13 @@ function KeywordUtils(){
                     ,createKeywordEntry("4", translate.text("CHF"))
                 ]);
                 break;
+            case "STOCK.WAREHOUSE":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("1", translate.text("Warehouse 1"))
+                    ,createKeywordEntry("2", translate.text("Warehouse 2"))
+                    ,createKeywordEntry("3", translate.text("Warehouse 3"))
+                ]);
+                break;
             default: 
                 throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [
                     arguments.callee.name, keywordType