diff --git a/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml b/.liquibase/Data_alias/basic/workflows/blob/advertisingShipment.xml index 260461ae913e6fbad7d7a8b31580ff889210ca26..2d97bd7749b191ad539e461701e8a45e84fdb3c4 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 36f2c6a32b7ac269256871976cf25f2680ed8069..d7d3bc9237184b3f3264392aef33596d4c6da954 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 15dc711a7f303c8f73c5b27455ffb1e715ae542d..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..09af9c97e016fcfcb42a7d68c063e6a05ad8f2e3 --- /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 0000000000000000000000000000000000000000..09af9c97e016fcfcb42a7d68c063e6a05ad8f2e3 --- /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 0000000000000000000000000000000000000000..09af9c97e016fcfcb42a7d68c063e6a05ad8f2e3 --- /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 6313f129f407dee8485069f4e2b1cfec2c9459f9..18010d96c71e3eb72f9fd8eddc09a155c2e777df 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 0000000000000000000000000000000000000000..81ef885478c2b10078fba72c6d47493ae7ab84aa --- /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 bca3120650c430358c0db22166dedc6cebbc56b9..287e19b68afd315900d0e271ad012727eed2dd63 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 392578f715fb82a3e8f2b7ae0c1dc8e8c876a13b..768304d0d52dd0675356441507892769388435b0 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 db5d5c742270388ad559988a1e3416b9275ef06c..5d51e252582f50edb9650b9bc2e4177dd3018c5d 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 5d279eb5865fc7bd8ae84308a6aa1006deebc9f4..a0d3b4281a4ca76f7844398d116517e8f97b23c7 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