From ac0f1476dc6854759cd9ace639fa46661c79d74b Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Tue, 16 Apr 2019 16:56:06 +0200
Subject: [PATCH] hide main documents, if none exist

---
 entity/Activity_entity/Activity_entity.aod         |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 entity/Contract_entity/Contract_entity.aod         |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 entity/Offer_entity/Offer_entity.aod               |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 entity/Order_entity/Order_entity.aod               |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 entity/Product_entity/Product_entity.aod           |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 entity/Salesproject_entity/Salesproject_entity.aod |  1 +
 .../entityfields/maindocuments/stateProcess.js     | 14 ++++++++++++++
 12 files changed, 90 insertions(+)
 create mode 100644 entity/Activity_entity/entityfields/maindocuments/stateProcess.js
 create mode 100644 entity/Contract_entity/entityfields/maindocuments/stateProcess.js
 create mode 100644 entity/Offer_entity/entityfields/maindocuments/stateProcess.js
 create mode 100644 entity/Order_entity/entityfields/maindocuments/stateProcess.js
 create mode 100644 entity/Product_entity/entityfields/maindocuments/stateProcess.js
 create mode 100644 entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js

diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod
index 60c021ac7b..8b3af6c855 100644
--- a/entity/Activity_entity/Activity_entity.aod
+++ b/entity/Activity_entity/Activity_entity.aod
@@ -118,6 +118,7 @@
       <name>MainDocuments</name>
       <title>Maindocuments</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Activity_entity/entityfields/maindocuments/stateProcess.js b/entity/Activity_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..fb349d978f
--- /dev/null
+++ b/entity/Activity_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("ACTIVITY", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT"))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 8136cd6d2d..f152d300ba 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -209,6 +209,7 @@
       <name>MainDocuments</name>
       <title>Maindocuments</title>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Contract_entity/entityfields/maindocuments/stateProcess.js b/entity/Contract_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..d22f90760a
--- /dev/null
+++ b/entity/Contract_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("CONTRACT", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT"))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 51dc0bd7bf..8eb0cd5559 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -310,6 +310,7 @@
     <entityConsumer>
       <name>MainDocuments</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Offer_entity/entityfields/maindocuments/stateProcess.js b/entity/Offer_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..5c640c079d
--- /dev/null
+++ b/entity/Offer_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("OFFER", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT"))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod
index 92de79ba4f..df53ce2634 100644
--- a/entity/Order_entity/Order_entity.aod
+++ b/entity/Order_entity/Order_entity.aod
@@ -263,6 +263,7 @@
     <entityConsumer>
       <name>MainDocuments</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Order_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Order_entity/entityfields/maindocuments/stateProcess.js b/entity/Order_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..9104233a61
--- /dev/null
+++ b/entity/Order_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("SALESORDER", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT"))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index f8474184d2..c18c815398 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -242,6 +242,7 @@
     <entityConsumer>
       <name>MainDocuments</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Product_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Product_entity/entityfields/maindocuments/stateProcess.js b/entity/Product_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..2f286ec148
--- /dev/null
+++ b/entity/Product_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("PRODUCT", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias()))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index a7c8206d47..122da5bbb4 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -348,6 +348,7 @@
     <entityConsumer>
       <name>MainDocuments</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
+      <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
       <dependency>
         <name>dependency</name>
         <entityName>Document_entity</entityName>
diff --git a/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js b/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js
new file mode 100644
index 0000000000..08207c042c
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/maindocuments/stateProcess.js
@@ -0,0 +1,14 @@
+import("system.result");
+import("system.db");
+import("system.vars");
+import("system.neon");
+import("Sql_lib");
+
+if (0 == db.getBinaryCount("SALESPROJECT", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT"))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
-- 
GitLab