From 4bb2f34d7f5886c56cd8f270a55cf48cc18989f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20Schr=C3=B6ger?= <m.schroeger@adito.de>
Date: Thu, 4 Oct 2018 11:41:10 +0200
Subject: [PATCH] Modul Vertrag erweitert

---
 entity/Contract_entity/Contract_entity.aod    | 36 +++++++++++++
 .../valueProcess.js                           | 10 ++++
 .../children/rowid_param/code.js              |  4 ++
 .../contractstatus/possibleItemsProcess.js    |  8 +++
 .../contracttype/possibleItemsProcess.js      |  8 +++
 .../payment/possibleItemsProcess.js           |  8 +++
 .../relation_id/possibleItemsProcess.js       |  0
 entity/History_entity/History_entity.aod      | 12 +++++
 .../ContractEdit_view/ContractEdit_view.aod   | 50 +++++++++++++++++++
 .../ContractMain_view/ContractMain_view.aod   | 18 +++++++
 .../ContractPreview_view.aod                  | 48 ++++++++++++++++++
 process/Keyword_lib/process.js                | 23 +++++++++
 12 files changed, 225 insertions(+)
 create mode 100644 entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
 create mode 100644 entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js
 create mode 100644 entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js
 create mode 100644 entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js
 create mode 100644 entity/Contract_entity/entityfields/payment/possibleItemsProcess.js
 create mode 100644 entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js

diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 9805f70690..c06d034aae 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -17,11 +17,15 @@
       <name>CONTRACTDUE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTDUE</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTEND</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTEND</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTID</name>
@@ -32,16 +36,20 @@
       <name>CONTRACTSTART</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTART</columnName>
+      <contentType>DATE</contentType>
+      <resolution>DAY</resolution>
     </entityField>
     <entityField>
       <name>CONTRACTSTATUS</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTSTATUS</columnName>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>CONTRACTTYPE</name>
       <tableName>CONTRACT</tableName>
       <columnName>CONTRACTTYPE</columnName>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>DATE_EDIT</name>
@@ -63,12 +71,16 @@
       <name>PAYMENT</name>
       <tableName>CONTRACT</tableName>
       <columnName>PAYMENT</columnName>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js</possibleItemsProcess>
     </entityField>
     <entityField>
       <name>RELATION_ID</name>
       <tableName>CONTRACT</tableName>
       <columnName>RELATION_ID</columnName>
+      <mandatory v="true" />
       <outgoingField></outgoingField>
+      <possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js</possibleItemsProcess>
       <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
@@ -123,6 +135,30 @@
       <contentType>IMAGE</contentType>
       <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/image/valueProcess.js</valueProcess>
     </entityField>
+    <entityFieldGroup>
+      <name>CONTRACTCODE_DISPLAY_fieldGroup</name>
+      <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js</valueProcess>
+      <description>FIELDGROUP</description>
+      <fields>
+        <element>CONTRACTTYPE</element>
+        <element>CONTRACTCODE</element>
+      </fields>
+    </entityFieldGroup>
+    <entityOutgoingField>
+      <name>ContractHistory_dfo</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>History_entity</entityName>
+        <fieldName>ContractHistory_dfi</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>RowId_param</name>
+          <code>%aditoprj%/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js</code>
+        </entityParameter>
+      </children>
+    </entityOutgoingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
new file mode 100644
index 0000000000..b6a434814e
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils = new KeywordUtils();
+
+var cType = vars.get("$field.CONTRACTTYPE");
+var cCode = vars.get("$field.CONTRACTCODE");
+
+result.string(kwdUtils.getViewValue("CONTRACT.CONTRACTTYPE", cType) + " : " + cCode);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js b/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js
new file mode 100644
index 0000000000..6a98694895
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contracthistory_dfo/children/rowid_param/code.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.CONTRACTID"));
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js b/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js
new file mode 100644
index 0000000000..4ee17a5e31
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.CONTRACTSTATUS");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js b/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js
new file mode 100644
index 0000000000..a0f73ce40b
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.CONTRACTTYPE");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js b/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js
new file mode 100644
index 0000000000..c743e4350e
--- /dev/null
+++ b/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("Keyword_lib");
+
+var kwdUtils, items;
+
+kwdUtils = new KeywordUtils();
+items = kwdUtils.getStandardArray("CONTRACT.PAYMENT");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js b/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/entity/History_entity/History_entity.aod b/entity/History_entity/History_entity.aod
index d3750669e8..9db560091b 100644
--- a/entity/History_entity/History_entity.aod
+++ b/entity/History_entity/History_entity.aod
@@ -114,6 +114,18 @@
       <contentType>IMAGE</contentType>
       <valueProcess>%aditoprj%/entity/History_entity/entityfields/direction_icon/valueProcess.js</valueProcess>
     </entityField>
+    <entityIncomingField>
+      <name>ContractHistory_dfi</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>f47157d9-0cb6-4bcf-a485-08675bd957ee</name>
+          <entityName>Contract_entity</entityName>
+          <fieldName>ContractHistory_dfo</fieldName>
+          <isOutgoing v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityIncomingField>
   </entityFields>
   <linkInformation>
     <linkInformation>
diff --git a/neonView/ContractEdit_view/ContractEdit_view.aod b/neonView/ContractEdit_view/ContractEdit_view.aod
index 7156d82590..7dbc60e17a 100644
--- a/neonView/ContractEdit_view/ContractEdit_view.aod
+++ b/neonView/ContractEdit_view/ContractEdit_view.aod
@@ -2,4 +2,54 @@
 <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>ContractEdit_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Generic</name>
+      <editMode v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>5f2ef7a7-d7b5-49a8-86f3-3644036232fb</name>
+          <entityField>CONTRACTCODE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>3177f8e9-24e9-441f-8c19-b004935a86a9</name>
+          <entityField>RELATION_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b4a51794-f04c-4cc5-b0bd-ff89d8f5ada9</name>
+          <entityField>CONTRACTSTART</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>2fb49607-d34c-4a19-8c4e-2ec3db395fa9</name>
+          <entityField>CONTRACTEND</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>e66d7b82-5b48-46f3-b780-06a5f107faca</name>
+          <entityField>CONTRACTDUE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>f741bfda-5434-42ab-a5e9-ea1f7e4aaf79</name>
+          <entityField>CONTRACTSTATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ac160ded-1a06-4664-b8bd-333e01468f61</name>
+          <entityField>CONTRACTTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>02d4e542-f7ed-4900-82b3-b096958e1473</name>
+          <entityField>PAYMENT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4390abcd-d47e-40b2-85a9-655d39b17e82</name>
+          <entityField>REMARK</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
 </neonView>
diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod
index 28ddf433f4..151066bd58 100644
--- a/neonView/ContractMain_view/ContractMain_view.aod
+++ b/neonView/ContractMain_view/ContractMain_view.aod
@@ -2,4 +2,22 @@
 <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>ContractMain_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</name>
+      <entityField>#ENTITY</entityField>
+      <view>ContractPreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>8c6be607-ccce-4ad7-8dba-875b24d821e7</name>
+      <entityField>ContractHistory_dfo</entityField>
+      <view>HistoryFilter_view</view>
+    </neonViewReference>
+  </children>
 </neonView>
diff --git a/neonView/ContractPreview_view/ContractPreview_view.aod b/neonView/ContractPreview_view/ContractPreview_view.aod
index 60d449bc88..302a4134d6 100644
--- a/neonView/ContractPreview_view/ContractPreview_view.aod
+++ b/neonView/ContractPreview_view/ContractPreview_view.aod
@@ -2,4 +2,52 @@
 <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>ContractPreview_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>ContractHeader_template</name>
+      <iconField>IMAGE</iconField>
+      <descriptionField>RELATION_ID</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>ContractInfo_template</name>
+      <showDrawer v="true" />
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>6afd1b0d-4d73-47a0-a0a6-58dac448c783</name>
+          <entityField>CONTRACTTYPE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9101eee8-57b1-4bcf-a271-2501b7a3b842</name>
+          <entityField>CONTRACTSTART</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9cc46e86-0f4b-406a-a702-77e840fc3988</name>
+          <entityField>CONTRACTEND</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>6529a64b-4249-434a-8692-45daad5264e3</name>
+          <entityField>CONTRACTDUE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>b0ced77c-bd97-4318-8c0b-ad028111f039</name>
+          <entityField>CONTRACTSTATUS</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>aa310f7a-d66b-4128-8af0-3619099605ce</name>
+          <entityField>PAYMENT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bb0d44ca-671e-4a0f-87dc-a94e214bca54</name>
+          <entityField>REMARK</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
 </neonView>
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 85b57553f3..2b2d13da5c 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -121,6 +121,29 @@ function KeywordUtils(){
                     ,createKeywordEntry("o", translate.text("${GENDER_OTHER}"))
                 ]);
                 break;
+            case "CONTRACT.CONTRACTTYPE":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("0", translate.text("Rahmenvertrag"))
+                    ,createKeywordEntry("1", translate.text("Werksvertrag"))
+                    ,createKeywordEntry("2", translate.text("Wartungsvertrag"))
+                ]);
+                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"))
+                ]);
+                break;
+            case "CONTRACT.PAYMENT":
+                valueContainer = createKeywordEntriesContainer([
+                     createKeywordEntry("0", translate.text("jährlich"))
+                    ,createKeywordEntry("1", translate.text("halbjährlich"))
+                    ,createKeywordEntry("2", translate.text("vierteljährlich"))
+                ]);
+                break;
             default: 
                 throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [
                     arguments.callee.name, keywordType
-- 
GitLab