diff --git a/entity/Activity_entity/recordcontainers/db/conditionProcess.js b/entity/Activity_entity/recordcontainers/db/conditionProcess.js index 9c8391b37c47aa5a3d88d8d58f8d5b59760f8470..c772668cbde4f80831fa000cd266d7e6d8cc97af 100644 --- a/entity/Activity_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Activity_entity/recordcontainers/db/conditionProcess.js @@ -6,7 +6,16 @@ import("Sql_lib"); var cond = new SqlCondition(); if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param")) { - var activityLinkCond = SqlCondition.begin().andPrepareVars("ACTIVITYLINK.OBJECT_ROWID", "$param.RowId_param") + var rowId = vars.get("$param.RowId_param"); + var rowIdCond = null; + if (vars.get("$param.ObjectId_param") == "Person") + { + rowId = db.cell(SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", rowId) + .buildSql("select PERSON_ID from CONTACT", "1 = 2")) + rowIdCond = "# in (select CONTACTID from CONTACT where PERSON_ID = ?)"; + } + var activityLinkCond = SqlCondition.begin().andPrepare("ACTIVITYLINK.OBJECT_ROWID", rowId, rowIdCond) .andPrepareVars("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectId_param"); // TODO: more performant way than IN. Maybe a join?? diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 230a5381098c600a857e96d519b31834c67a5536..405955e8bde327f4e88f2e96a187f9ef853827f1 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -194,6 +194,7 @@ </entityProvider> <entityField> <name>FULL_ATTRIBUTE_NAME</name> + <title>Name</title> <state>READONLY</state> <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/full_attribute_name/valueProcess.js</valueProcess> </entityField> diff --git a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js index 524f19c066638642f01e5b0ef2c0516c25e7de03..fc9994c4e51ec83d9ffe238797b472270ea51ca1 100644 --- a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js +++ b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js @@ -3,14 +3,16 @@ import("system.neon"); import("Product_lib"); import("Util_lib"); import("Entity_lib"); +import("Attribute_lib"); var pid = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.PRODUCT_ID")); if(pid != "") { var currency = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : ""; var contactid = vars.exists("$param.ContactId_param") ? vars.get("$param.ContactId_param") : ""; + var pricelist = AttributeRelationUtils.getAttribute("97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec", contactid) || ""; - var PriceListFilter = { currency: currency, quantity: vars.get("$field.QUANTITY"), relationId: contactid }; + var PriceListFilter = { currency: currency, quantity: vars.get("$field.QUANTITY"), relationId: contactid, priceList: pricelist }; //TODO: loading from db until loading from Consumer is possible. var ProductDetails = ProductUtils.getProductDetails(pid, PriceListFilter, ["INFO"]); diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod index d9059a4c13bd3e88450633aea1e2d14a87676958..509d6a1fb68276eed9e4435aec7f6a1e3c2a8cff 100644 --- a/entity/Productprice_entity/Productprice_entity.aod +++ b/entity/Productprice_entity/Productprice_entity.aod @@ -35,6 +35,7 @@ <outputFormat>#,##0.00</outputFormat> <mandatory v="true" /> <state>AUTO</state> + <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/price/valueProcess.js</valueProcess> </entityField> <entityField> <name>PRODUCTPRICEID</name> @@ -79,6 +80,7 @@ <contentType>NUMBER</contentType> <outputFormat>#,##0.00</outputFormat> <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Productprice_entity/entityfields/vat/valueProcess.js</valueProcess> <onValidation>%aditoprj%/entity/Productprice_entity/entityfields/vat/onValidation.js</onValidation> </entityField> <entityField> diff --git a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js index 66e7d5877cff30feb8edc57c25a252f286892c3d..b2204ba4adb39c57f8f5dd011cf2560d92034c07 100644 --- a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js +++ b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js @@ -1,10 +1,8 @@ -//import("system.vars"); -//import("system.result"); -//import("system.neon"); -// -//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") -//{ -// result.string("1"); -//} -//else -// result.string(vars.get("$this.value")); \ No newline at end of file +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") + result.string("1"); +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/price/valueProcess.js b/entity/Productprice_entity/entityfields/price/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..723d0252aa9b87eb839318b7e5e63d7d7dfc567f --- /dev/null +++ b/entity/Productprice_entity/entityfields/price/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") + result.string("0"); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/pricelist/onValidation.js b/entity/Productprice_entity/entityfields/pricelist/onValidation.js index 281a078881481d1014a34b3e1107aa65e1f95e62..4aacd1ac134be1b8fd4f486e3b195092776ee618 100644 --- a/entity/Productprice_entity/entityfields/pricelist/onValidation.js +++ b/entity/Productprice_entity/entityfields/pricelist/onValidation.js @@ -7,6 +7,7 @@ import("Entity_lib"); var priceList = { priceList: ProcessHandlingUtils.getOnValidationValue(vars.get("$field.PRICELIST")) + , priceListId: vars.get("$field.PRODUCTPRICEID") , fromQuantity: vars.get("$field.FROMQUANTITY") , buySell: vars.get("$field.BUYSELL") , currency: vars.get("$field.CURRENCY") diff --git a/entity/Productprice_entity/entityfields/vat/valueProcess.js b/entity/Productprice_entity/entityfields/vat/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..723d0252aa9b87eb839318b7e5e63d7d7dfc567f --- /dev/null +++ b/entity/Productprice_entity/entityfields/vat/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") + result.string("0"); \ No newline at end of file diff --git a/neonView/ActivityDetail_view/ActivityDetail_view.aod b/neonView/ActivityDetail_view/ActivityDetail_view.aod index 365b115a49ca03cd67b586ce3aaac34280241a1b..9e831646efee5a87433240935168d38455cdb3fd 100644 --- a/neonView/ActivityDetail_view/ActivityDetail_view.aod +++ b/neonView/ActivityDetail_view/ActivityDetail_view.aod @@ -12,7 +12,8 @@ <genericViewTemplate> <name>OfferInfo</name> <editMode v="false" /> - <showDrawer v="false" /> + <showDrawer v="true" /> + <drawerCaption>Detail</drawerCaption> <entityField>#ENTITY</entityField> <fields> <entityFieldLink> diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod index 12164cdbc4f23a21a79adbfc21e31b52295fe686..eb9974e40d7cd64f15e8899e7530ffeda07acc89 100644 --- a/neonView/ActivityMain_view/ActivityMain_view.aod +++ b/neonView/ActivityMain_view/ActivityMain_view.aod @@ -14,16 +14,16 @@ <entityField>#ENTITY</entityField> <view>ActivityPreview_view</view> </neonViewReference> - <neonViewReference> - <name>f6c6888a-f3d6-410a-b97b-30c34a9dd6a2</name> - <entityField>ModuleTrees</entityField> - <view>ModuleTree_view</view> - </neonViewReference> <neonViewReference> <name>a3a45cd7-587f-4bc0-9980-e6d1c89a8212</name> <entityField>#ENTITY</entityField> <view>ActivityDetail_view</view> </neonViewReference> + <neonViewReference> + <name>f6c6888a-f3d6-410a-b97b-30c34a9dd6a2</name> + <entityField>ModuleTrees</entityField> + <view>ModuleTree_view</view> + </neonViewReference> <neonViewReference> <name>7bab8dbf-b69e-412d-a604-3a6999658e10</name> <entityField>Documents</entityField> diff --git a/neonView/OrderDetail_view/OrderDetail_view.aod b/neonView/OrderDetail_view/OrderDetail_view.aod index f8b617ff780a19f5f5da0ead5ecbcbd326a92b49..47464d32f38fa46162c2a201c54c8955058c50de 100644 --- a/neonView/OrderDetail_view/OrderDetail_view.aod +++ b/neonView/OrderDetail_view/OrderDetail_view.aod @@ -11,6 +11,8 @@ <children> <genericViewTemplate> <name>OrderDetail_template</name> + <showDrawer v="true" /> + <drawerCaption>Detail</drawerCaption> <entityField>#ENTITY</entityField> <fields> <entityFieldLink> diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod index 9721f1788b3d43f2fe0dae78f469bf91b215e48f..d8231d9831f6e1139fef98f661246d8a3954f612 100644 --- a/neonView/TaskMain_view/TaskMain_view.aod +++ b/neonView/TaskMain_view/TaskMain_view.aod @@ -14,14 +14,10 @@ <entityField>#ENTITY</entityField> <view>TaskMainPreview_view</view> </neonViewReference> - <neonViewReference> - <name>4211b2cf-3a1f-4447-ad1c-f521d2d3f258</name> - <entityField>ModuleTrees</entityField> - <view>ModuleTree_view</view> - </neonViewReference> <genericViewTemplate> <name>details</name> <showDrawer v="true" /> + <drawerCaption>Detail</drawerCaption> <entityField>#ENTITY</entityField> <title>details</title> <fields> @@ -35,6 +31,11 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>4211b2cf-3a1f-4447-ad1c-f521d2d3f258</name> + <entityField>ModuleTrees</entityField> + <view>ModuleTree_view</view> + </neonViewReference> <neonViewReference> <name>6846f680-84ef-46da-a0ea-6797044cf693</name> <entityField>MainDocuments</entityField> diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod index 35430f5089fee2c2b0e5c87d3278c5f9d34a897c..2e627c2e517e6de8e51a348a72ea341be0d36ca5 100644 --- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod +++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod @@ -2,7 +2,7 @@ <preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.1.0"> <name>_____PREFERENCES_PROJECT</name> <majorModelMode>DISTRIBUTED</majorModelMode> - <projectName>xRM-Basic5</projectName> + <projectName>xRM-Basic2019</projectName> <jditoMaxContentSize v="57671680" /> <calendarCategoriesEvent> <entry> diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js index e3f595e558d11a04394bb76beef9e4f094bd2cee..cdf6241f48bf84d619aa2b315956b23a89359769 100644 --- a/process/Product_lib/process.js +++ b/process/Product_lib/process.js @@ -318,12 +318,14 @@ ProductUtils.checkForIndenticalPriceLists = function(pid, priceList) { var PriceLists = this.getProductDetails(pid).PriceLists; for (var pricelist in PriceLists) { + //different pricelist id //equal price list //equal fromquantity //equal currency //equal pp/sp - if (priceList.priceList == PriceLists[pricelist].priceList - && priceList.fromQuantity == PriceLists[pricelist].fromQuantity + if (priceList.priceListId != PriceLists[pricelist].priceListId + && priceList.priceList == PriceLists[pricelist].priceList + && parseFloat(priceList.fromQuantity) == parseFloat(PriceLists[pricelist].fromQuantity) && priceList.buySell == PriceLists[pricelist].buySell && priceList.currency == PriceLists[pricelist].currency) {