From ca3bcbe241a48e8c56859b9fc4702de66df5d568 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Fri, 8 Mar 2019 11:08:37 +0100
Subject: [PATCH] Salesproject, Offer, Order fixes

---
 entity/Offer_entity/Offer_entity.aod             |  6 ++++++
 entity/Offeritem_entity/Offeritem_entity.aod     |  8 ++++++++
 .../Timetracking_entity/Timetracking_entity.aod  |  3 ++-
 .../entityfields/minutes/onValidation.js         | 14 ++++++++++++++
 .../_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod  | 15 +++++++++++++++
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod   | 16 ++++++++++++++++
 language/_____LANGUAGE_en/_____LANGUAGE_en.aod   | 15 +++++++++++++++
 7 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 entity/Timetracking_entity/entityfields/minutes/onValidation.js

diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 5bdc59010b..af308c2990 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -78,6 +78,8 @@
     <entityField>
       <name>VAT</name>
       <title>Total VAT</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
       <state>READONLY</state>
     </entityField>
     <entityField>
@@ -140,12 +142,16 @@
     <entityField>
       <name>NET</name>
       <title>Total net</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
       <state>READONLY</state>
     </entityField>
     <entityField>
       <name>TotalGross</name>
       <documentation>%aditoprj%/entity/Offer_entity/entityfields/totalgross/documentation.adoc</documentation>
       <title>Total gross</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
       <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/totalgross/valueProcess.js</valueProcess>
     </entityField>
diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index 0c68684bd9..3a7654eeaf 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -16,6 +16,8 @@
     <entityField>
       <name>DISCOUNT</name>
       <title>Discount %</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0</outputFormat>
     </entityField>
     <entityField>
       <name>GROUPCODEID</name>
@@ -57,6 +59,8 @@
     <entityField>
       <name>PRICE</name>
       <title>Unit price</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
     </entityField>
     <entityField>
       <name>PRODUCT_ID</name>
@@ -74,6 +78,8 @@
       <name>QUANTITY</name>
       <documentation>%aditoprj%/entity/Offeritem_entity/entityfields/quantity/documentation.adoc</documentation>
       <title>Quantity</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0</outputFormat>
       <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/quantity/valueProcess.js</valueProcess>
       <onValueChange>%aditoprj%/entity/Offeritem_entity/entityfields/quantity/onValueChange.js</onValueChange>
       <onValueChangeTypes>
@@ -90,6 +96,8 @@
     <entityField>
       <name>VAT</name>
       <title>VAT</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>#,##0.00</outputFormat>
       <state>READONLY</state>
     </entityField>
     <entityParameter>
diff --git a/entity/Timetracking_entity/Timetracking_entity.aod b/entity/Timetracking_entity/Timetracking_entity.aod
index 8e52105f68..afb6fc572e 100644
--- a/entity/Timetracking_entity/Timetracking_entity.aod
+++ b/entity/Timetracking_entity/Timetracking_entity.aod
@@ -16,9 +16,10 @@
     <entityField>
       <name>MINUTES</name>
       <title>Time</title>
-      <contentType>NUMBER</contentType>
+      <contentType>TEXT</contentType>
       <mandatory v="true" />
       <displayValueProcess>%aditoprj%/entity/Timetracking_entity/entityfields/minutes/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/Timetracking_entity/entityfields/minutes/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>OBJECT_ID</name>
diff --git a/entity/Timetracking_entity/entityfields/minutes/onValidation.js b/entity/Timetracking_entity/entityfields/minutes/onValidation.js
new file mode 100644
index 0000000000..4b78441043
--- /dev/null
+++ b/entity/Timetracking_entity/entityfields/minutes/onValidation.js
@@ -0,0 +1,14 @@
+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
+
+var minutes =  ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MINUTES"));
+var message = "";
+if (!/^\d+$/.test(minutes))
+    message = translate.text("Only numbers are allowed.");
+    
+result.string(message);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 24c379cebb..0d7b4a721c 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2517,6 +2517,21 @@
     <entry>
       <key>Discount %</key>
     </entry>
+    <entry>
+      <key>Memo</key>
+    </entry>
+    <entry>
+      <key>Function</key>
+    </entry>
+    <entry>
+      <key>Relational</key>
+    </entry>
+    <entry>
+      <key>test</key>
+    </entry>
+    <entry>
+      <key>Only numbers are allowed.</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 84e7cd2b6d..f04321e245 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -2945,6 +2945,22 @@
       <key>supporter - supported</key>
       <value>Unterstützt - Wird unterstützt von</value>
     </entry>
+    <entry>
+      <key>Memo</key>
+    </entry>
+    <entry>
+      <key>Function</key>
+    </entry>
+    <entry>
+      <key>Relational</key>
+    </entry>
+    <entry>
+      <key>test</key>
+    </entry>
+    <entry>
+      <key>Only numbers are allowed.</key>
+      <value>Es sind nur Zahlen erlaubt.</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 a1cd1b11e0..4f52d66b2f 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2541,6 +2541,21 @@
     <entry>
       <key>Discount %</key>
     </entry>
+    <entry>
+      <key>Memo</key>
+    </entry>
+    <entry>
+      <key>Function</key>
+    </entry>
+    <entry>
+      <key>Relational</key>
+    </entry>
+    <entry>
+      <key>test</key>
+    </entry>
+    <entry>
+      <key>Only numbers are allowed.</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
-- 
GitLab