diff --git a/entity/KeywordEntry_entity/onValidation.js b/entity/KeywordEntry_entity/onValidation.js index ae813d018848dcb847a752c1eedb985090518c16..f1f568a35c02d5f14032daa227f765538d92b5a1 100644 --- a/entity/KeywordEntry_entity/onValidation.js +++ b/entity/KeywordEntry_entity/onValidation.js @@ -1,3 +1,4 @@ +import("system.translate"); import("system.db"); import("system.vars"); import("system.text"); @@ -15,7 +16,7 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2")); newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) if (isNaN(newCodeNumber)) - throw new TypeError();//TODO:add Message + throw new TypeError(translate.text("The code number is not a valid number.")); neon.setFieldValue("$field.SORTING", ++newCodeNumber); } } \ No newline at end of file diff --git a/entity/KeywordEntry_entity/recordcontainers/db/onDBUpdate.js b/entity/KeywordEntry_entity/recordcontainers/db/onDBUpdate.js index 0f9d6cbdbc13c88271967f572ce1709fd1ad6519..d9f8978acd6592e20a2851d1e46b490b2ff398d7 100644 --- a/entity/KeywordEntry_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/KeywordEntry_entity/recordcontainers/db/onDBUpdate.js @@ -1,3 +1,4 @@ +import("system.translate"); import("system.db"); import("system.vars"); import("system.text"); @@ -7,7 +8,7 @@ import("Sql_lib"); var changedFields = vars.get("$local.changed"); //whenever the container is changed data that depends on the keyword-container has be "fixed" to keep consistency //this could be information like Keyword-attributes or the sorting-position -//maybe it'd be better to lock KeywordContainer as read-only after creation +// TODO: maybe it'd be better to lock KeywordContainer as read-only after creation if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && changedFields.indexOf("AB_KEYWORD_ENTRY.CONTAINER") > -1) { var keyContainer = vars.get("$field.CONTAINER"); @@ -18,7 +19,7 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && changedFields.in var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2")); newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) if (isNaN(newCodeNumber)) - throw new TypeError();//TODO:add Message + throw new TypeError(translate.text("The code number is not a valid number.")); var cols = ["SORTING"]; var vals = [++newCodeNumber]; diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod index 691c6b9950b17f8186cbbb24c59b8c26ac9e6e92..916eea0cb49d768d7545700d27ce26f29307fff7 100644 --- a/entity/Offeritem_entity/Offeritem_entity.aod +++ b/entity/Offeritem_entity/Offeritem_entity.aod @@ -62,7 +62,8 @@ <name>PRODUCT_ID</name> <documentation>%aditoprj%/entity/Offeritem_entity/entityfields/product_id/documentation.adoc</documentation> <title>Article</title> - <possibleItemsProcess>%aditoprj%/entity/Offeritem_entity/entityfields/product_id/possibleItemsProcess.js</possibleItemsProcess> + <consumer>Products</consumer> + <linkedContext>Product_context</linkedContext> <onValueChange>%aditoprj%/entity/Offeritem_entity/entityfields/product_id/onValueChange.js</onValueChange> <onValueChangeTypes> <element>MASK</element> @@ -178,6 +179,15 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>Products</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Product_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> @@ -267,6 +277,10 @@ <name>UNIT.displayValue</name> <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/unit.displayvalue/expression.js</expression> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PRODUCT_ID.displayValue</name> + <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/Offeritem_entity/entityfields/info/valueProcess.js b/entity/Offeritem_entity/entityfields/info/valueProcess.js index 522166c5f78fbd4dc448006857286c7860a55635..199fc1e677e27d82f50e7728d4e6d9b66cb22c69 100644 --- a/entity/Offeritem_entity/entityfields/info/valueProcess.js +++ b/entity/Offeritem_entity/entityfields/info/valueProcess.js @@ -6,7 +6,7 @@ import("Sql_lib"); if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { - // TODO: loading from db until loading from dfo is possible. + // TODO: loading from db until loading from Consumer is possible. var productId = vars.get("$field.PRODUCT_ID"); result.string(db.cell(SqlCondition.begin().andPrepareVars("PRODUCT.PRODUCTID", "$field.PRODUCT_ID").buildSql("select INFO from PRODUCT", "1=2"))); } \ No newline at end of file diff --git a/entity/Offeritem_entity/entityfields/product_id/possibleItemsProcess.js b/entity/Offeritem_entity/entityfields/product_id/possibleItemsProcess.js deleted file mode 100644 index e19938f82d7f21dbf4c8d427e08312291222547b..0000000000000000000000000000000000000000 --- a/entity/Offeritem_entity/entityfields/product_id/possibleItemsProcess.js +++ /dev/null @@ -1,16 +0,0 @@ -import("system.result"); -import("system.db"); -import("Sql_lib"); - -//TODO: change field to lookup field -var sqlUtils = new SqlMaskingUtils(); -var prodsSql = "select PRODUCTID, " + sqlUtils.concat(["PRODUCTCODE", "PRODUCTNAME"], "/") - + " from PRODUCT"; - -var prods = db.table(prodsSql); - -var retArray = []; -for(var i = 0; i < prods.length; i++) - retArray.push(prods[i]); - -result.object(retArray); \ No newline at end of file diff --git a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..505fda0b8e840a2c32054647dcc52469f8fc199d --- /dev/null +++ b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); + +// TODO: remove when #title is used as display value for lookups +result.string("(select PRODUCT.PRODUCTNAME from PRODUCT where OFFERITEM.PRODUCT_ID = PRODUCT.PRODUCTID)"); \ No newline at end of file diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod index da0c900b6fbce3e532cffec790482f4c9e257fed..678e3886fa78d3bb92ebad1c307a21831b8ce061 100644 --- a/entity/Product_entity/Product_entity.aod +++ b/entity/Product_entity/Product_entity.aod @@ -146,6 +146,14 @@ <entityProvider> <name>#PROVIDER</name> <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>edd8a3af-d168-4a3b-871d-39db964c700b</name> + <entityName>Offeritem_entity</entityName> + <fieldName>Products</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> </entityProvider> <entityConsumer> <name>ProductLinks</name> diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index 5491aec2874ba100e1e0827a9e2e115abe132f45..af924d86ccf8cdfd6c7dee0dc3f92207b356013a 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -2334,6 +2334,9 @@ <entry> <key>String value</key> </entry> + <entry> + <key>The code number is not a valid number.</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index d3719f8ce7d16f4dfef96e8ca1d1cc0547152679..8eced752d694c90f7f88f1a23dde8c5053173119 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -2687,6 +2687,10 @@ <entry> <key>String value</key> </entry> + <entry> + <key>The code number is not a valid number.</key> + <value>The code number is not a valid number.</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 503b12c83b4add02c4a3ba24503112bba563a24f..fb7789f7c7a2d53df2e9f52fc150030acd9ebbe3 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -2356,6 +2356,9 @@ <entry> <key>String value</key> </entry> + <entry> + <key>The code number is not a valid number.</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language>