diff --git a/entity/Offer_entity/entityfields/neworder/onActionProcess.js b/entity/Offer_entity/entityfields/neworder/onActionProcess.js index da9440a32cf339e8ab118ef3f1bb4319d51bd0cc..edcc92a270023a3b6f308ba2fb4d65f43834b0b6 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 e2e3fa28079a38e78900f5e230985b25b426d2bd..b00d8d4aea2035ef4172d51066fa822e146757bb 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 0000000000000000000000000000000000000000..6be00b937833451cf3146a6c30d09c46980cf840 --- /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 0000000000000000000000000000000000000000..528cfe6e1659e4d9d720cd96594f2aa5be7ac58d --- /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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/entity/Order_entity/recordcontainers/db/onDBInsert.js b/entity/Order_entity/recordcontainers/db/onDBInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..db29c0a1c5b19b53099471e2c9a50c54187fefba --- /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 74696f96f86b2cd72ad97bd8a2b47781b436a95d..ab4378e8fd775b2cc954dbfda4d5c7ff38da1df0 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 4a5b78278566b2f97deeb28b4f1e4f9c8fb9633c..c7970114ea08dc90d94b04083bf1e871dc4abd11 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 158084c3fc5dc7242e33fc25ffc05ba2a5039208..6e29c53f60058438770daa74b087e6db3c867f67 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 3ad08a8903cdf7b4de68dd134c81a7ba01e1917d..cfa817363bd7a7f089a2ecadd40fe74323d89fe6 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>