From 774a28d1dcfab80171af36e5201a8798b6de9ebb Mon Sep 17 00:00:00 2001
From: Mohamed Mansour <m.mansour@adito.de>
Date: Fri, 26 Jul 2019 18:07:39 +0200
Subject: [PATCH] Belege: Created chosen deliveryaddress und chosenpaymemt
 address, added erstellungsdatum, stateprocess fixes, setpaid und setdunning
 stateprocess fixed, beleg image auf ordertype angepasst, preview und edit
 view angepasst, dunning und paid view auf smalledit angepasst.

---
 entity/Order_entity/Order_entity.aod          | 42 ++++++++++++++++---
 .../displayValueProcess.js                    |  2 +-
 .../onValueChange.js                          |  3 +-
 .../chosendeliveryaddress/valueProcess.js     | 11 +++++
 .../displayValueProcess.js                    |  5 +++
 .../chosenpaymentaddress/onValueChange.js     | 13 ++++++
 .../chosenpaymentaddress/valueProcess.js      | 11 +++++
 .../deliveryaddress/valueProcess.js           |  4 +-
 .../deliveryterms/displayValueProcess.js      |  2 -
 .../deliveryterms/valueProcess.js             |  2 +-
 .../entityfields/dunningdate/stateProcess.js  |  8 +++-
 .../entityfields/dunninglevel/stateProcess.js |  8 +++-
 .../entityfields/image/valueProcess.js        |  2 +-
 .../entityfields/paid/stateProcess.js         | 13 ++++++
 .../entityfields/paydate/stateProcess.js      |  8 +++-
 .../entityfields/paydate/valueProcess.js      | 14 -------
 .../payduedate/selectionModeProcess.js        |  0
 .../entityfields/payduedate/valueProcess.js   |  2 +-
 .../paymentaddress/valueProcess.js            |  8 +---
 .../entityfields/paymentterms/valueProcess.js |  2 +-
 .../salesorderdate/valueProcess.js            | 14 +++++++
 .../setdunning/onActionProcess.js             |  2 +-
 .../entityfields/setdunning/stateProcess.js   | 10 +++--
 .../entityfields/setpaid/onActionProcess.js   |  2 +-
 .../entityfields/setpaid/stateProcess.js      | 10 +++--
 .../transferdeliverynote/stateProcess.js      |  7 ++--
 .../OrderDunning_view/OrderDunning_view.aod   |  1 +
 neonView/OrderEdit_view/OrderEdit_view.aod    | 32 ++++++++------
 neonView/OrderPaid_view/OrderPaid_view.aod    |  1 +
 .../OrderPreview_view/OrderPreview_view.aod   |  4 ++
 30 files changed, 179 insertions(+), 64 deletions(-)
 rename entity/Order_entity/entityfields/{paymentaddress => chosendeliveryaddress}/displayValueProcess.js (80%)
 rename entity/Order_entity/entityfields/{paymentaddress => chosendeliveryaddress}/onValueChange.js (96%)
 create mode 100644 entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js
 create mode 100644 entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js
 create mode 100644 entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
 create mode 100644 entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js
 create mode 100644 entity/Order_entity/entityfields/paid/stateProcess.js
 delete mode 100644 entity/Order_entity/entityfields/payduedate/selectionModeProcess.js

diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index 6cee0c1e3a..63c3cbb7ff 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -4,6 +4,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Order_entity/documentation.adoc</documentation>
   <title>Receipt</title>
+  <grantUpdateProcess>%aditoprj%/entity/Order_entity/grantUpdateProcess.js</grantUpdateProcess>
   <contentTitleProcess>%aditoprj%/entity/Order_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Order_entity/afterUiInit.js</afterUiInit>
   <iconId>VAADIN:DOLLAR</iconId>
@@ -38,7 +39,7 @@
     </entityField>
     <entityField>
       <name>SALESORDERDATE</name>
-      <title>Date</title>
+      <title>Creation date</title>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
@@ -271,6 +272,11 @@
       <name>ADDRESS</name>
       <contentType>LONG_TEXT</contentType>
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/address/valueProcess.js</valueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityConsumer>
       <name>KeywordCurrencies</name>
@@ -485,6 +491,7 @@
     <entityField>
       <name>PAID</name>
       <title>Paid</title>
+      <stateProcess>%aditoprj%/entity/Order_entity/entityfields/paid/stateProcess.js</stateProcess>
     </entityField>
     <entityField>
       <name>Unpaid</name>
@@ -524,7 +531,6 @@
       <title>Pay due date</title>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
-      <selectionModeProcess>%aditoprj%/entity/Order_entity/entityfields/payduedate/selectionModeProcess.js</selectionModeProcess>
       <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/payduedate/valueProcess.js</valueProcess>
     </entityField>
@@ -646,16 +652,15 @@
       <name>DELIVERYADDRESS</name>
       <title>Delivery address</title>
       <contentType>LONG_TEXT</contentType>
+      <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/deliveryaddress/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PAYMENTADDRESS</name>
       <title>Payment address</title>
-      <consumer>PossibleAddresses</consumer>
+      <contentType>LONG_TEXT</contentType>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/paymentaddress/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/paymentaddress/displayValueProcess.js</displayValueProcess>
-      <onValueChange>%aditoprj%/entity/Order_entity/entityfields/paymentaddress/onValueChange.js</onValueChange>
     </entityField>
     <entityConsumer>
       <name>KeywordPaymentTerms</name>
@@ -834,6 +839,33 @@
       <onActionProcess>%aditoprj%/entity/Order_entity/entityfields/setpaid/onActionProcess.js</onActionProcess>
       <stateProcess>%aditoprj%/entity/Order_entity/entityfields/setpaid/stateProcess.js</stateProcess>
     </entityActionField>
+    <entityField>
+      <name>ChosenPaymentAddress</name>
+      <title>Choose payment address</title>
+      <consumer>PossibleAddresses</consumer>
+      <mandatory v="false" />
+      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
+    <entityField>
+      <name>ChosenDeliveryAddress</name>
+      <title>Choose delivery address</title>
+      <consumer>PossibleAddresses</consumer>
+      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Order_entity/entityfields/paymentaddress/displayValueProcess.js b/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
similarity index 80%
rename from entity/Order_entity/entityfields/paymentaddress/displayValueProcess.js
rename to entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
index bc302ac9cd..0c813a182c 100644
--- a/entity/Order_entity/entityfields/paymentaddress/displayValueProcess.js
+++ b/entity/Order_entity/entityfields/chosendeliveryaddress/displayValueProcess.js
@@ -2,4 +2,4 @@ import("system.vars");
 import("PostalAddress_lib");
 import("system.result");
 
-result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$field.PAYMENTADDRESS")))
\ No newline at end of file
+result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$field.ChosenPaymentAddress")))
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paymentaddress/onValueChange.js b/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
similarity index 96%
rename from entity/Order_entity/entityfields/paymentaddress/onValueChange.js
rename to entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
index 85516732cd..b0019362e9 100644
--- a/entity/Order_entity/entityfields/paymentaddress/onValueChange.js
+++ b/entity/Order_entity/entityfields/chosendeliveryaddress/onValueChange.js
@@ -8,4 +8,5 @@ var newAddressId = vars.get("local.value");
 if (newAddressId)
 {
     neon.setFieldValue("$field.DELIVERYADDRESS", AddressUtils.getAddressById(newAddressId));
-}
\ No newline at end of file
+    
+    }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js b/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js
new file mode 100644
index 0000000000..7a909e0723
--- /dev/null
+++ b/entity/Order_entity/entityfields/chosendeliveryaddress/valueProcess.js
@@ -0,0 +1,11 @@
+import("Contact_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null))
+{
+    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID"));
+    if (defaultAddressId)
+        result.string(defaultAddressId);
+}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js b/entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js
new file mode 100644
index 0000000000..0c813a182c
--- /dev/null
+++ b/entity/Order_entity/entityfields/chosenpaymentaddress/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("PostalAddress_lib");
+import("system.result");
+
+result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$field.ChosenPaymentAddress")))
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js b/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
new file mode 100644
index 0000000000..77ffefc857
--- /dev/null
+++ b/entity/Order_entity/entityfields/chosenpaymentaddress/onValueChange.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("system.neon");
+import("PostalAddress_lib");
+import("Entity_lib");
+
+var newAddressId = vars.get("local.value");
+
+if (newAddressId)
+{
+    neon.setFieldValue("$field.PAYMENTADDRESS", AddressUtils.getAddressById(newAddressId));
+    neon.setFieldValue("$field.ChosenDeliveryAddress", AddressUtils.getAddressById(newAddressId));
+    neon.setFieldValue("$field.DELIVERYADDRESS", AddressUtils.getAddressById(newAddressId));
+}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js b/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js
new file mode 100644
index 0000000000..7a909e0723
--- /dev/null
+++ b/entity/Order_entity/entityfields/chosenpaymentaddress/valueProcess.js
@@ -0,0 +1,11 @@
+import("Contact_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.get("$this.value") == null))
+{
+    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID"));
+    if (defaultAddressId)
+        result.string(defaultAddressId);
+}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/deliveryaddress/valueProcess.js b/entity/Order_entity/entityfields/deliveryaddress/valueProcess.js
index 71e0850b60..8bfe52697c 100644
--- a/entity/Order_entity/entityfields/deliveryaddress/valueProcess.js
+++ b/entity/Order_entity/entityfields/deliveryaddress/valueProcess.js
@@ -1,7 +1,7 @@
 import("system.result");
 import("system.vars");
 
-if (vars.exists("$param.OfferAddress_param")) 
+if (vars.exists("$param.OrderAddress_param")) 
 {
-    result.string(vars.get("$param.OfferAddress_param"));
+    result.string(vars.get("$param.OrderAddress_param"));
 }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/deliveryterms/displayValueProcess.js b/entity/Order_entity/entityfields/deliveryterms/displayValueProcess.js
index 793e3ffc27..cfacf44952 100644
--- a/entity/Order_entity/entityfields/deliveryterms/displayValueProcess.js
+++ b/entity/Order_entity/entityfields/deliveryterms/displayValueProcess.js
@@ -1,8 +1,6 @@
-import("system.neon");
 import("system.result");
 import("system.vars");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
 
-
 result.string(KeywordUtils.getViewValue($KeywordRegistry.deliveryTerm(), vars.get("$field.DELIVERYTERMS")));
diff --git a/entity/Order_entity/entityfields/deliveryterms/valueProcess.js b/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
index 6dd9221dbe..35c2c1c5d5 100644
--- a/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
+++ b/entity/Order_entity/entityfields/deliveryterms/valueProcess.js
@@ -9,7 +9,7 @@ import("Contact_lib");
 
 
 
-if (vars.exists("$param.OrderDeliveryTerm_param") && vars.get("$param.OrderDeliveryTerm_param")) 
+if (vars.get("$param.OrderDeliveryTerm_param")) 
 {
     result.string(vars.get("$param.OrderDeliveryTerm_param"));
 } 
diff --git a/entity/Order_entity/entityfields/dunningdate/stateProcess.js b/entity/Order_entity/entityfields/dunningdate/stateProcess.js
index 5d6dc09c72..bd8b298328 100644
--- a/entity/Order_entity/entityfields/dunningdate/stateProcess.js
+++ b/entity/Order_entity/entityfields/dunningdate/stateProcess.js
@@ -3,7 +3,11 @@ import("system.vars");
 import("system.neon");
 import("KeywordRegistry_basic")
 
-if(vars.get("$field.ORDERTYPE") == $KeywordRegistry.orderType$invoice() || neon.OPERATINGSTATE_NEW )
+if((vars.get("$field.ORDERTYPE") == $KeywordRegistry.orderType$invoice()) || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    {
     result.string(neon.COMPONENTSTATE_AUTO);
+    }
 else
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+    {
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+    }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/dunninglevel/stateProcess.js b/entity/Order_entity/entityfields/dunninglevel/stateProcess.js
index 74c560bd8b..bd8b298328 100644
--- a/entity/Order_entity/entityfields/dunninglevel/stateProcess.js
+++ b/entity/Order_entity/entityfields/dunninglevel/stateProcess.js
@@ -3,7 +3,11 @@ import("system.vars");
 import("system.neon");
 import("KeywordRegistry_basic")
 
-if(vars.get("$field.ORDERTYPE") == $KeywordRegistry.orderType$invoice()|| neon.OPERATINGSTATE_NEW)
+if((vars.get("$field.ORDERTYPE") == $KeywordRegistry.orderType$invoice()) || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    {
     result.string(neon.COMPONENTSTATE_AUTO);
+    }
 else
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+    {
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+    }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/image/valueProcess.js b/entity/Order_entity/entityfields/image/valueProcess.js
index 17507224ae..81da551b8c 100644
--- a/entity/Order_entity/entityfields/image/valueProcess.js
+++ b/entity/Order_entity/entityfields/image/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.result");
 
-result.string("TEXT:" + vars.getString("$field.STATUS.displayValue"));
+result.string("TEXT:" + vars.getString("$field.ORDERTYPE.displayValue"));
diff --git a/entity/Order_entity/entityfields/paid/stateProcess.js b/entity/Order_entity/entityfields/paid/stateProcess.js
new file mode 100644
index 0000000000..bd8b298328
--- /dev/null
+++ b/entity/Order_entity/entityfields/paid/stateProcess.js
@@ -0,0 +1,13 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+import("KeywordRegistry_basic")
+
+if((vars.get("$field.ORDERTYPE") == $KeywordRegistry.orderType$invoice()) || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    {
+    result.string(neon.COMPONENTSTATE_AUTO);
+    }
+else
+    {
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+    }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paydate/stateProcess.js b/entity/Order_entity/entityfields/paydate/stateProcess.js
index 06c04cf66a..08bc5d1caf 100644
--- a/entity/Order_entity/entityfields/paydate/stateProcess.js
+++ b/entity/Order_entity/entityfields/paydate/stateProcess.js
@@ -3,7 +3,11 @@ import("system.vars");
 import("system.neon");
 import("KeywordRegistry_basic")
 
-if(vars.get("$field.ORDERTYPE") != $KeywordRegistry.orderType$confirmation()|| neon.OPERATINGSTATE_NEW)
+if(vars.get("$field.ORDERTYPE") != $KeywordRegistry.orderType$confirmation()|| vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    {
     result.string(neon.COMPONENTSTATE_AUTO);
+    }
 else
-    result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+    {
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+    }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paydate/valueProcess.js b/entity/Order_entity/entityfields/paydate/valueProcess.js
index 1465808073..e69de29bb2 100644
--- a/entity/Order_entity/entityfields/paydate/valueProcess.js
+++ b/entity/Order_entity/entityfields/paydate/valueProcess.js
@@ -1,14 +0,0 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-import("Date_lib");
-
-
-if (vars.get("$this.value") == null){
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")|| neon.OPERATINGSTATE_NEW )
-{
-    result.string(DateUtils.getTodayUTC());
-}
-else
-    result.string(vars.get("$this.value"));
-}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/payduedate/selectionModeProcess.js b/entity/Order_entity/entityfields/payduedate/selectionModeProcess.js
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/entity/Order_entity/entityfields/payduedate/valueProcess.js b/entity/Order_entity/entityfields/payduedate/valueProcess.js
index 9e92825f3f..ff67ec6a8b 100644
--- a/entity/Order_entity/entityfields/payduedate/valueProcess.js
+++ b/entity/Order_entity/entityfields/payduedate/valueProcess.js
@@ -4,4 +4,4 @@ import("system.vars");
 import("Keyword_lib");
 
 var days= KeywordUtils.getAttributeRelation(vars.get("$field.PAYMENTTERMS"), "PaymentTerm", "dayNumber", "0");
-result.string(parseInt(vars.get("$field.PAYDATE")) + datetime.ONE_DAY * parseInt(days));
\ No newline at end of file
+result.string(parseInt(vars.get("$field.SALESORDERDATE")) + datetime.ONE_DAY * parseInt(days));
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paymentaddress/valueProcess.js b/entity/Order_entity/entityfields/paymentaddress/valueProcess.js
index 6ebcf9a49b..dc9675b2bf 100644
--- a/entity/Order_entity/entityfields/paymentaddress/valueProcess.js
+++ b/entity/Order_entity/entityfields/paymentaddress/valueProcess.js
@@ -1,11 +1,7 @@
-import("Contact_lib");
 import("system.result");
-import("system.neon");
 import("system.vars");
 
-if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && !vars.get("$field.ADDRESS"))
+if (vars.get("$param.OrderAddress_param") == null) 
 {
-    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID"));
-    if (defaultAddressId)
-        result.string(defaultAddressId);
+    result.string(vars.get("$param.OrderAddress_param"));
 }
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paymentterms/valueProcess.js b/entity/Order_entity/entityfields/paymentterms/valueProcess.js
index 885fc42f89..8e1009ab59 100644
--- a/entity/Order_entity/entityfields/paymentterms/valueProcess.js
+++ b/entity/Order_entity/entityfields/paymentterms/valueProcess.js
@@ -8,7 +8,7 @@ import("system.vars");
 import("Attribute_lib");
 
 if (vars.get("$this.value") == null) {
-    if (vars.exists("$param.OrderPaymentTerm_param") && vars.get("$param.OrderPaymentTerm_param")) 
+    if (vars.get("$param.OrderPaymentTerm_param")) 
     {
         result.string(vars.get("$param.OrderPaymentTerm_param"));
     }
diff --git a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
index e69de29bb2..1465808073 100644
--- a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
+++ b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
@@ -0,0 +1,14 @@
+import("system.vars");
+import("system.result");
+import("system.neon");
+import("Date_lib");
+
+
+if (vars.get("$this.value") == null){
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")|| neon.OPERATINGSTATE_NEW )
+{
+    result.string(DateUtils.getTodayUTC());
+}
+else
+    result.string(vars.get("$this.value"));
+}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/setdunning/onActionProcess.js b/entity/Order_entity/entityfields/setdunning/onActionProcess.js
index adc7707e86..b105ff8dff 100644
--- a/entity/Order_entity/entityfields/setdunning/onActionProcess.js
+++ b/entity/Order_entity/entityfields/setdunning/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Order", "OrderDunning_view", null, neon.OPERATINGSTATE_EDIT, null);
+neon.openContext("Order", "OrderDunning_view", [vars.get("$field.SALESORDERID")], neon.OPERATINGSTATE_EDIT, null);
diff --git a/entity/Order_entity/entityfields/setdunning/stateProcess.js b/entity/Order_entity/entityfields/setdunning/stateProcess.js
index effdd832bb..b37d892353 100644
--- a/entity/Order_entity/entityfields/setdunning/stateProcess.js
+++ b/entity/Order_entity/entityfields/setdunning/stateProcess.js
@@ -6,11 +6,15 @@ import("system.neon");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
                                       
-if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice()){
+if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice())
+{
     
-    if (vars.get("$field.ORDERSTATUS")=="1" && vars.get("$field.CANCELLATION")=="0"){
+    if (vars.get("$field.ORDERSTATUS")=="1" && vars.get("$field.CANCELLATION")=="0")
+    {
         result.string(neon.COMPONENTSTATE_EDITABLE);
     }
     else
-    result.string(neon.COMPONENTSTATE_DISABLED);
+        result.string(neon.COMPONENTSTATE_DISABLED);
 }
+else
+    result.string(neon.COMPONENTSTATE_DISABLED);
diff --git a/entity/Order_entity/entityfields/setpaid/onActionProcess.js b/entity/Order_entity/entityfields/setpaid/onActionProcess.js
index 2bb8cc6649..0c8acb980e 100644
--- a/entity/Order_entity/entityfields/setpaid/onActionProcess.js
+++ b/entity/Order_entity/entityfields/setpaid/onActionProcess.js
@@ -1,4 +1,4 @@
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Order", "OrderPaid_view", null, neon.OPERATINGSTATE_EDIT, null);
+neon.openContext("Order", "OrderPaid_view", [vars.get("$field.SALESORDERID")], neon.OPERATINGSTATE_EDIT, null);
diff --git a/entity/Order_entity/entityfields/setpaid/stateProcess.js b/entity/Order_entity/entityfields/setpaid/stateProcess.js
index 0dcfd33532..1c13f702c1 100644
--- a/entity/Order_entity/entityfields/setpaid/stateProcess.js
+++ b/entity/Order_entity/entityfields/setpaid/stateProcess.js
@@ -6,11 +6,15 @@ import("system.neon");
 import("Keyword_lib");
 import("KeywordRegistry_basic");
                                       
-if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice()|| vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$credit() ){
+if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice()|| vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$credit())
+{
     
-    if (vars.get("$field.ORDERSTATUS")=="1"){
+    if (vars.get("$field.ORDERSTATUS")=="1")
+    {
         result.string(neon.COMPONENTSTATE_EDITABLE);
     }
     else
-    result.string(neon.COMPONENTSTATE_DISABLED);
+        result.string(neon.COMPONENTSTATE_DISABLED);
 }
+else
+    result.string(neon.COMPONENTSTATE_DISABLED);
diff --git a/entity/Order_entity/entityfields/transferdeliverynote/stateProcess.js b/entity/Order_entity/entityfields/transferdeliverynote/stateProcess.js
index f68697a1a8..91e355b5d4 100644
--- a/entity/Order_entity/entityfields/transferdeliverynote/stateProcess.js
+++ b/entity/Order_entity/entityfields/transferdeliverynote/stateProcess.js
@@ -8,10 +8,11 @@ import("KeywordRegistry_basic");
                                       
 if(vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$confirmation())
     result.string(neon.COMPONENTSTATE_EDITABLE);
-
-else if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice()){
+else if (vars.get("$field.ORDERTYPE")==$KeywordRegistry.orderType$invoice())
+{
     
-    if (vars.get("$field.ORDERSTATUS")=="0" && vars.get("$field.CANCELLATION")=="1"){
+    if (vars.get("$field.ORDERSTATUS") == "0" && vars.get("$field.CANCELLATION") == "1")
+    {
         result.string(neon.COMPONENTSTATE_DISABLED);
     }
     
diff --git a/neonView/OrderDunning_view/OrderDunning_view.aod b/neonView/OrderDunning_view/OrderDunning_view.aod
index 14676dac72..34fe554578 100644
--- a/neonView/OrderDunning_view/OrderDunning_view.aod
+++ b/neonView/OrderDunning_view/OrderDunning_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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>OrderDunning_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
   <layout>
     <boxLayout>
       <name>layout</name>
diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod
index 557e958a5b..12b0504463 100644
--- a/neonView/OrderEdit_view/OrderEdit_view.aod
+++ b/neonView/OrderEdit_view/OrderEdit_view.aod
@@ -48,6 +48,18 @@
           <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name>
           <entityField>LANGUAGE</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>7514c5cf-3e92-4d38-9dff-dd373b964a35</name>
+          <entityField>SALESORDERDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>236a3654-dce9-4786-ae13-9b1babd5f75f</name>
+          <entityField>PAYDUEDATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>cdd4504c-3af2-414f-9f1a-d8ab646487f1</name>
+          <entityField>PAYDATE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>b42c6333-d6ac-4628-b7b4-509fea676276</name>
           <entityField>DELIVERYTERMS</entityField>
@@ -80,14 +92,6 @@
           <name>31ed9eba-66a1-4114-a1fe-61ef475d532d</name>
           <entityField>PAID</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>cdd4504c-3af2-414f-9f1a-d8ab646487f1</name>
-          <entityField>PAYDATE</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>236a3654-dce9-4786-ae13-9b1babd5f75f</name>
-          <entityField>PAYDUEDATE</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>9f25be07-768a-4598-a766-c78beb9ac650</name>
           <entityField>DUNNINGDATE</entityField>
@@ -104,17 +108,21 @@
           <name>8333aea5-0be3-47ac-94c3-f6f8485ba7e0</name>
           <entityField>CANCELLATION</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>9cc1be03-6dc6-4c73-960a-fd8c3a9beec1</name>
+          <entityField>ChosenPaymentAddress</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>21860875-55d6-4686-9e1d-6b45963878ff</name>
           <entityField>PAYMENTADDRESS</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>73687971-85f9-4120-98b2-e93f7f906ebb</name>
-          <entityField>DELIVERYADDRESS</entityField>
+          <name>884b0458-52ac-401c-ba62-447d37889784</name>
+          <entityField>ChosenDeliveryAddress</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>330d2d02-145b-42b7-937e-7830fc2b83b0</name>
-          <entityField>NOTICE</entityField>
+          <name>73687971-85f9-4120-98b2-e93f7f906ebb</name>
+          <entityField>DELIVERYADDRESS</entityField>
         </entityFieldLink>
       </fields>
     </genericViewTemplate>
diff --git a/neonView/OrderPaid_view/OrderPaid_view.aod b/neonView/OrderPaid_view/OrderPaid_view.aod
index 27dbfe7389..18e9b352d5 100644
--- a/neonView/OrderPaid_view/OrderPaid_view.aod
+++ b/neonView/OrderPaid_view/OrderPaid_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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1">
   <name>OrderPaid_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <isSmall v="true" />
   <layout>
     <boxLayout>
       <name>layout</name>
diff --git a/neonView/OrderPreview_view/OrderPreview_view.aod b/neonView/OrderPreview_view/OrderPreview_view.aod
index 2d2c660fb0..bb7c8380f0 100644
--- a/neonView/OrderPreview_view/OrderPreview_view.aod
+++ b/neonView/OrderPreview_view/OrderPreview_view.aod
@@ -68,6 +68,10 @@
           <name>43972a26-67f7-4fb5-9107-111731d326af</name>
           <entityField>TotalGross</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>893e3b20-891e-49ba-a460-7dadfca7b18a</name>
+          <entityField>PAID</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
     <genericViewTemplate>
-- 
GitLab