diff --git a/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js b/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js
index e8c2da35cd446c7b78eb3384dd01998dcf787450..dd25fd0e8ea4a00efb98164071eff5dbc65ee362 100644
--- a/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js
+++ b/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("system.translate");
 
-result.string(translate.text("${VOLUME_MONEY}") + translate.text("${THOUSAND_SHORT}") + translate.text("${EURO_SIGN}"));
\ No newline at end of file
+result.string(translate.text("${VOLUME_MONEY}") + " " + translate.text("${THOUSAND_SHORT}") + " " + translate.text("${EURO_SIGN}"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 7230670a82e650680c601875204a12adcbb1d5fb..b2c19d80712bae3de9b5aef884aae34844f2b462 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -83,7 +83,8 @@
       <name>VOLUME</name>
       <title>Volume</title>
       <description>The displayValue from the recoord container adds T € (translated)</description>
-      <contentTypeProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/contentTypeProcess.js</contentTypeProcess>
+      <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/volume/onValidation.js</onValidation>
     </entityField>
     <entityConsumer>
       <name>Organisations</name>
@@ -501,10 +502,6 @@
           <name>CONTACT_ID.displayValue</name>
           <recordfield>ORGANISATION.NAME</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>VOLUME.displayValue</name>
-          <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volume.displayvalue/expression.js</expression>
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PROBABILITY.displayValue</name>
           <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/probability.displayvalue/expression.js</expression>
diff --git a/entity/Salesproject_entity/entityfields/volume/contentTypeProcess.js b/entity/Salesproject_entity/entityfields/volume/contentTypeProcess.js
deleted file mode 100644
index ce76b0444f1f77a3b3c25eab41c4940feb10702f..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/entityfields/volume/contentTypeProcess.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import("system.result");
-import("system.vars");
-import("system.neon");
-
-var recordState = vars.get("$sys.recordstate");
-if (recordState == neon.OPERATINGSTATE_EDIT || recordState == neon.OPERATINGSTATE_NEW)
-{
-    result.string("NUMBER");
-}
-else
-{
-    result.string("TEXT");
-}
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js b/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..55d8076a7378a810484d3ce8390ff36034d4dba4
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.translate");
+import("system.result");
+
+var volume = vars.get("$field.VOLUME");
+result.string(parseInt(volume) + " " + translate.text("${THOUSAND_SHORT}") + " " + translate.text("${EURO_SIGN}"))
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/volume/onValidation.js b/entity/Salesproject_entity/entityfields/volume/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..b8e79ba522d0bad8c71ea6e15163a702c79800d4
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/volume/onValidation.js
@@ -0,0 +1,15 @@
+import("system.translate");
+import("system.result");
+import("system.vars");
+import("PostalAddress_lib");
+import("Entity_lib");
+
+// TODO: displayValue + contentType number crashes so we use TEXT and validate ourselve
+// Workaround for 1035861
+
+var volume =  ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VOLUME"));
+var message = "";
+if (!/^\d+$/.test(volume))
+    message = translate.text("Only numbers are allowed.");
+    
+result.string(message);
\ No newline at end of file
diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volume.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volume.displayvalue/expression.js
deleted file mode 100644
index 542d45f41cf7db2349f5a6908b87813c5565f725..0000000000000000000000000000000000000000
--- a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volume.displayvalue/expression.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.translate");
-import("system.result");
-import("Sql_lib");
-
-var maskingUtils = new SqlMaskingUtils();
-result.string(maskingUtils.concat(["char(SALESPROJECT.VOLUME)", "'" + translate.text("${THOUSAND_SHORT}") + "'", "'" + translate.text("${EURO_SIGN}") + "'"], " ", true))
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 0d7b4a721cd92d52c780e8b8141d43480429ee4c..f143950a67e8e8b0c25f8d38865c2e9b9bc43c6b 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2532,6 +2532,15 @@
     <entry>
       <key>Only numbers are allowed.</key>
     </entry>
+    <entry>
+      <key>Superordinate Attribute</key>
+    </entry>
+    <entry>
+      <key>${SALESPROJECT_OFFER}</key>
+    </entry>
+    <entry>
+      <key>${SALESPROJECT_NEGOTIATION}</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 013f088551c9b9ca1e70fc97221ba7e1388b773b..ad87e840639f821354c2daf4d3d471a922764764 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -58,6 +58,10 @@
       <key>Communication data</key>
       <value>Kommunikationsdaten</value>
     </entry>
+    <entry>
+      <key>${SALESPROJECT_NEGOTIATION}</key>
+      <value>Negotiation</value>
+    </entry>
     <entry>
       <key>Male</key>
       <value>Männlich</value>
@@ -86,6 +90,10 @@
       <key>Time expenses</key>
       <value>Aufwand</value>
     </entry>
+    <entry>
+      <key>${SALESPROJECT_OFFER}</key>
+      <value>Offer</value>
+    </entry>
     <entry>
       <key>Status</key>
       <value>Status</value>
@@ -2962,6 +2970,9 @@
       <key>Only numbers are allowed.</key>
       <value>Es sind nur Zahlen erlaubt.</value>
     </entry>
+    <entry>
+      <key>Parent Attribute</key>
+    </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 4f52d66b2f17520dc4c62a1f50d5b8cf1ad17ca3..0b67b5384770220373def7e0f309e6dfea9c18c9 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2556,6 +2556,17 @@
     <entry>
       <key>Only numbers are allowed.</key>
     </entry>
+    <entry>
+      <key>Superordinate Attribute</key>
+    </entry>
+    <entry>
+      <key>${SALESPROJECT_OFFER}</key>
+      <value>Offer</value>
+    </entry>
+    <entry>
+      <key>${SALESPROJECT_NEGOTIATION}</key>
+      <value>Negotiation</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/others/db_changes/data_alias/basic/2019.2/fix_sp_phases.xml b/others/db_changes/data_alias/basic/2019.2/fix_sp_phases.xml
index 6115dbb158faf9b9d5b9a60fdaf6f515c5209fcb..0e36cda05c7f4a9b8437307a4baa25356b31aa66 100644
--- a/others/db_changes/data_alias/basic/2019.2/fix_sp_phases.xml
+++ b/others/db_changes/data_alias/basic/2019.2/fix_sp_phases.xml
@@ -25,6 +25,22 @@
             <column name="ISESSENTIAL" valueNumeric="0"/>
         </insert>
         
+        <update tableName="AB_KEYWORD_ENTRY">
+            <column name="TITLE" value="${SALESPROJECT_OFFER}"/>
+            <where>AB_KEYWORD_ENTRYID = ?</where>
+            <whereParams>
+                <param value="0e8eab64-4c79-4eed-9746-0ac6fc397620"/>
+            </whereParams>
+        </update>
+                
+        <update tableName="AB_KEYWORD_ENTRY">
+            <column name="TITLE" value="${SALESPROJECT_NEGOTIATION}"/>
+            <where>AB_KEYWORD_ENTRYID = ?</where>
+            <whereParams>
+                <param value="405e2b7b-20c2-4824-a8b5-c7a533784ef3"/>
+            </whereParams>
+        </update>
+        
         <sql>update AB_KEYWORD_ENTRY set SORTING = SORTING+1 where AB_KEYWORD_ENTRYID in (
             '8a2d19c9-bc32-437e-9261-78ed30110e92',
             '46f55a58-dbe4-40ae-9306-481df9095088',