From 6d4ed163470dda33abae6a6ca235a2b8e1f14ba9 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Tue, 10 Sep 2019 10:28:31 +0200 Subject: [PATCH] Serial letter fixes --- entity/DocumentTemplate_entity/onValidation.js | 3 ++- .../SerialLetterAddRecipients_entity.aod | 1 + .../serialletter_id/displayValueProcess.js | 9 +++++++++ entity/SerialLetter_entity/SerialLetter_entity.aod | 10 ++++++++++ .../documenttemplatetype_param/valueProcess.js | 4 ++++ .../valueProcess.js | 4 ++++ entity/SerialLetter_entity/onValidation.js | 5 +++-- process/DocumentTemplate_lib/process.js | 8 ++++++-- 8 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 entity/SerialLetterAddRecipients_entity/entityfields/serialletter_id/displayValueProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js create mode 100644 entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js diff --git a/entity/DocumentTemplate_entity/onValidation.js b/entity/DocumentTemplate_entity/onValidation.js index e166530199..f850a1f939 100644 --- a/entity/DocumentTemplate_entity/onValidation.js +++ b/entity/DocumentTemplate_entity/onValidation.js @@ -1,3 +1,4 @@ +import("system.neon"); import("system.translate"); import("system.result"); import("system.logging"); @@ -6,7 +7,7 @@ import("Bulkmail_lib"); import("DocumentTemplate_lib"); import("KeywordRegistry_basic"); -if (vars.exists("$context.currentTemplateType")) +if (vars.exists("$context.currentTemplateType") && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) { var kind = vars.get("$field.KIND"); var classification = vars.get("$field.CLASSIFICATION"); diff --git a/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod b/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod index 66768fb7f3..a7667d4668 100644 --- a/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod +++ b/entity/SerialLetterAddRecipients_entity/SerialLetterAddRecipients_entity.aod @@ -12,6 +12,7 @@ <title>Serial letter</title> <consumer>SerialLetters</consumer> <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/SerialLetterAddRecipients_entity/entityfields/serialletter_id/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>UID</name> diff --git a/entity/SerialLetterAddRecipients_entity/entityfields/serialletter_id/displayValueProcess.js b/entity/SerialLetterAddRecipients_entity/entityfields/serialletter_id/displayValueProcess.js new file mode 100644 index 0000000000..5e4cef21d2 --- /dev/null +++ b/entity/SerialLetterAddRecipients_entity/entityfields/serialletter_id/displayValueProcess.js @@ -0,0 +1,9 @@ +import("system.vars"); +import("Sql_lib"); +import("system.db"); +import("system.result"); + +if (vars.get("$this.value")) + result.string(db.cell(SqlCondition.begin().andPrepare("SERIALLETTER.SERIALLETTERID", vars.get("$this.value")).buildSql("select TITLE from SERIALLETTER"))); +else + result.string(""); \ No newline at end of file diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod index bbde4a77c8..5d7d1cba1e 100644 --- a/entity/SerialLetter_entity/SerialLetter_entity.aod +++ b/entity/SerialLetter_entity/SerialLetter_entity.aod @@ -62,6 +62,16 @@ <entityName>DocumentTemplate_entity</entityName> <fieldName>DocumentTemplateProvider</fieldName> </dependency> + <children> + <entityParameter> + <name>DocumentTemplateType_param</name> + <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>DocumentTemplateTypeClassification_param</name> + <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess> + </entityParameter> + </children> </entityConsumer> <entityField> <name>TITLE</name> diff --git a/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js new file mode 100644 index 0000000000..94ae123081 --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("KeywordRegistry_basic"); +import("system.result"); + +result.string($KeywordRegistry.documentTemplateType$letter()); \ No newline at end of file diff --git a/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js b/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js new file mode 100644 index 0000000000..d817901f1b --- /dev/null +++ b/entity/SerialLetter_entity/entityfields/templates/children/documenttemplatetypeclassification_param/valueProcess.js @@ -0,0 +1,4 @@ +import("KeywordRegistry_basic"); +import("system.result"); + +result.string($KeywordRegistry.documentTemplateTypeCategory$serial()); \ No newline at end of file diff --git a/entity/SerialLetter_entity/onValidation.js b/entity/SerialLetter_entity/onValidation.js index cba89e9b13..ffb5740ed0 100644 --- a/entity/SerialLetter_entity/onValidation.js +++ b/entity/SerialLetter_entity/onValidation.js @@ -1,7 +1,8 @@ +import("system.neon"); import("system.result"); import("system.vars"); import("DocumentTemplate_lib"); [content, type] = DocumentTemplateUtils.getTemplateContent(vars.get("$field.DOCUMENTTEMPLATE_ID"), new FileUpload(vars.get("$field.bindata"))); -if (type != DocumentTemplate.types.ODT) - result.string(DocumentTemplate.serialLetterODTOnlyMessage()) \ No newline at end of file +if (type != DocumentTemplate.types.ODT && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) + result.string(DocumentTemplate.serialLetterODTOnlyMessage()); \ No newline at end of file diff --git a/process/DocumentTemplate_lib/process.js b/process/DocumentTemplate_lib/process.js index 13ac7fa681..06cad8e03c 100644 --- a/process/DocumentTemplate_lib/process.js +++ b/process/DocumentTemplate_lib/process.js @@ -308,7 +308,7 @@ DocumentTemplate.prototype.getReplacedContent = function (pReplacements, pEncode return emlContent; } case DocumentTemplate.types.HTML: - // replaces ä, ö, ü, ... with html escape signs + // replaces ä, ö, ü, ... with html escape signs for (let i in pReplacements) pReplacements[i] = text.text2html(pReplacements[i], false); case DocumentTemplate.types.TXT: @@ -397,6 +397,10 @@ DocumentTemplate.prototype.getSerialLetterByContactIds = function (pContactIds, { if (this.type == DocumentTemplate.types.ODT) { + let replacements = TemplateHelper._getReplacementsByContactIds(this, pContactIds); + let replaceArray = []; + for (let i = 0, l = pContactIds.length; i < l; i++) + replaceArray.push(replacements[pContactIds[i]]); return TemplateHelper._getReplacedODT(this, replaceArray, pTableData); } @@ -849,4 +853,4 @@ DocumentTemplateUtils.getContentType = function (pTemplateId, pFileUpload) } return type; -} +} \ No newline at end of file -- GitLab