From 6d0d7347c9d7d0bf5d6ff0f88977e1a7b1b44223 Mon Sep 17 00:00:00 2001 From: Benjamin Ulrich <b.ulrich@adito.de> Date: Tue, 23 Nov 2021 22:22:58 +0100 Subject: [PATCH] [Projekt: xRM-Sales][TicketNr.: 1086490][Werbemittelworkflows - Status... --- .../workflows/blob/advertisingShipment.xml | 2 +- .../AdvertisingItem_entity.aod | 23 +++---------------- .../entityfields/sent/valueProcess.js | 15 ------------ .../grantCreateProcess.js | 5 ++++ .../grantDeleteProcess.js | 5 ++++ .../grantUpdateProcess.js | 5 ++++ .../Advertising_entity/Advertising_entity.aod | 1 + .../recordcontainers/db/onDBDelete.js | 4 ++++ .../AdvertisingItemFilter_view.aod | 4 ---- .../AdvertisingItemSmallFilter_view.aod | 4 ---- process/Advertising_lib/process.js | 18 +++++++++++++++ .../process.js | 5 ++++ 12 files changed, 47 insertions(+), 44 deletions(-) delete mode 100644 entity/AdvertisingItem_entity/entityfields/sent/valueProcess.js create mode 100644 entity/AdvertisingItem_entity/grantCreateProcess.js create mode 100644 entity/AdvertisingItem_entity/grantDeleteProcess.js create mode 100644 entity/AdvertisingItem_entity/grantUpdateProcess.js create mode 100644 entity/Advertising_entity/recordcontainers/db/onDBDelete.js diff --git a/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml b/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml index 260461ae91..2d97bd7749 100644 --- a/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml +++ b/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml @@ -5,7 +5,7 @@ <documentation>Workflow for handling Advertisingmaterials</documentation> <startEvent id="startEvent1" flowable:formFieldValidation="true"></startEvent> <exclusiveGateway id="sid-ADD3DA2A-E320-4E07-9D04-73D8A9625D1E"></exclusiveGateway> - <userTask id="sid-3EB74D83-9BE8-427C-A5E8-72D906429892" name="Test Post Versand" flowable:candidateGroups="PROJECT_OfficeStaff,PROJECT_Marketing" flowable:formFieldValidation="true"> + <userTask id="sid-3EB74D83-9BE8-427C-A5E8-72D906429892" name="Post Versand" flowable:candidateGroups="PROJECT_OfficeStaff,PROJECT_Marketing" flowable:formFieldValidation="true"> <extensionElements> <modeler:group-info-name-PROJECT_OfficeStaff xmlns:modeler="http://flowable.org/modeler"><![CDATA[Office staff]]></modeler:group-info-name-PROJECT_OfficeStaff> <modeler:group-info-name-PROJECT_Marketing xmlns:modeler="http://flowable.org/modeler"><![CDATA[Marketing]]></modeler:group-info-name-PROJECT_Marketing> diff --git a/entity/AdvertisingItem_entity/AdvertisingItem_entity.aod b/entity/AdvertisingItem_entity/AdvertisingItem_entity.aod index 36f2c6a32b..d7d3bc9237 100644 --- a/entity/AdvertisingItem_entity/AdvertisingItem_entity.aod +++ b/entity/AdvertisingItem_entity/AdvertisingItem_entity.aod @@ -4,6 +4,9 @@ <title>Advertising item</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/AdvertisingItem_entity/documentation.adoc</documentation> + <grantCreateProcess>%aditoprj%/entity/AdvertisingItem_entity/grantCreateProcess.js</grantCreateProcess> + <grantUpdateProcess>%aditoprj%/entity/AdvertisingItem_entity/grantUpdateProcess.js</grantUpdateProcess> + <grantDeleteProcess>%aditoprj%/entity/AdvertisingItem_entity/grantDeleteProcess.js</grantDeleteProcess> <iconId>VAADIN:PACKAGE</iconId> <titlePlural>Advertising items</titlePlural> <recordContainer>db</recordContainer> @@ -87,18 +90,6 @@ <valueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/quantity/valueProcess.js</valueProcess> <onValidation>%aditoprj%/entity/AdvertisingItem_entity/entityfields/quantity/onValidation.js</onValidation> </entityField> - <entityField> - <name>SENT</name> - <title>Sent</title> - <contentType>BOOLEAN</contentType> - <mandatory v="false" /> - <valueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/sent/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>STATUS</name> - <title>Status</title> - <mandatory v="false" /> - </entityField> <entityField> <name>TARGETAMOUNT</name> <title>Target amount</title> @@ -283,14 +274,6 @@ <name>QUANTITY.value</name> <recordfield>ADVERTISINGITEM.QUANTITY</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>SENT.value</name> - <recordfield>ADVERTISINGITEM.SENT</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>STATUS.value</name> - <recordfield>ADVERTISINGITEM.STATUS</recordfield> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TARGETAMOUNT.value</name> <recordfield>ADVERTISINGITEM.TARGETAMOUNT</recordfield> diff --git a/entity/AdvertisingItem_entity/entityfields/sent/valueProcess.js b/entity/AdvertisingItem_entity/entityfields/sent/valueProcess.js deleted file mode 100644 index 15dc711a7f..0000000000 --- a/entity/AdvertisingItem_entity/entityfields/sent/valueProcess.js +++ /dev/null @@ -1,15 +0,0 @@ -import("KeywordRegistry_basic"); -import("system.neon"); -import("system.vars"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) -{ - var ret = 0; - //when an item was handover personal the item is already at its destination - if(vars.get("$field.DELIVERY") == $KeywordRegistry.advertisingDelivery$personal()) - { - ret = 1; - } - result.string(ret); -} \ No newline at end of file diff --git a/entity/AdvertisingItem_entity/grantCreateProcess.js b/entity/AdvertisingItem_entity/grantCreateProcess.js new file mode 100644 index 0000000000..09af9c97e0 --- /dev/null +++ b/entity/AdvertisingItem_entity/grantCreateProcess.js @@ -0,0 +1,5 @@ +import("Advertising_lib"); +import("system.vars"); +import("system.result"); + +result.string(AdvertisingUtils.isEditable(AdvertisingUtils.getStatus(vars.get("$param.AdvertisingId_param")))); \ No newline at end of file diff --git a/entity/AdvertisingItem_entity/grantDeleteProcess.js b/entity/AdvertisingItem_entity/grantDeleteProcess.js new file mode 100644 index 0000000000..09af9c97e0 --- /dev/null +++ b/entity/AdvertisingItem_entity/grantDeleteProcess.js @@ -0,0 +1,5 @@ +import("Advertising_lib"); +import("system.vars"); +import("system.result"); + +result.string(AdvertisingUtils.isEditable(AdvertisingUtils.getStatus(vars.get("$param.AdvertisingId_param")))); \ No newline at end of file diff --git a/entity/AdvertisingItem_entity/grantUpdateProcess.js b/entity/AdvertisingItem_entity/grantUpdateProcess.js new file mode 100644 index 0000000000..09af9c97e0 --- /dev/null +++ b/entity/AdvertisingItem_entity/grantUpdateProcess.js @@ -0,0 +1,5 @@ +import("Advertising_lib"); +import("system.vars"); +import("system.result"); + +result.string(AdvertisingUtils.isEditable(AdvertisingUtils.getStatus(vars.get("$param.AdvertisingId_param")))); \ No newline at end of file diff --git a/entity/Advertising_entity/Advertising_entity.aod b/entity/Advertising_entity/Advertising_entity.aod index 6313f129f4..18010d96c7 100644 --- a/entity/Advertising_entity/Advertising_entity.aod +++ b/entity/Advertising_entity/Advertising_entity.aod @@ -251,6 +251,7 @@ <name>db</name> <conditionProcess>%aditoprj%/entity/Advertising_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <orderClauseProcess>%aditoprj%/entity/Advertising_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <onDBDelete>%aditoprj%/entity/Advertising_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> <dbRecordFieldMapping> diff --git a/entity/Advertising_entity/recordcontainers/db/onDBDelete.js b/entity/Advertising_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000..81ef885478 --- /dev/null +++ b/entity/Advertising_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,4 @@ +import("Sql_lib"); + +newWhere("ADVERTISINGITEM.ADVERTISING_ID", "$field.ADVERTISINGID") + .deleteData(); \ No newline at end of file diff --git a/neonView/AdvertisingItemFilter_view/AdvertisingItemFilter_view.aod b/neonView/AdvertisingItemFilter_view/AdvertisingItemFilter_view.aod index bca3120650..287e19b68a 100644 --- a/neonView/AdvertisingItemFilter_view/AdvertisingItemFilter_view.aod +++ b/neonView/AdvertisingItemFilter_view/AdvertisingItemFilter_view.aod @@ -47,10 +47,6 @@ <name>e53a6f55-c4d4-49df-8785-55fa8ee8a657</name> <entityField>DELIVERY</entityField> </neonTableColumn> - <neonTableColumn> - <name>5f359ff4-06c6-4d6d-bf10-2f8dbf1fbb01</name> - <entityField>SENT</entityField> - </neonTableColumn> <neonTableColumn> <name>007e2ca8-d7c8-4f9e-891f-a53f3d0e6b5a</name> <entityField>INFO</entityField> diff --git a/neonView/AdvertisingItemSmallFilter_view/AdvertisingItemSmallFilter_view.aod b/neonView/AdvertisingItemSmallFilter_view/AdvertisingItemSmallFilter_view.aod index 392578f715..768304d0d5 100644 --- a/neonView/AdvertisingItemSmallFilter_view/AdvertisingItemSmallFilter_view.aod +++ b/neonView/AdvertisingItemSmallFilter_view/AdvertisingItemSmallFilter_view.aod @@ -16,10 +16,6 @@ <name>4f14ad89-679c-43c5-bf2d-9a7050a84b4c</name> <entityField>PRODUCT_ID</entityField> </neonTableColumn> - <neonTableColumn> - <name>9cc62b40-e77e-46d9-b44f-9f0ee42d7116</name> - <entityField>STATUS</entityField> - </neonTableColumn> <neonTableColumn> <name>a54cbe2d-b6d4-42b9-9998-48a92b157147</name> <entityField>DELIVERY</entityField> diff --git a/process/Advertising_lib/process.js b/process/Advertising_lib/process.js index db5d5c7422..5d51e25258 100644 --- a/process/Advertising_lib/process.js +++ b/process/Advertising_lib/process.js @@ -93,6 +93,24 @@ AdvertisingUtils.getNextItemPos = function (pAdvertisingId) } return itemPos; } + +/* +* Returns the status of an advertising +* +* @param {String} pAdvertisingId the advertising id +* +* @return {String} Status + */ +AdvertisingUtils.getStatus = function(pAdvertisingId) +{ + var status = newSelect("ADVERTISING.STATUS") + .from("ADVERTISING") + .where("ADVERTISING.ADVERTISINGID", pAdvertisingId) + .cell(); + + return status; +} + /* * checks if the advertising is editable, currently it's editable when it's not sent and not followed up * diff --git a/process/UpdateAdvertisingItem_workflowService/process.js b/process/UpdateAdvertisingItem_workflowService/process.js index 5d279eb586..a0d3b4281a 100644 --- a/process/UpdateAdvertisingItem_workflowService/process.js +++ b/process/UpdateAdvertisingItem_workflowService/process.js @@ -1,3 +1,4 @@ +import("KeywordRegistry_basic"); import("Sql_lib"); import("system.vars"); @@ -8,4 +9,8 @@ if (variables.targetContext && variables.targetContext == "Advertising" && varia newWhere("ADVERTISINGITEM.ADVERTISING_ID", variables.targetId).and("ADVERTISINGITEM.DELIVERY", variables.handover).updateFields({ "SENT": '1' }); + + newWhere("ADVERTISING.ADVERTISINGID", variables.targetId).updateFields({ + "STATUS": $KeywordRegistry.advertisingStatus$Sent() + }); } \ No newline at end of file -- GitLab