From 8a3c30cd7fff81d4f95088324b0ced189c4c63b5 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Fri, 15 Feb 2019 15:57:07 +0100 Subject: [PATCH] refactorings & todo refactorings --- entity/KeywordEntry_entity/onValidation.js | 3 ++- .../recordcontainers/db/onDBUpdate.js | 5 +++-- entity/Offeritem_entity/Offeritem_entity.aod | 16 +++++++++++++++- .../entityfields/info/valueProcess.js | 2 +- .../product_id/possibleItemsProcess.js | 16 ---------------- .../product_id.displayvalue/expression.js | 5 +++++ entity/Product_entity/Product_entity.aod | 8 ++++++++ .../_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod | 3 +++ language/_____LANGUAGE_de/_____LANGUAGE_de.aod | 4 ++++ language/_____LANGUAGE_en/_____LANGUAGE_en.aod | 3 +++ 10 files changed, 44 insertions(+), 21 deletions(-) delete mode 100644 entity/Offeritem_entity/entityfields/product_id/possibleItemsProcess.js create mode 100644 entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js diff --git a/entity/KeywordEntry_entity/onValidation.js b/entity/KeywordEntry_entity/onValidation.js index ae813d0188..f1f568a35c 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 0f9d6cbdbc..d9f8978acd 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 691c6b9950..916eea0cb4 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 522166c5f7..199fc1e677 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 e19938f82d..0000000000 --- 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 0000000000..505fda0b8e --- /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 da0c900b6f..678e3886fa 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 5491aec287..af924d86cc 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 d3719f8ce7..8eced752d6 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 503b12c83b..fb7789f7c7 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> -- GitLab