From e09b766414297ccce6399bac3b61ac41aa40299e Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Mon, 17 Dec 2018 10:39:07 +0100
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1029615][Versendete
 Angebote]

---
 entity/Offer_entity/Offer_entity.aod              |  1 +
 .../entityfields/salesproject_id/stateProcess.js  |  3 ---
 .../entityfields/status/onValueChange.js          |  8 ++++++++
 .../entityfields/status/possibleItemsProcess.js   | 15 +++++++++++++--
 neonView/OfferFilter_view/OfferFilter_view.aod    |  4 ++++
 5 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100644 entity/Offer_entity/entityfields/status/onValueChange.js

diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 55fa397d025..49b997cfe10 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -77,6 +77,7 @@
       <name>STATUS</name>
       <title>Status</title>
       <possibleItemsProcess>%aditoprj%/entity/Offer_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
+      <state>EDITABLE</state>
     </entityField>
     <entityField>
       <name>USER_EDIT</name>
diff --git a/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js b/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js
index d4e696f145b..8116a21437c 100644
--- a/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js
+++ b/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js
@@ -8,9 +8,6 @@ switch (vars.get("$sys.operatingstate"))
     case neon.OPERATINGSTATE_NEW:
         result.object(neon.COMPONENTSTATE_EDITABLE);
     break;
-    case neon.OPERATINGSTATE_EDIT:
-        result.object(neon.COMPONENTSTATE_INVISIBLE);
-    break;
     default:
         result.object(neon.COMPONENTSTATE_READONLY);
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/status/onValueChange.js b/entity/Offer_entity/entityfields/status/onValueChange.js
new file mode 100644
index 00000000000..992760ebe86
--- /dev/null
+++ b/entity/Offer_entity/entityfields/status/onValueChange.js
@@ -0,0 +1,8 @@
+import("system.vars");
+import("OfferOrder_lib");
+
+var offerId = vars.getString("$field.OFFERID");
+if (offerId && vars.get("$field.STATUS") == 2 || vars.get("$field.STATUS") == 3 || vars.get("$field.STATUS") == 4)
+{
+    OfferUtils.setSent(offerId);
+}
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/status/possibleItemsProcess.js b/entity/Offer_entity/entityfields/status/possibleItemsProcess.js
index a59c5804d8f..45a595aacaa 100644
--- a/entity/Offer_entity/entityfields/status/possibleItemsProcess.js
+++ b/entity/Offer_entity/entityfields/status/possibleItemsProcess.js
@@ -1,7 +1,18 @@
+import("system.logging");
 import("system.result");
 import("Keyword_lib");
+import("system.vars");
+import("OfferOrder_lib");
 
-var items;
+var items = KeywordUtils.getStandardArray("OFFER.STATUS");
 
-items = KeywordUtils.getStandardArray("OFFER.STATUS");
+
+if (!OfferUtils.isEditable(vars.get("$field.STATUS")))
+{
+    items = items.filter(function(pItem) 
+    {
+        return !OfferUtils.isEditable(pItem[0]);
+    });
+}
+logging.log(items.toSource())
 result.object(items);
\ No newline at end of file
diff --git a/neonView/OfferFilter_view/OfferFilter_view.aod b/neonView/OfferFilter_view/OfferFilter_view.aod
index def21be810b..2054faee42e 100644
--- a/neonView/OfferFilter_view/OfferFilter_view.aod
+++ b/neonView/OfferFilter_view/OfferFilter_view.aod
@@ -61,6 +61,10 @@
           <name>443c8480-5676-43a3-9617-f86dae39c960</name>
           <entityField>OFFERDATE</entityField>
         </neonTableColumn>
+        <neonTableColumn>
+          <name>c5780864-ac2c-4650-8630-2690a9a074ea</name>
+          <entityField>STATUS</entityField>
+        </neonTableColumn>
         <neonTableColumn>
           <name>6f55da1e-281c-44ba-ab97-729b75516c32</name>
           <entityField>NET</entityField>
-- 
GitLab