From 742cc8d6385506b3e2b16644faef5ab24b17ed08 Mon Sep 17 00:00:00 2001
From: "a.voegl" <a.voegl@adito.de>
Date: Wed, 17 Jun 2020 09:37:42 +0200
Subject: [PATCH] OrderRefactoring

---
 entity/Order_entity/Order_entity.aod          | 82 +------------------
 entity/Order_entity/afterUiInit.js            |  4 +
 .../entityfields/dunningtext/valueProcess.js  |  9 +-
 .../documentation.adoc                        |  1 -
 .../orderlanguage_param/valueProcess.js       |  8 --
 .../documentation.adoc                        |  1 -
 .../entityfields/paydate/valueProcess.js      |  7 ++
 .../salesordercode/valueProcess.js            |  7 +-
 process/Offer_lib/process.js                  | 30 ++++---
 process/Order_lib/process.js                  | 13 ++-
 10 files changed, 42 insertions(+), 120 deletions(-)
 delete mode 100644 entity/Order_entity/entityfields/orderdeliveryaddress_param/documentation.adoc
 delete mode 100644 entity/Order_entity/entityfields/orderlanguage_param/valueProcess.js
 delete mode 100644 entity/Order_entity/entityfields/orderpaymentaddress_param/documentation.adoc
 create mode 100644 entity/Order_entity/entityfields/paydate/valueProcess.js

diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index 5050ba95850..e725eb70edf 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -269,25 +269,6 @@
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityParameter>
-      <name>OrderCurrency_param</name>
-      <expose v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderLanguage_param</name>
-      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/orderlanguage_param/valueProcess.js</valueProcess>
-      <expose v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderHeader_param</name>
-      <expose v="true" />
-      <mandatory v="false" />
-      <description>PARAMETER</description>
-    </entityParameter>
     <entityConsumer>
       <name>Languages</name>
       <dependency>
@@ -469,6 +450,7 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <stateProcess>%aditoprj%/entity/Order_entity/entityfields/paydate/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Order_entity/entityfields/paydate/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PAYDUEDATE</name>
@@ -673,16 +655,6 @@
       <stateProcess>%aditoprj%/entity/Order_entity/entityfields/dunningtext/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Order_entity/entityfields/dunningtext/valueProcess.js</valueProcess>
     </entityField>
-    <entityParameter>
-      <name>OrderPaymentTerm_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderDeliveryTerm_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
     <entityConsumer>
       <name>Offers</name>
       <dependency>
@@ -743,31 +715,6 @@
       <title>Choose Footer</title>
       <consumer>DocumentTemplateTexFooter</consumer>
     </entityField>
-    <entityParameter>
-      <name>OrderFooter_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderDunningDate_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderDunningLevel_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderType_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderCancellation_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
     <entityField>
       <name>ChosenPaymentAddress</name>
       <documentation>%aditoprj%/entity/Order_entity/entityfields/chosenpaymentaddress/documentation.adoc</documentation>
@@ -796,33 +743,6 @@
         <element>PROCESS_SETVALUE</element>
       </onValueChangeTypes>
     </entityField>
-    <entityParameter>
-      <name>OrderCode_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderStatus_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderVersnr_param</name>
-      <expose v="true" />
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderPaymentAddress_param</name>
-      <expose v="true" />
-      <documentation>%aditoprj%/entity/Order_entity/entityfields/orderpaymentaddress_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>OrderDeliveryAddress_param</name>
-      <expose v="true" />
-      <documentation>%aditoprj%/entity/Order_entity/entityfields/orderdeliveryaddress_param/documentation.adoc</documentation>
-      <description>PARAMETER</description>
-    </entityParameter>
     <entityActionField>
       <name>newOrder</name>
       <documentation>%aditoprj%/entity/Order_entity/entityfields/neworder/documentation.adoc</documentation>
diff --git a/entity/Order_entity/afterUiInit.js b/entity/Order_entity/afterUiInit.js
index e30b0b283b2..8170933d28b 100644
--- a/entity/Order_entity/afterUiInit.js
+++ b/entity/Order_entity/afterUiInit.js
@@ -6,4 +6,8 @@ import("Attribute_lib");
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes");
+
+    if(vars.get("$param.Copy_param"))
+        neon.setFieldValues(JSON.parse(vars.get("$param.Copy_param")))
 }
+
diff --git a/entity/Order_entity/entityfields/dunningtext/valueProcess.js b/entity/Order_entity/entityfields/dunningtext/valueProcess.js
index 6ceea69e5f3..4751e50c645 100644
--- a/entity/Order_entity/entityfields/dunningtext/valueProcess.js
+++ b/entity/Order_entity/entityfields/dunningtext/valueProcess.js
@@ -4,12 +4,5 @@ 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 ){
-    
+if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || neon.OPERATINGSTATE_NEW) && vars.get("$this.value") == null)
     result.string(translate.text("Please pay the outstanding amount,this is you first/second reminder."))
-}
-    
-}
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/orderdeliveryaddress_param/documentation.adoc b/entity/Order_entity/entityfields/orderdeliveryaddress_param/documentation.adoc
deleted file mode 100644
index b50a32de3db..00000000000
--- a/entity/Order_entity/entityfields/orderdeliveryaddress_param/documentation.adoc
+++ /dev/null
@@ -1 +0,0 @@
-Carries the delivery address of the receipt. Can also be set from the offer if a receipt is to be created from a specified offer.
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/orderlanguage_param/valueProcess.js b/entity/Order_entity/entityfields/orderlanguage_param/valueProcess.js
deleted file mode 100644
index 28676a75cab..00000000000
--- a/entity/Order_entity/entityfields/orderlanguage_param/valueProcess.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import("system.logging");
-import("system.vars");
-import("system.db");
-import("system.result");
-
-var salesorderid = vars.get("$field.SALESORDERID")
-if(salesorderid)
-result.string(db.cell("select ISOLANGUAGE from SALESORDER where SALESORDERID = '" + salesorderid + "'"))
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/orderpaymentaddress_param/documentation.adoc b/entity/Order_entity/entityfields/orderpaymentaddress_param/documentation.adoc
deleted file mode 100644
index 43cd09315c3..00000000000
--- a/entity/Order_entity/entityfields/orderpaymentaddress_param/documentation.adoc
+++ /dev/null
@@ -1 +0,0 @@
-Carries the main address of the receipt. Can also be set from the offer if a receipt is to be created from a specified offer.
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/paydate/valueProcess.js b/entity/Order_entity/entityfields/paydate/valueProcess.js
new file mode 100644
index 00000000000..2b9e8729819
--- /dev/null
+++ b/entity/Order_entity/entityfields/paydate/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.logging");
+import("system.neon");
+import("system.vars");
+import("system.result");
+    
+if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT && vars.get("$this.value") == "")//we need "", because we are in EditMode
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Order_entity/entityfields/salesordercode/valueProcess.js b/entity/Order_entity/entityfields/salesordercode/valueProcess.js
index ccfc41b24a6..1282b4c9159 100644
--- a/entity/Order_entity/entityfields/salesordercode/valueProcess.js
+++ b/entity/Order_entity/entityfields/salesordercode/valueProcess.js
@@ -4,9 +4,4 @@ import("system.neon");
 import("Order_lib");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    if (vars.exists("$param.OrderCode_param") && vars.get("$param.OrderCode_param"))
-        result.string(vars.get("$param.OrderCode_param"));
-    else
-        result.string(OrderUtils.getNextOrderNumber());
-}
\ No newline at end of file
+    result.string(OrderUtils.getNextOrderNumber());
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index 8b12e56fdbc..0c256379c13 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -387,18 +387,24 @@ OfferUtils.copyOfferItems = function (pSourceOfferId, pTargetOfferId)
  * @param pHeader {String} [header=""]
  */
 OfferUtils.copyToOrder = function (pOfferId, pContextId, pRowId, pContactId, pLanguage, pCurrency, pAddress, pHeader)
-{
-    var params = {
-        "ContactId_param" : pContactId,
-        "ObjectRowId_param" : pRowId,
-        "ObjectType_param" : pContextId,
-        "OrderLanguage_param" : pLanguage,
-        "OfferId_param" : pOfferId,
-        "OrderCurrency_param" : pCurrency || "",
-        "OrderPaymentAddress_param" : pAddress || "",
-        "OrderHeader_param" : pHeader || ""
-    };
-    neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
+{  
+        var fieldparams = 
+        {
+        "$field.CONTACT_ID" : pContactId,
+        "$field.ISOLANGUAGE" : pLanguage,
+        "$field.OFFER_ID" : pOfferId,
+        "$field.CURRENCY" : pCurrency || "",
+        "$field.HEADER" : pHeader || "",
+        "$field.PAYMENTADDRESS" : pAddress || "",
+        "$field.OBJECT_TYPE" : pContextId || "",
+        "$field.OBJECT_ROWID" : pRowId || ""
+        };
+    
+    var params = {};
+    params["Copy_param"] = JSON.stringify(fieldparams);
+    params["OfferId_param"] = pOfferId;
+    
+    neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);  
 }
 
 /**
diff --git a/process/Order_lib/process.js b/process/Order_lib/process.js
index ecac0704d5f..22e824f24db 100644
--- a/process/Order_lib/process.js
+++ b/process/Order_lib/process.js
@@ -79,15 +79,20 @@ OrderUtils.isDeletable = function(status) {
 OrderUtils.createNewOrder = function(pContextId, pRowId, pRelationId)
 {
     var params = {};
+    var fieldparams = {};
     
      if (pRowId && pContextId)
     {
-        params["ObjectRowId_param"] = pRowId;
-        params["ObjectType_param"] = pContextId;
+        fieldparams["$field.OBJECT_TYPE"] = pContextId || "",
+        fieldparams["$field.OBJECT_ROWID"] = pRowId || ""
     }
     
     if (pRelationId)
+    { 
+        fieldparams["$field.CONTACT_ID"] = pRelationId;
         params["ContactId_param"] = pRelationId;
+    }
+    params["Copy_param"] = JSON.stringify(fieldparams);
     
     neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
 }
@@ -116,8 +121,9 @@ OrderUtils.copyOrder = function (pSourceOfferId, pContactId, pOrderType, pLangua
         "$field.ORDERSTATUS" : pOrderStatus || ""
     };
     
-    var params = {}
+    var params = {};
     params["Copy_param"] = JSON.stringify(fieldparams);
+    params["OfferId_param"] = pSourceOfferId;
     
     neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
 }
@@ -441,6 +447,7 @@ OrderUtils.buildReminderReport = function (pOrderID)
                         
     orderData[7] = datetime.toDate(orderData[7], translate.text("dd.MM.yyyy", language));
     orderData[18] = datetime.toDate(orderData[18], translate.text("dd.MM.yyyy", language));
+    orderData[19] = KeywordUtils.getViewValue("DunningLevel", orderData[19]);
     
     var orderItemFields = [
         "SALESORDERITEM.INFO", 
-- 
GitLab