From 6729af117348d7383fa6f07d57a009a593e021e9 Mon Sep 17 00:00:00 2001 From: "j.goderbauer" <j.goderbauer@adito.de> Date: Thu, 2 May 2019 15:01:42 +0200 Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1036637][Migration lib_addr auf ADITO 2019] placeholder reorganisation --- process/Address_lib/process.js | 100 +++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 36 deletions(-) diff --git a/process/Address_lib/process.js b/process/Address_lib/process.js index 5827d6bbe8..072f226e17 100644 --- a/process/Address_lib/process.js +++ b/process/Address_lib/process.js @@ -383,33 +383,53 @@ function _getCountryName(pCountryCode) */ function _formatAddrData( pAddrData, pFormat, pCountry ) { - var placeholder = [["address_street", 1],["buildingno", 2],["zip", 3],["city", 4],["district", 8],["region", 9],["state", 10],["organisation_name", 15], //0-7 - ["firstname", 16],["middlename", 17],["lastname", 18],["saluation", 19],["title", 20], ["suffix", 21], ["salutation_name", 23],["letter salutation", 24], ["country", 25]]; //8-16 - var as = pAddrData[26]; - if ( pFormat != "" && pFormat != undefined) as = pFormat; - as = _getFormatMapping(as, pAddrData, pCountry); + var placeholerInfo = { + "street": {dataPosition: 1}, + "buildingno": {dataPosition: 2}, + "zip": {dataPosition: 3}, + "city": {dataPosition: 4}, + "district": {dataPosition: 8}, + "region": {dataPosition: 9}, + "state": {dataPosition: 10}, + "firstname": {dataPosition: 16}, + "middlename": {dataPosition: 17}, + "lastname": {dataPosition: 18}, + "saluation": {dataPosition: 19}, + "title": {dataPosition: 20}, + "suffix": {dataPosition: 21}, + "country": {dataPosition: 25}, + "organisation name": {dataPosition: 15}, + "salutation_name": {dataPosition: 23}, + "letter salutation": {dataPosition: 24} + }; + + var format = pFormat || pAddrData[26]; + format = _mapFormatPlaceholderTitles(format, pAddrData, pCountry); - for( var y = 0; y < placeholder.length; y++ ) - { - as = as.replace(new RegExp(placeholder[y][0], "g"), pAddrData[placeholder[y][1]]); - if (pAddrData[placeholder[y][1]] != undefined ) { - as = as.replace(new RegExp(placeholder[y][0].toUpperCase(), "g"), pAddrData[placeholder[y][1]].toUpperCase()); - } + var res = format; + for (var placeholder in placeholerInfo) + { + var currentAddrData = pAddrData[placeholerInfo[placeholder].dataPosition]; + if (currentAddrData != undefined) + { + res = res.replace(new RegExp("{" + placeholder + "}", "g"), currentAddrData); + res = res.replace(new RegExp("{" + placeholder.toUpperCase() + "}", "g"), currentAddrData.toUpperCase()); + } } - - as = as.replace(/^\n/, ""); // CR am Anfang entfernen; - as = as.replace(/ /g, " "); // doppelte leerzeichen entfernen - as = as.replace(/\\n/ig, "\n"); // newline marker ersetzen - as = as.replace(/ *\n */g, "\n");// leerzeichen am ende und Anfang entfernen - as = as.replace(/\s(?=\s)/g, ""); // leerzeilen rauswerfen - return as; + + res = res.replace(/^\n/, ""); // CR am Anfang entfernen; + res = res.replace(/ /g, " "); // doppelte leerzeichen entfernen + res = res.replace(/\\n/ig, "\n"); // newline marker ersetzen + res = res.replace(/ *\n */g, "\n");// leerzeichen am ende und Anfang entfernen + res = res.replace(/\s(?=\s)/g, ""); // leerzeilen rauswerfen + return res; } /* * returns the new format * * @param {String [[]]} pAddrData req Daten -* @param {String} as req the format string +* @param {String} pFormat req the format string * @param {boolean} pCountry if the country should be displayed * * @return {String} new formate @@ -423,23 +443,31 @@ S – Administrative area - state Z – Zip or postal code - zip X – Sorting code - not available */ -function _getFormatMapping(as, pAddrData, pCountry) { - as = as.replace(new RegExp("%N", "g"), "salutation_name"); - as = as.replace(new RegExp("%A", "g"), "address_street buildingno"); - as = as.replace(new RegExp("%C", "g"), "city"); - as = as.replace(new RegExp("%S", "g"), "state"); - as = as.replace(new RegExp("%Z", "g"), "zip"); - as = as.replace(new RegExp("%O", "g"), "organisation_name"); - as = as.replace(new RegExp("%X", "g"), ""); - as = as.replace(new RegExp("%n", "g"), "\n"); - as = as.replace(new RegExp("{fn}", "g"), "firstname"); - as = as.replace(new RegExp("{ln}", "g"), "lastname"); - as = as.replace(new RegExp("{ti}", "g"), "title"); - as = as.replace(new RegExp("{sa}", "g"), "salutation"); +function _mapFormatPlaceholderTitles(pFormat, pAddrData, pCountry) +{ + //gstatic-paceholders + pFormat = pFormat.replace(new RegExp("%N", "g"), "{salutation_name}"); + pFormat = pFormat.replace(new RegExp("%A", "g"), "{address_street buildingno}"); + pFormat = pFormat.replace(new RegExp("%C", "g"), "{city}"); + pFormat = pFormat.replace(new RegExp("%S", "g"), "{state}"); + pFormat = pFormat.replace(new RegExp("%Z", "g"), "{zip}"); + pFormat = pFormat.replace(new RegExp("%O", "g"), "{organisation_name}"); + pFormat = pFormat.replace(new RegExp("%X", "g"), ""); + pFormat = pFormat.replace(new RegExp("%n", "g"), "\n"); + + //shortform adito-placeholders + pFormat = pFormat.replace(new RegExp("{fn}", "g"), "{firstname}"); + pFormat = pFormat.replace(new RegExp("{ln}", "g"), "{lpFormattname}"); + pFormat = pFormat.replace(new RegExp("{ti}", "g"), "{title}"); + pFormat = pFormat.replace(new RegExp("{sa}", "g"), "{salutation}"); + + if (pAddrData[8] == pAddrData[9]) + pFormat = pFormat.replace(new RegExp("%D", "g"), "{district}"); + else + pFormat = pFormat.replace(new RegExp("%D", "g"), "{district} \n {region}"); - if (pAddrData[8] == pAddrData[9]) as = as.replace(new RegExp("%D", "g"), "district"); - else as = as.replace(new RegExp("%D", "g"), "district \n region"); - if(pCountry == undefined || pCountry == null || pCountry == true) as = as + "\n country"; + if(pCountry == undefined || pCountry == null || pCountry == true) + pFormat = pFormat + "\n {country}"; - return as; + return pFormat; } \ No newline at end of file -- GitLab