From b598af87fba6c0e3e45495a5be3b7884aaae2bf5 Mon Sep 17 00:00:00 2001 From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local> Date: Wed, 13 Feb 2019 10:26:16 +0100 Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1034201][Vertrieb - Angebot - Beleg aus Angebot erstellen] --- .../entityfields/neworder/onActionProcess.js | 7 ++- entity/Order_entity/Order_entity.aod | 11 +++- .../currency/displayValueProcess.js | 11 ++++ .../language/displayValueProcess.js | 15 ++++++ .../language/possibleItemsProcess.js | 0 .../recordcontainers/db/onDBInsert.js | 50 +++++++++++++++++++ .../SalesprojectPreview_view.aod | 5 ++ process/OfferOrder_lib/process.js | 4 +- process/Offer_lib/process.js | 4 +- report/RPTJ_OFFER/reportData.jrxml | 13 +++-- 10 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 entity/Order_entity/entityfields/currency/displayValueProcess.js create mode 100644 entity/Order_entity/entityfields/language/displayValueProcess.js delete mode 100644 entity/Order_entity/entityfields/language/possibleItemsProcess.js create mode 100644 entity/Order_entity/recordcontainers/db/onDBInsert.js diff --git a/entity/Offer_entity/entityfields/neworder/onActionProcess.js b/entity/Offer_entity/entityfields/neworder/onActionProcess.js index da9440a32cf..edcc92a2700 100644 --- a/entity/Offer_entity/entityfields/neworder/onActionProcess.js +++ b/entity/Offer_entity/entityfields/neworder/onActionProcess.js @@ -7,9 +7,8 @@ var params = { "OrderCurrency_param" : vars.getString("$field.CURRENCY"), "OrderLanguage_param" : vars.getString("$field.LANGUAGE"), "OrderHeader_param" : vars.getString("$field.HEADER"), - "OrderAddress_param" : vars.getString("$field.ADDRESS") + "OrderAddress_param" : vars.getString("$field.ADDRESS"), + "OfferId_param" : vars.getString("$field.OFFERID") }; - -neon.openContext("Order_context", null, null, neon.OPERATINGSTATE_NEW, params); - +neon.openContext("Order_context", null, null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index e2e3fa28079..b00d8d4aea2 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -16,6 +16,7 @@ <title>Currency</title> <consumer>KeywordCurrencies</consumer> <valueProcess>%aditoprj%/entity/Order_entity/entityfields/currency/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/currency/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>SALESORDERCODE</name> @@ -159,8 +160,8 @@ <title>Language</title> <consumer>Languages</consumer> <mandatory v="true" /> - <possibleItemsProcess>%aditoprj%/entity/Order_entity/entityfields/language/possibleItemsProcess.js</possibleItemsProcess> <valueProcess>%aditoprj%/entity/Order_entity/entityfields/language/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/language/displayValueProcess.js</displayValueProcess> </entityField> <entityActionField> <name>newOrder</name> @@ -350,6 +351,13 @@ <fieldName>LanguagesISO3Code</fieldName> </dependency> </entityConsumer> + <entityParameter> + <name>OfferId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="false" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> @@ -358,6 +366,7 @@ <maximumDbRows v="0" /> <fromClauseProcess>%aditoprj%/entity/Order_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> <conditionProcess>%aditoprj%/entity/Order_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <onDBInsert>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBInsert.js</onDBInsert> <onDBDelete>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <linkInformation> <linkInformation> diff --git a/entity/Order_entity/entityfields/currency/displayValueProcess.js b/entity/Order_entity/entityfields/currency/displayValueProcess.js new file mode 100644 index 00000000000..6be00b93783 --- /dev/null +++ b/entity/Order_entity/entityfields/currency/displayValueProcess.js @@ -0,0 +1,11 @@ +import("system.db"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Keyword_lib"); + +if (vars.exists("$param.OrderCurrency_param")) +{ + var currency = KeywordUtils.getViewValue($KeywordRegistry.get.Currency, vars.get("$param.OrderCurrency_param")); + result.string(currency); +} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/language/displayValueProcess.js b/entity/Order_entity/entityfields/language/displayValueProcess.js new file mode 100644 index 00000000000..528cfe6e165 --- /dev/null +++ b/entity/Order_entity/entityfields/language/displayValueProcess.js @@ -0,0 +1,15 @@ +import("system.db"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +if (vars.exists("$param.OrderLanguage_param")) +{ + var iso3 = vars.get("$param.OrderLanguage_param"); + var latinName = db.cell(SqlCondition.begin() + .andPrepare("AB_LANGUAGE.ISO3", iso3) + .buildSql("select NAME_LATIN from AB_LANGUAGE", "1=0")); + latinName = translate.text(latinName); + result.string(latinName); +} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/language/possibleItemsProcess.js b/entity/Order_entity/entityfields/language/possibleItemsProcess.js deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/entity/Order_entity/recordcontainers/db/onDBInsert.js b/entity/Order_entity/recordcontainers/db/onDBInsert.js new file mode 100644 index 00000000000..db29c0a1c5b --- /dev/null +++ b/entity/Order_entity/recordcontainers/db/onDBInsert.js @@ -0,0 +1,50 @@ +import("system.util"); +import("system.db"); +import("system.neon"); +import("system.vars"); +import("Sql_lib"); +import("Order_lib"); + +if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.OfferId_param")) +{ + var rowId = vars.getString("$field.SALESORDERID"); + var offerId = vars.getString("$param.OfferId_param"); + + var cols = [ + "UNIT", + "QUANTITY", + "GROUPCODEID", + "ASSIGNEDTO", + "PRICE", + "ITEMSORT", + "PRODUCT_ID", + "VAT", + "ITEMNAME", + "OPTIONAL", + "DISCOUNT", + "ITEMPOSITION", + "INFO" + ]; + var offerItemSql = SqlCondition.begin() + .andPrepare("OFFERITEM.OFFER_ID", offerId) + .buildSql("select " + cols.join(", ") + " from OFFERITEM", "1=0"); + var offerItems = db.table(offerItemSql); + + var table = "SALESORDERITEM"; + cols = cols.concat(["SALESORDER_ID", "SALESORDERITEMID"]); + var types = db.getColumnTypes(table, cols); + + var toInsert = offerItems.map(function (row) + { + return [table, cols, types, row.concat([rowId, util.getNewUUID()])]; + }); + db.inserts(toInsert); + + var oiUtils = new OrderItemUtils(rowId); + + //update order price + cols = ["NET", "VAT"]; + var vals = oiUtils.getNetAndVat(); + + db.updateData("SALESORDER", cols, null, vals, SqlCondition.equals("SALESORDER.SALESORDERID", rowId, "1 = 2")); +} \ No newline at end of file diff --git a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod index 74696f96f86..ab4378e8fd7 100644 --- a/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod +++ b/neonView/SalesprojectPreview_view/SalesprojectPreview_view.aod @@ -71,5 +71,10 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>f3542270-e7bd-4f9f-b7c0-f6c5210bb337</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> </children> </neonView> diff --git a/process/OfferOrder_lib/process.js b/process/OfferOrder_lib/process.js index 4a5b7827856..c7970114ea0 100644 --- a/process/OfferOrder_lib/process.js +++ b/process/OfferOrder_lib/process.js @@ -327,9 +327,7 @@ ItemUtils.prototype.insertPartsList = function(columns, productId, assignedTo, c , P2pObject.quantity , (P2pObject.optional) ? "1" : "0" , pos - , itemsort - , datetime.date() - , vars.get("$sys.user")] + , itemsort] // add aditional details .concat(additionalProductInfo.map(function(item) {return ProductDetails[item[1]]})); diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js index 158084c3fc5..6e29c53f600 100644 --- a/process/Offer_lib/process.js +++ b/process/Offer_lib/process.js @@ -108,7 +108,7 @@ OfferUtils.openOfferReport = function(pOfferID) var offerCondition = SqlCondition.begin().andPrepare("OFFER.OFFERID", pOfferID); var rptdata = db.table(offerCondition.buildSql("select " + fields.join(", ") + offerFromSql, "1 = 0")); - var language = KeywordUtils.get("LANGUAGE", rptdata[0][2])[1]; + var language = "deu" //KeywordUtils.get("LANGUAGE", rptdata[0][2])[1]; var relid = rptdata[0][1]; // TODO: AddrObject implementieren @@ -160,7 +160,7 @@ OfferUtils.openOfferReport = function(pOfferID) rptdata[i][21] = text.formatDouble(rptdata[i][21], translate.text("#,##0"), true); rptdata[i][26] = text.formatDouble(rptdata[i][26], translate.text("#,##0.00"), true); rptdata[i][27] = text.formatDouble(itemSum, translate.text("#,##0.00"), true); //Immer zwei Nachkommastellen und ',' statt '.' - rptdata[i][28] = KeywordUtils.get("UNIT", rptdata[i][19])[1]; + rptdata[i][28] = "dummy2"// KeywordUtils.get($KeywordRegistry.get.QuantityUnit, rptdata[i][19])[1]; } // TODO: get Images implementieren diff --git a/report/RPTJ_OFFER/reportData.jrxml b/report/RPTJ_OFFER/reportData.jrxml index 3ad08a8903c..cfa817363bd 100644 --- a/report/RPTJ_OFFER/reportData.jrxml +++ b/report/RPTJ_OFFER/reportData.jrxml @@ -125,13 +125,12 @@ </textField> </band> <band height="20"> - <textField isStretchWithOverflow="true"> - <reportElement x="20" y="0" width="516" height="20" uuid="c687218f-a277-48b3-b107-89caf7acda9e"/> - <textElement> - <font fontName="Segoe UI" size="8" isBold="false"/> - </textElement> - <textFieldExpression><![CDATA[$F{OFFER_HEADER}]]></textFieldExpression> - </textField> + <componentElement> + <reportElement mode="Transparent" x="20" y="0" width="535" height="20" uuid="bb9d7d02-c2a6-4f60-94e9-f0912135dbeb"/> + <hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="RetainShape" horizontalAlign="Left" verticalAlign="Middle"> + <hc:htmlContentExpression><![CDATA[$F{OFFER_HEADER}]]></hc:htmlContentExpression> + </hc:html> + </componentElement> </band> <band height="42"> <staticText> -- GitLab