Skip to content
Snippets Groups Projects
Commit 10a456af authored by Benjamin Ulrich's avatar Benjamin Ulrich :speech_balloon: Committed by Martin Groppe
Browse files

Sales 1085045 advertising fixes

parent 81aa6d7b
No related branches found
No related tags found
No related merge requests found
Showing
with 198 additions and 51 deletions
import("Sql_lib");
import("system.result");
result.string(newSelect("ADVERTISING.ADVERTISINGID")
.from("ADVERTISING")
.where("ADVERTISING.OBJECT_ROWID = ACTIVITY.ACTIVITYID")
.toString());
\ No newline at end of file
import("Sql_lib");
import("system.result");
result.string(new SqlBuilder().selectCount()
.from("ADVERTISING")
.where("ADVERTISING.OBJECT_ROWID", "ACTIVITY.ACTIVITYID")
.toString());
\ No newline at end of file
......@@ -4,6 +4,7 @@
<title>Advertising item</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/AdvertisingItem_entity/documentation.adoc</documentation>
<iconId>VAADIN:PACKAGE</iconId>
<titlePlural>Advertising items</titlePlural>
<recordContainer>db</recordContainer>
<entityFields>
......@@ -11,7 +12,7 @@
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>ACTUALAMOUNT</name>
<name>actualAmount</name>
<title>Actual amount</title>
<contentType>NUMBER</contentType>
<outputFormat>#,##0.00</outputFormat>
......@@ -37,10 +38,9 @@
<displayValueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/delivery/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>FREE</name>
<title>Free</title>
<name>free</name>
<title>${FREE}</title>
<contentType>BOOLEAN</contentType>
<mandatory v="true" />
<valueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/free/valueProcess.js</valueProcess>
<onValueChange>%aditoprj%/entity/AdvertisingItem_entity/entityfields/free/onValueChange.js</onValueChange>
</entityField>
......@@ -73,6 +73,7 @@
<name>PRODUCT_ID</name>
<title>Product</title>
<consumer>Products</consumer>
<mandatory v="true" />
<stateProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/product_id/stateProcess.js</stateProcess>
<displayValueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/product_id/displayValueProcess.js</displayValueProcess>
<onValueChange>%aditoprj%/entity/AdvertisingItem_entity/entityfields/product_id/onValueChange.js</onValueChange>
......@@ -156,7 +157,7 @@
<expose v="true" />
</entityParameter>
<entityField>
<name>ContactId</name>
<name>contactId</name>
<title>Person</title>
<state>READONLY</state>
<valueProcess>%aditoprj%/entity/AdvertisingItem_entity/entityfields/contactid/valueProcess.js</valueProcess>
......@@ -230,13 +231,14 @@
<recordContainers>
<dbRecordContainer>
<name>db</name>
<fromClauseProcess>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess>
<conditionProcess>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
<orderClauseProcess>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
<alias>Data_alias</alias>
<recordFieldMappings>
<dbRecordFieldMapping>
<name>ACTUALAMOUNT.value</name>
<recordfield>ADVERTISINGITEM.ACTUALAMOUNT</recordfield>
<name>actualAmount.value</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/actualamount.value/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>DATE_NEW.value</name>
......@@ -247,8 +249,7 @@
<recordfield>ADVERTISINGITEM.DELIVERY</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>FREE.value</name>
<recordfield>ADVERTISINGITEM.FREE</recordfield>
<name>free.value</name>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>INFO.value</name>
......@@ -299,6 +300,26 @@
<name>ADVERTISINGITEMID.value</name>
<recordfield>ADVERTISINGITEM.ADVERTISINGITEMID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>actualAmount.displayValue</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/actualamount.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PRICE.displayValue</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/price.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>TARGETAMOUNT.displayValue</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/targetamount.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>UNIT.displayValue</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>PRODUCT_ID.displayValue</name>
<expression>%aditoprj%/entity/AdvertisingItem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
</recordFieldMappings>
<linkInformation>
<linkInformation>
......
import("Advertising_lib");
import("system.result");
import("system.vars");
import("system.translate");
result.string(AdvertisingUtils.getPriceTitleWithCurrency(translate.text("Actual Amount"), vars.get("$param.Currency_param")));
\ No newline at end of file
result.string(translate.withArguments("Actual Amount in %0", [vars.get("$param.Currency_param")]));
\ No newline at end of file
......@@ -4,7 +4,7 @@ import("system.vars");
if(vars.get("$field.PRODUCT_ID") && vars.get("$field.PRICE"))
{
var free = vars.get("$field.FREE");
var free = vars.get("$field.free");
var quantity = vars.get("$field.QUANTITY");
var price = vars.get("$field.PRICE");
......
......@@ -2,5 +2,5 @@ import("system.result");
import("system.vars");
import("Contact_lib");
var title = ContactUtils.getTitleByContactId(vars.get("$field.ContactId"));
var title = ContactUtils.getTitleByContactId(vars.get("$field.contactId"));
result.string(title);
\ No newline at end of file
......@@ -3,4 +3,4 @@ import("Util_lib");
import("system.neon");
import("system.vars");
result.string(Utils.toBoolean(vars.get("$field.FREE")) ? neon.COMPONENTSTATE_READONLY : neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
result.string(Utils.toBoolean(vars.get("$field.free")) ? neon.COMPONENTSTATE_READONLY : neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
import("Advertising_lib");
import("system.result");
import("system.vars");
import("system.translate");
result.string(AdvertisingUtils.getPriceTitleWithCurrency(translate.text("Price"), vars.get("$param.Currency_param")));
\ No newline at end of file
result.string(translate.withArguments("Price in %0", [vars.get("$param.Currency_param")]));
\ No newline at end of file
import("Advertising_lib");
import("system.result");
import("system.vars");
import("system.translate");
result.string(AdvertisingUtils.getPriceTitleWithCurrency(translate.text("Target Amount"), vars.get("$param.Currency_param")));
\ No newline at end of file
result.string(translate.withArguments("Target Amount in %0", [vars.get("$param.Currency_param")]));
\ No newline at end of file
......@@ -13,7 +13,7 @@ if(vars.exists("$param.AdvertisingId_param") && vars.get("$param.AdvertisingId_p
if(vars.exists("$param.RowId_param") && vars.get("$param.RowId_param"))
{
var advSubselect = newSelect("ADVERTISING.ADVERTISINGID")
.from("ADVERTISING").where("ADVERTISING.ROW_ID", vars.getString("$param.RowId_param"), SqlBuilder.EQUAL());
.from("ADVERTISING").where("ADVERTISING.OBJECT_ROWID", vars.getString("$param.RowId_param"), SqlBuilder.EQUAL());
cond.andIfSet("ADVERTISINGITEM.ADVERTISING_ID", advSubselect, SqlBuilder.EQUAL());
}
......
import("system.result");
import("Sql_lib");
result.string(new SqlBuilder()
.from("ADVERTISINGITEM")
.join("ADVERTISING", "ADVERTISING.ADVERTISINGID = ADVERTISINGITEM.ADVERTISING_ID").toString());
\ No newline at end of file
import("system.SQLTYPES");
import("system.result");
import("Sql_lib");
var sqlHelper = new SqlMaskingUtils();
result.string(sqlHelper.concatenate([sqlHelper.cast(sqlHelper.cast("ADVERTISINGITEM.PRICE*ADVERTISINGITEM.QUANTITY", SQLTYPES.DECIMAL, [30, 2]), SQLTYPES.VARCHAR, 20), "' '", sqlHelper.cast("ADVERTISING.CURRENCY", SQLTYPES.VARCHAR, 20)]))
\ No newline at end of file
import("system.SQLTYPES");
import("system.result");
import("Sql_lib");
var sqlHelper = new SqlMaskingUtils();
result.string(sqlHelper.cast("ADVERTISINGITEM.PRICE*ADVERTISINGITEM.QUANTITY", SQLTYPES.DECIMAL, [30, 2]))
\ No newline at end of file
import("system.SQLTYPES");
import("system.result");
import("Sql_lib");
var sqlHelper = new SqlMaskingUtils();
result.string(sqlHelper.concatenate([sqlHelper.cast("ADVERTISINGITEM.PRICE", SQLTYPES.VARCHAR, 20), "' '", sqlHelper.cast("ADVERTISING.CURRENCY", SQLTYPES.VARCHAR, 20)]))
\ No newline at end of file
import("system.vars");
import("system.result");
import("Sql_lib");
result.string(newSelect("PRODUCT.PRODUCTNAME")
.from("PRODUCT")
.where("ADVERTISINGITEM.PRODUCT_ID = PRODUCT.PRODUCTID")
.toString());
\ No newline at end of file
import("system.SQLTYPES");
import("system.result");
import("Sql_lib");
var sqlHelper = new SqlMaskingUtils();
result.string(sqlHelper.concatenate([sqlHelper.cast("ADVERTISINGITEM.TARGETAMOUNT", SQLTYPES.VARCHAR, 20), "' '", sqlHelper.cast("ADVERTISING.CURRENCY", SQLTYPES.VARCHAR, 20)]))
\ No newline at end of file
import("system.result");
import("Keyword_lib");
import("KeywordRegistry_basic");
var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "ADVERTISINGITEM.UNIT");
result.string(sql);
......@@ -4,7 +4,8 @@
<title>Advertising material</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<documentation>%aditoprj%/entity/Advertising_entity/documentation.adoc</documentation>
<grantCreate v="false" />
<icon>VAADIN:PACKAGE</icon>
<grantCreate v="true" />
<contentTitleProcess>%aditoprj%/entity/Advertising_entity/contentTitleProcess.js</contentTitleProcess>
<contentDescriptionProcess>%aditoprj%/entity/Advertising_entity/contentDescriptionProcess.js</contentDescriptionProcess>
<iconId>VAADIN:PACKAGE</iconId>
......@@ -46,11 +47,12 @@
<displayValueProcess>%aditoprj%/entity/Advertising_entity/entityfields/responsible_id/displayValueProcess.js</displayValueProcess>
</entityField>
<entityField>
<name>ROW_ID</name>
<name>OBJECT_ROWID</name>
<title>{$OBJECTLINK_OBJECT}</title>
<consumer>Objects</consumer>
<linkedContextProcess>%aditoprj%/entity/Advertising_entity/entityfields/row_id/linkedContextProcess.js</linkedContextProcess>
<displayValueProcess>%aditoprj%/entity/Advertising_entity/entityfields/row_id/displayValueProcess.js</displayValueProcess>
<linkedContextProcess>%aditoprj%/entity/Advertising_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess>
<titleProcess>%aditoprj%/entity/Advertising_entity/entityfields/object_rowid/titleProcess.js</titleProcess>
<displayValueProcess>%aditoprj%/entity/Advertising_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess>
</entityField>
<entityProvider>
<name>#PROVIDER_AGGREGATES</name>
......@@ -198,6 +200,47 @@
<stateProcess>%aditoprj%/entity/Advertising_entity/entityfields/newmail/stateProcess.js</stateProcess>
<tooltip>Send digital Advertising materials &amp; complete Workflow Task</tooltip>
</entityActionField>
<entityField>
<name>USER_EDIT</name>
<title>USER_EDIT</title>
<valueProcess>%aditoprj%/entity/Advertising_entity/entityfields/user_edit/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>USER_NEW</name>
<title>USER_NEW</title>
<valueProcess>%aditoprj%/entity/Advertising_entity/entityfields/user_new/valueProcess.js</valueProcess>
</entityField>
<entityActionField>
<name>openAdminView</name>
<title>Open admin view</title>
<onActionProcess>%aditoprj%/entity/Advertising_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
<iconId>VAADIN:CURLY_BRACKETS</iconId>
<stateProcess>%aditoprj%/entity/Advertising_entity/entityfields/openadminview/stateProcess.js</stateProcess>
</entityActionField>
<entityParameter>
<name>IsInsertAdvertising_param</name>
<expose v="true" />
<documentation>%aditoprj%/entity/Advertising_entity/entityfields/isinsertadvertising_param/documentation.adoc</documentation>
<description></description>
</entityParameter>
<entityParameter>
<name>ObjectType_param</name>
<expose v="true" />
</entityParameter>
<entityConsumer>
<name>LogHistories</name>
<dependency>
<name>dependency</name>
<entityName>LogHistory_entity</entityName>
<fieldName>LogHistoryProvider</fieldName>
</dependency>
<children>
<entityParameter>
<name>tablenames_param</name>
<valueProcess>%aditoprj%/entity/Advertising_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
</entityFields>
<recordContainers>
<dbRecordContainer>
......@@ -213,10 +256,12 @@
<dbRecordFieldMapping>
<name>CONTACT_ID.value</name>
<recordfield>ADVERTISING.CONTACT_ID</recordfield>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>CURRENCY.value</name>
<recordfield>ADVERTISING.CURRENCY</recordfield>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>OBJECT_TYPE.value</name>
......@@ -225,14 +270,16 @@
<dbRecordFieldMapping>
<name>RESPONSIBLE_ID.value</name>
<recordfield>ADVERTISING.RESPONSIBLE_ID</recordfield>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>ROW_ID.value</name>
<recordfield>ADVERTISING.ROW_ID</recordfield>
<name>OBJECT_ROWID.value</name>
<recordfield>ADVERTISING.OBJECT_ROWID</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>STATUS.value</name>
<recordfield>ADVERTISING.STATUS</recordfield>
<isFilterable v="true" />
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>ACTIVE.value</name>
......@@ -246,10 +293,44 @@
<name>DATE_EDIT.value</name>
<recordfield>ADVERTISING.DATE_EDIT</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>STATUS.displayValue</name>
<expression>%aditoprj%/entity/Advertising_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>CURRENCY.displayValue</name>
<expression>%aditoprj%/entity/Advertising_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>RESPONSIBLE_ID.displayValue</name>
<expression>%aditoprj%/entity/Advertising_entity/recordcontainers/db/recordfieldmappings/responsible_id.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>CONTACT_ID.displayValue</name>
<expression>%aditoprj%/entity/Advertising_entity/recordcontainers/db/recordfieldmappings/contact_id.displayvalue/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>USER_EDIT.value</name>
<recordfield>ADVERTISING.USER_EDIT</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>USER_NEW.value</name>
<recordfield>ADVERTISING.USER_NEW</recordfield>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>countItems.value</name>
<expression>%aditoprj%/entity/Advertising_entity/recordcontainers/db/recordfieldmappings/countitems.value/expression.js</expression>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>countItems.displayValue</name>
</dbRecordFieldMapping>
<dbRecordFieldMapping>
<name>OBJECT_ROWID.displayValue</name>
</dbRecordFieldMapping>
</recordFieldMappings>
<linkInformation>
<linkInformation>
<name>fc2ebd14-8a58-4c97-8bac-15db1f073445</name>
<name>f0bfd671-33ec-4106-b89e-5e2b198ec987</name>
<tableName>ADVERTISING</tableName>
<primaryKey>ADVERTISINGID</primaryKey>
<isUIDTable v="true" />
......
import("system.entities");
import("Sql_lib");
import("system.result");
import("system.neon");
import("system.vars");
//when not set yet, especially when directly in advertising there should be also only the linked person selectable
if(!vars.get("$param.ContactIds_param"))
if(!vars.get("$param.ContactIds_param") && vars.get("$param.ObjectType_param") == "Activity")
{
var contactIds = [];
var conf = entities.createConfigForLoadingRows();
conf.entity("ActivityLink_entity")
conf.addParameter("ActivityId_param", vars.get("$field.ROW_ID"));
conf.fields(["OBJECT_TYPE", "OBJECT_ROWID"]);
var contactIds = newSelect("ACTIVITYLINK.OBJECT_ROWID")
.from("ACTIVITYLINK")
.where("ACTIVITYLINK.OBJECT_TYPE", "Person")
.and("ACTIVITYLINK.ACTIVITY_ID", vars.get("$param.RowId_param"))
.arrayColumn();
var links = entities.getRows(conf);
//only Persons can be linked to an Advertising
links.forEach(function(link)
{
if(link["OBJECT_TYPE"] == "Person")
{
contactIds.push( link["OBJECT_ROWID"]);
}
});
result.string(JSON.stringify(contactIds));
result.string(contactIds);
}
\ No newline at end of file
import("Sql_lib");
import("system.result");
import("system.vars");
import("system.entities");
var conf = entities.createConfigForLoadingRows()
.entity("AdvertisingItem_entity")
.addParameter("AdvertisingId_param", vars.get("$field.ADVERTISINGID"));
result.string(entities.getRowCount(conf));
\ No newline at end of file
var count = new SqlBuilder().selectCount()
.from("ADVERTISINGITEM")
.where("ADVERTISINGITEM.ADVERTISING_ID", vars.get("$field.ADVERTISINGID"))
.cell();
result.string(count);
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment