diff --git a/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml b/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml index 6fad34e..c612a25 100644 --- a/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml +++ b/collections/IDEM WebServices/Anagrafiche/Strutture Centri.yml @@ -6,6 +6,10 @@ info: http: method: GET url: "{{IdemApiUrl}}/strutt_centri.php" + params: + - name: "" + value: "" + type: query auth: inherit settings: diff --git a/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml b/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml index eae270c..cb1e7f3 100644 --- a/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml +++ b/collections/IDEM WebServices/Anagrafiche/Strutture apicali.yml @@ -6,6 +6,10 @@ info: http: method: GET url: "{{IdemApiUrl}}/strutt_apicali.php" + params: + - name: "" + value: "" + type: query auth: inherit settings: diff --git a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts with two or more participants (scripted).yml b/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts with two or more participants (scripted).yml index 27756be..36d48ec 100644 --- a/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts with two or more participants (scripted).yml +++ b/collections/IRIS GW (Gateway) REST API (v1)/Contracts/Get Contracts with two or more participants (scripted).yml @@ -53,427 +53,218 @@ http: runtime: scripts: - type: after-response - code: "// Aggregates contracts with 2+ contributors across all pages and reports summary.\r - - // // Fixes TypeError: pm.request.url.query.toObject(...).find is not a function by avoiding Array.prototype.find on toObject() result.\r - - // Adds robust helpers for working with query params across Postman SDK versions and edge cases.\r - - //\r - - // Requirements addressed:\r - - // 1) Read Page-Count header to know total pages\r - - // 2) Iteratively call same endpoint for pages from current+1 to Page-Count, preserving other query params\r - - // 3) Aggregate items where contributorSet exists and has length >= 2\r - - // 4) Build a map pid -> contributorCount across all pages (including initial)\r - - // 5) Print summary in Test Results and set env var `multiContributorContracts` with [{ pid, contributorCount }]\r - - // 6) Robust error handling, rate limiting, early stop on non-2xx; handle JSON array or paginated object response shapes\r - - // 7) Augment aggregation with department (ownerSet[0].organizationUnit.idAb + \" - \" + description). Keep first non-empty.\r - - \r - - (function () {\r - - \ const RATE_LIMIT_DELAY_MS = 200; // small delay between page fetches\r - - \ const TARGET_ENV_VAR = 'multiContributorContracts';\r - - \ const PAGE_PARAM = 'page';\r - - \r - - \ // ---------------- URL and Query helpers (SDK-safe) -----------------\r - - \ // Returns a plain object of query params. Works with:\r - - // // - pm.request.url.query (SDK v8+ as QueryList) using .toObject()\r - - \ // - URL that has no query or is a raw string\r - - \ function getQueryObject(url) {\r - - \ try {\r - - // // pm.request.url can be a Url object or a string. Normalize to raw string.\r - - \ const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || ''));\r - - \ // Try SDK path first if it's a Url object with .query\r - - \ if (url && url.query && typeof url.query.toObject === 'function') {\r - - \ const obj = url.query.toObject();\r - - \ // toObject may return undefined/null on empty query\r - - \ return obj && typeof obj === 'object' ? { ...obj } : {};\r - - \ }\r - - \ // Fallback: parse the raw string\r - - \ if (typeof raw === 'string') {\r - - \ const qIndex = raw.indexOf('?');\r - - \ if (qIndex === -1) return {};\r - - \ const queryStr = raw.substring(qIndex + 1);\r - - \ if (!queryStr) return {};\r - - \ return queryStr.split('&').reduce((acc, pair) => {\r - - \ if (!pair) return acc;\r - - \ const [k, v] = pair.split('=');\r - - \ if (!k) return acc;\r - - \ acc[decodeURIComponent(k)] = v !== undefined ? decodeURIComponent(v) : '';\r - - \ return acc;\r - - \ }, {});\r - - \ }\r - - \ } catch (e) {\r - - \ // fallthrough\r - - \ }\r - - \ return {};\r - - \ }\r - - \r - - \ function setQueryObject(url, updates) {\r - - \ // Returns a new raw URL string with given query params merged\r - - \ const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || ''));\r - - \ const qIndex = raw.indexOf('?');\r - - \ const base = qIndex === -1 ? raw : raw.substring(0, qIndex);\r - - \ const current = getQueryObject(url);\r - - \ const merged = { ...current, ...updates };\r - - \ // Filter out empty/undefined to avoid adding stray keys\r - - \ const parts = Object.keys(merged)\r - - \ .filter(k => merged[k] !== undefined && merged[k] !== null && merged[k] !== '')\r - - \ .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(String(merged[k])));\r - - \ return parts.length ? base + '?' + parts.join('&') : base;\r - - \ }\r - - \r - - \ // ---------------- Response shape helpers -----------------\r - - \ function isObject(x) { return x && typeof x === 'object' && !Array.isArray(x); }\r - - \r - - \ function getItemsFromResponseBody(rb) {\r - - \ // Supports either an array payload or an object with an array at known keys\r - - \ if (Array.isArray(rb)) return rb;\r - - \ if (isObject(rb)) {\r - - \ // Try common keys: 'items', 'data', 'results'\r - - \ if (Array.isArray(rb.items)) return rb.items;\r - - \ if (Array.isArray(rb.data)) return rb.data;\r - - \ if (Array.isArray(rb.results)) return rb.results;\r - - \ }\r - - \ return [];\r - - \ }\r - - \r - - \ function safeJson(body) {\r - - \ try { return JSON.parse(body); } catch (e) { return null; }\r - - \ }\r - - \r - - \ // ---------------- Aggregation store -----------------\r - - \ // Map: pid -> { contributorCount, department }\r - - \ const aggregate = {};\r - - \r - - \ function extractDepartment(item) {\r - - \ try {\r - - \ const owner0 = Array.isArray(item.ownerSet) && item.ownerSet.length > 0 ? item.ownerSet[0] : null;\r - - \ const ou = owner0 && owner0.organizationUnit ? owner0.organizationUnit : null;\r - - \ const idAb = ou && typeof ou.idAb === 'string' ? ou.idAb : null;\r - - \ const desc = ou && typeof ou.description === 'string' ? ou.description : null;\r - - \ if (idAb && desc) return idAb + ' - ' + desc;\r - - \ return '';\r - - \ } catch (e) {\r - - \ return '';\r - - \ }\r - - \ }\r - - \r - - \ function considerItems(items) {\r - - \ items.forEach(it => {\r - - \ const contributors = Array.isArray(it.contributorSet) ? it.contributorSet : [];\r - - \ if (contributors.length >= 2) {\r - - \ const pid = (it.pid != null) ? String(it.pid) : '';\r - - \ if (!pid) return;\r - - \ const contributorCount = contributors.length;\r - - \ const dept = extractDepartment(it);\r - - \ if (!aggregate[pid]) {\r - - \ aggregate[pid] = { contributorCount, department: dept || '' };\r - - \ } else {\r - - \ // keep max contributor count seen (in case of variations) and first non-empty department\r - - \ aggregate[pid].contributorCount = Math.max(aggregate[pid].contributorCount, contributorCount);\r - - \ if (!aggregate[pid].department && dept) {\r - - \ aggregate[pid].department = dept;\r - - \ }\r - - \ }\r - - \ }\r - - \ });\r - - \ }\r - - \r - - \ // ---------------- Paging orchestration -----------------\r - - \ const initialStatus = res.getStatus();\r - - \ const is2xx = initialStatus >= 200 && initialStatus < 300;\r - - \ if (!is2xx) {\r - - \ test('Request failed - not aggregating on non-2xx', function () {\r - - \ expect(is2xx).to.eql(true);\r - - \ });\r - - \ return;\r - - \ }\r - - \r - - \ const rb = safeJson(JSON.stringify(res.getBody()));\r - - \ const initialItems = rb ? getItemsFromResponseBody(rb) : [];\r - - \ considerItems(initialItems);\r - - \r - - \ // Derive total pages from header 'Page-Count' or 'page-count'\r - - \ const pageCountHeader = res.getHeader('Page-Count') || res.getHeader('page-count') || res.getHeader('X-Total-Pages');\r - - \ const totalPages = pageCountHeader ? parseInt(pageCountHeader, 10) : 1;\r - - \r - - \ // Figure out current page from request URL (query param 'page')\r - - \ const currentQuery = getQueryObject(req.getUrl());\r - - \ const currentPage = parseInt(currentQuery[PAGE_PARAM] || '1', 10) || 1;\r - - \r - - \ // Build a function that fetches page N and aggregates\r - - \ function fetchPage(n) {\r - - \ return new Promise((resolve) => {\r - - \ const nextUrl = setQueryObject(req.getUrl(), { [PAGE_PARAM]: String(n) });\r - - \ setTimeout(function () {\r - - \ await bru.sendRequest({ url: nextUrl, method: 'GET' }, async function(err, res) {\r - - \ if (err || !res) {\r - - \ test('Error fetching page ' + n, function () {\r - - \ expect(err).to.eql(null);\r - - \ });\r - - \ return resolve(false);\r - - \ }\r - - \ const ok = res.status >= 200 && res.status < 300;\r - - \ if (!ok) {\r - - \ test('Non-2xx on page ' + n + ' - stop further paging', function () {\r - - \ expect(ok).to.eql(true);\r - - \ });\r - - \ return resolve(false);\r - - \ }\r - - \ const body = res.data;\r - - \ const json = safeJson(body);\r - - \ const items = json ? getItemsFromResponseBody(json) : [];\r - - \ considerItems(items);\r - - \ resolve(true);\r - - \ });\r - - \ }, RATE_LIMIT_DELAY_MS);\r - - \ });\r - - \ }\r - - \r - - \ async function run() {\r - - \ // If there are more pages, iterate\r - - \ for (let p = currentPage + 1; p <= totalPages; p++) {\r - - \ const cont = await fetchPage(p);\r - - \ if (!cont) break;\r - - \ }\r - - \r - - \ // Prepare output array\r - - \ const output = Object.keys(aggregate).map(pid => ({\r - - \ pid,\r - - \ contributorCount: aggregate[pid].contributorCount,\r - - \ department: aggregate[pid].department || ''\r - - \ }));\r - - \r - - \ // Save to environment\r - - \ bru.setEnvVar(TARGET_ENV_VAR, JSON.stringify(output));\r - - \r - - \ // Basic summary tests\r - - \ test('Aggregated items have required properties', function () {\r - - \ output.forEach(item => {\r - - \ expect(item).to.have.property('pid');\r - - \ expect(item.pid).to.be.a('string');\r - - \ expect(item).to.have.property('contributorCount');\r - - \ expect(item.contributorCount).to.be.a('number');\r - - \ expect(item).to.have.property('department');\r - - \ expect(item.department).to.be.a('string');\r - - \ });\r - - \ });\r - - \r - - \ // Optional: Log summary count\r - - \ test('Total multi-contributor contracts aggregated', function () {\r - - \ expect(output.length).to.be.at.least(0);\r - - \ });\r - - \ }\r - - \r - - \ run();\r - - })();" + code: |- + // Aggregates contracts with 2+ contributors across all pages and reports summary. + // // Fixes TypeError: pm.request.url.query.toObject(...).find is not a function by avoiding Array.prototype.find on toObject() result. + // Adds robust helpers for working with query params across Postman SDK versions and edge cases. + // + // Requirements addressed: + // 1) Read Page-Count header to know total pages + // 2) Iteratively call same endpoint for pages from current+1 to Page-Count, preserving other query params + // 3) Aggregate items where contributorSet exists and has length >= 2 + // 4) Build a map pid -> contributorCount across all pages (including initial) + // 5) Print summary in Test Results and set env var `multiContributorContracts` with [{ pid, contributorCount }] + // 6) Robust error handling, rate limiting, early stop on non-2xx; handle JSON array or paginated object response shapes + // 7) Augment aggregation with department (ownerSet[0].organizationUnit.idAb + " - " + description). Keep first non-empty. + + (function () { + const RATE_LIMIT_DELAY_MS = 200; // small delay between page fetches + const TARGET_ENV_VAR = 'multiContributorContracts'; + const PAGE_PARAM = 'page'; + + // ---------------- URL and Query helpers (SDK-safe) ----------------- + // Returns a plain object of query params. Works with: + // // - pm.request.url.query (SDK v8+ as QueryList) using .toObject() + // - URL that has no query or is a raw string + function getQueryObject(url) { + try { + // // pm.request.url can be a Url object or a string. Normalize to raw string. + const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || '')); + // Try SDK path first if it's a Url object with .query + if (url && url.query && typeof url.query.toObject === 'function') { + const obj = url.query.toObject(); + // toObject may return undefined/null on empty query + return obj && typeof obj === 'object' ? { ...obj } : {}; + } + // Fallback: parse the raw string + if (typeof raw === 'string') { + const qIndex = raw.indexOf('?'); + if (qIndex === -1) return {}; + const queryStr = raw.substring(qIndex + 1); + if (!queryStr) return {}; + return queryStr.split('&').reduce((acc, pair) => { + if (!pair) return acc; + const [k, v] = pair.split('='); + if (!k) return acc; + acc[decodeURIComponent(k)] = v !== undefined ? decodeURIComponent(v) : ''; + return acc; + }, {}); + } + } catch (e) { + // fallthrough + } + return {}; + } + + function setQueryObject(url, updates) { + // Returns a new raw URL string with given query params merged + const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || '')); + const qIndex = raw.indexOf('?'); + const base = qIndex === -1 ? raw : raw.substring(0, qIndex); + const current = getQueryObject(url); + const merged = { ...current, ...updates }; + // Filter out empty/undefined to avoid adding stray keys + const parts = Object.keys(merged) + .filter(k => merged[k] !== undefined && merged[k] !== null && merged[k] !== '') + .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(String(merged[k]))); + return parts.length ? base + '?' + parts.join('&') : base; + } + + // ---------------- Response shape helpers ----------------- + function isObject(x) { return x && typeof x === 'object' && !Array.isArray(x); } + + function getItemsFromResponseBody(rb) { + // Supports either an array payload or an object with an array at known keys + if (Array.isArray(rb)) return rb; + if (isObject(rb)) { + // Try common keys: 'items', 'data', 'results' + if (Array.isArray(rb.items)) return rb.items; + if (Array.isArray(rb.data)) return rb.data; + if (Array.isArray(rb.results)) return rb.results; + } + return []; + } + + function safeJson(body) { + try { return JSON.parse(body); } catch (e) { return null; } + } + + // ---------------- Aggregation store ----------------- + // Map: pid -> { contributorCount, department } + const aggregate = {}; + + function extractDepartment(item) { + try { + const owner0 = Array.isArray(item.ownerSet) && item.ownerSet.length > 0 ? item.ownerSet[0] : null; + const ou = owner0 && owner0.organizationUnit ? owner0.organizationUnit : null; + const idAb = ou && typeof ou.idAb === 'string' ? ou.idAb : null; + const desc = ou && typeof ou.description === 'string' ? ou.description : null; + if (idAb && desc) return idAb + ' - ' + desc; + return ''; + } catch (e) { + return ''; + } + } + + function considerItems(items) { + items.forEach(it => { + const contributors = Array.isArray(it.contributorSet) ? it.contributorSet : []; + if (contributors.length >= 2) { + const pid = (it.pid != null) ? String(it.pid) : ''; + if (!pid) return; + const contributorCount = contributors.length; + const dept = extractDepartment(it); + if (!aggregate[pid]) { + aggregate[pid] = { contributorCount, department: dept || '' }; + } else { + // keep max contributor count seen (in case of variations) and first non-empty department + aggregate[pid].contributorCount = Math.max(aggregate[pid].contributorCount, contributorCount); + if (!aggregate[pid].department && dept) { + aggregate[pid].department = dept; + } + } + } + }); + } + + // ---------------- Paging orchestration ----------------- + const initialStatus = res.getStatus(); + const is2xx = initialStatus >= 200 && initialStatus < 300; + if (!is2xx) { + test('Request failed - not aggregating on non-2xx', function () { + expect(is2xx).to.eql(true); + }); + return; + } + + const rb = safeJson(JSON.stringify(res.getBody())); + const initialItems = rb ? getItemsFromResponseBody(rb) : []; + considerItems(initialItems); + + // Derive total pages from header 'Page-Count' or 'page-count' + const pageCountHeader = res.getHeader('Page-Count') || res.getHeader('page-count') || res.getHeader('X-Total-Pages'); + const totalPages = pageCountHeader ? parseInt(pageCountHeader, 10) : 1; + + // Figure out current page from request URL (query param 'page') + const currentQuery = getQueryObject(req.getUrl()); + const currentPage = parseInt(currentQuery[PAGE_PARAM] || '1', 10) || 1; + + // Build a function that fetches page N and aggregates + function fetchPage(n) { + return new Promise((resolve) => { + const nextUrl = setQueryObject(req.getUrl(), { [PAGE_PARAM]: String(n) }); + setTimeout(function () { + await bru.sendRequest({ url: nextUrl, method: 'GET' }, async function(err, res) { + if (err || !res) { + test('Error fetching page ' + n, function () { + expect(err).to.eql(null); + }); + return resolve(false); + } + const ok = res.status >= 200 && res.status < 300; + if (!ok) { + test('Non-2xx on page ' + n + ' - stop further paging', function () { + expect(ok).to.eql(true); + }); + return resolve(false); + } + const body = res.data; + const json = safeJson(body); + const items = json ? getItemsFromResponseBody(json) : []; + considerItems(items); + resolve(true); + }); + }, RATE_LIMIT_DELAY_MS); + }); + } + + async function run() { + // If there are more pages, iterate + for (let p = currentPage + 1; p <= totalPages; p++) { + const cont = await fetchPage(p); + if (!cont) break; + } + + // Prepare output array + const output = Object.keys(aggregate).map(pid => ({ + pid, + contributorCount: aggregate[pid].contributorCount, + department: aggregate[pid].department || '' + })); + + // Save to environment + bru.setEnvVar(TARGET_ENV_VAR, JSON.stringify(output)); + + // Basic summary tests + test('Aggregated items have required properties', function () { + output.forEach(item => { + expect(item).to.have.property('pid'); + expect(item.pid).to.be.a('string'); + expect(item).to.have.property('contributorCount'); + expect(item.contributorCount).to.be.a('number'); + expect(item).to.have.property('department'); + expect(item.department).to.be.a('string'); + }); + }); + + // Optional: Log summary count + test('Total multi-contributor contracts aggregated', function () { + expect(output.length).to.be.at.least(0); + }); + } + + run(); + })(); settings: encodeUrl: true diff --git a/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml b/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml index 5372862..5c31a30 100644 --- a/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml +++ b/collections/IRIS GW (Gateway) REST API (v1)/[Runner] Get All Contracts/[Runner] Get All Contracts.yml @@ -33,81 +33,45 @@ http: runtime: scripts: - type: after-response - code: "test(\"Status code is 200\", function () {\r + code: |- + test("Status code is 200", function () { + expect(res.getStatus()).to.equal(200); - \ expect(res.getStatus()).to.equal(200);\r + // Get pagination headers + var currentPage = parseInt(res.getHeader("Page")); + var totalPages = parseInt(res.getHeader("Page-Count")); - \r + // If first loop, reset results array + if (currentPage == 1) + { + bru.setVar("runnerResultsArray", JSON.stringify([])); + } - \ // Get pagination headers\r + // Update result array + let resultsArray = JSON.parse(bru.getVar("runnerResultsArray")); + var results = res.getBody(); + resultsArray = resultsArray.concat(results); + bru.setVar("runnerResultsArray", JSON.stringify(resultsArray)); + + // Loop decision + if (currentPage == totalPages) + { + // Loop has finished, reset variables and stop + bru.setVar("runnerCurrentPage", 1); + bru.deleteVar("runnerTotalPages"); + // //pm.collectionVariables.unset("runnerResultsArray"); // Do not unset, so you can find results in the env var! + } + else + { + // Still having pages, update pagination values + bru.setVar("runnerCurrentPage", ++currentPage); + bru.setVar("runnerTotalPages", totalPages); - \ var currentPage = parseInt(res.getHeader(\"Page\"));\r - - \ var totalPages = parseInt(res.getHeader(\"Page-Count\"));\r - - \r - - \ // If first loop, reset results array\r - - \ if (currentPage == 1)\r - - \ {\r - - \ bru.setVar(\"runnerResultsArray\", JSON.stringify([]));\r - - \ }\r - - \r - - \ // Update result array\r - - \ let resultsArray = JSON.parse(bru.getVar(\"runnerResultsArray\"));\r - - \ var results = res.getBody();\r - - \ resultsArray = resultsArray.concat(results);\r - - \ bru.setVar(\"runnerResultsArray\", JSON.stringify(resultsArray));\r - - \ \r - - \ // Loop decision\r - - \ if (currentPage == totalPages)\r - - \ {\r - - \ // Loop has finished, reset variables and stop\r - - \ bru.setVar(\"runnerCurrentPage\", 1);\r - - \ bru.deleteVar(\"runnerTotalPages\");\r - - // //pm.collectionVariables.unset(\"runnerResultsArray\"); // Do not unset, so you can find results in the env var!\r - - \ }\r - - \ else\r - - \ {\r - - \ // Still having pages, update pagination values\r - - \ bru.setVar(\"runnerCurrentPage\", ++currentPage);\r - - \ bru.setVar(\"runnerTotalPages\", totalPages);\r - - \r - - \ // Set next request and wait for 1 second before sending the next request. This is to avoid hitting the rate limit.\r - - \ bru.runner.setNextRequest(req.getName());\r - - \ setTimeout(function(){}, [1000]);\r - - \ }\r - - });" + // Set next request and wait for 1 second before sending the next request. This is to avoid hitting the rate limit. + bru.runner.setNextRequest(req.getName()); + setTimeout(function(){}, [1000]); + } + }); settings: encodeUrl: true diff --git a/collections/Power Automate/Get eF request exportTags.yml b/collections/Power Automate/Get eF request exportTags.yml index 4cc0f23..5857134 100644 --- a/collections/Power Automate/Get eF request exportTags.yml +++ b/collections/Power Automate/Get eF request exportTags.yml @@ -22,13 +22,11 @@ http: description: Schema key (auto-generated by Power Automate platform, change this in case of unauthorized) body: type: json - data: "{\r - - \ \"requestId\": 10868,\r - - \ \"exportGroup\": \"API\"\r - - }" + data: |- + { + "requestId": 10868, + "exportGroup": "API" + } auth: inherit settings: diff --git a/collections/Power Automate/Get eF requests.yml b/collections/Power Automate/Get eF requests.yml index faad475..0570543 100644 --- a/collections/Power Automate/Get eF requests.yml +++ b/collections/Power Automate/Get eF requests.yml @@ -21,13 +21,11 @@ http: type: query body: type: json - data: "{\r - - \ \"moduleTag\": \"PROPOSTA_CCT_DOCENTE\",\r - - \ \"step\": \"\"\r - - }" + data: |- + { + "moduleTag": "PROPOSTA_CCT_DOCENTE", + "step": "" + } auth: inherit settings: diff --git a/collections/elixForms API v2/Authorization/Login.yml b/collections/elixForms API v2/Authorization/Login.yml index 60dbc8d..4a52d3c 100644 --- a/collections/elixForms API v2/Authorization/Login.yml +++ b/collections/elixForms API v2/Authorization/Login.yml @@ -11,26 +11,21 @@ http: value: XMLHttpRequest body: type: json - data: "{\r - - \ \"username\": \"{{elixFormsApiUsername}}\",\r - - \ \"password\": \"{{elixFormsApiPassword}}\"\r - - }" + data: |- + { + "username": "{{elixFormsApiUsername}}", + "password": "{{elixFormsApiPassword}}" + } runtime: scripts: - type: after-response - code: "test(\"Status code is 200\", function () {\r - - \ expect(res.getStatus()).to.equal(200);\r - - \ var jsonData = res.getBody();\r - - \ bru.setVar(\"elixFormsApiAuthToken\", jsonData.value.authToken);\r - - });" + code: |- + test("Status code is 200", function () { + expect(res.getStatus()).to.equal(200); + var jsonData = res.getBody(); + bru.setVar("elixFormsApiAuthToken", jsonData.value.authToken); + }); settings: encodeUrl: true diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml index c0a502d..7861531 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Acquisizione istanze elaborate da processo esterno.yml @@ -137,7 +137,6 @@ examples: docs: |- Viene ritornato l'esito dell'operazione di storicizzazione si elixForms©. - La ricezione di "ok" o "ko" provocherà una decisione nel workflow semplice (analogo a quello di elixFlow©) in base a quanto disposto in - elixForms per il modulo. + La ricezione di "ok" o "ko" provocherà una decisione nel workflow semplice (analogo a quello di elixFlow©) in base a quanto disposto in elixForms per il modulo. Esempio="OK","VAL","..." imposta lo stato di workflow semplice corrispondente imposta lo step ad "evasa" notifica email Esempio="KO","KO","..." imposta lo stato di workflow semplice corrispondente non cambia lo stato dello step diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml index 5cda340..725b3d0 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Clone Request.yml @@ -22,31 +22,24 @@ http: type: path body: type: json - data: "{\r - - \ \"clientUsername\": \"MMMPPL74T17E463A\", // string, <(*) username dell'utente che richiede la clonazione>\r - - \ \"cloningReason\": \"Request cloning test\", // string, <(*) motivazione della copia>\r - - \ \"cloningDate\": {{elixRequestCloningDate}}, // dateTime, <(*) data in formato ISO: \"2021-05-18T00:00:00\">\r - - \ \"cloneLogId\": null // number, \r - - }" + data: |- + { + "clientUsername": "MMMPPL74T17E463A", // string, <(*) username dell'utente che richiede la clonazione> + "cloningReason": "Request cloning test", // string, <(*) motivazione della copia> + "cloningDate": {{elixRequestCloningDate}}, // dateTime, <(*) data in formato ISO: "2021-05-18T00:00:00"> + "cloneLogId": null // number, + } auth: inherit runtime: scripts: - type: before-request - code: "var currentDate = new Date().toISOString();\r + code: |- + var currentDate = new Date().toISOString(); - \r + console.log(currentDate); - console.log(currentDate);\r - - \r - - bru.setVar(\"elixRequestCloningDate\", JSON.stringify(currentDate));" + bru.setVar("elixRequestCloningDate", JSON.stringify(currentDate)); settings: encodeUrl: true diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml index 25df07d..d8cacad 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request (OLD).yml @@ -15,39 +15,28 @@ http: type: query body: type: json - data: "{\r - - \ \"requestId\": 5102, // <(*) id della request>\r - - \ \"clientUserId\": 29, // \r - - \ \"reopeningReason\": \"string\", // \r - - \ \"reopeningNotificationDate\": {{elixReopeningNotificationDate}}, // (viene precalcolata dal pre-request script!)\r - - \ \"reopenLogId\": null, // \r - - \ \"reopeningAttachmentFileName\": null, // \r - - \ \"reopeningAttachmentMimeType\": null, // \r - - \ \"reopeningAttachment\": null // \r - - }\r\n" + data: | + { + "requestId": 5102, // <(*) id della request> + "clientUserId": 29, // + "reopeningReason": "string", // + "reopeningNotificationDate": {{elixReopeningNotificationDate}}, // (viene precalcolata dal pre-request script!) + "reopenLogId": null, // + "reopeningAttachmentFileName": null, // + "reopeningAttachmentMimeType": null, // + "reopeningAttachment": null // + } auth: inherit runtime: scripts: - type: before-request - code: "var currentDate = new Date().toISOString();\r + code: |- + var currentDate = new Date().toISOString(); - \r + console.log(currentDate); - console.log(currentDate);\r - - \r - - bru.setVar(\"elixReopeningNotificationDate\", JSON.stringify(currentDate));" + bru.setVar("elixReopeningNotificationDate", JSON.stringify(currentDate)); settings: encodeUrl: true diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml index 9e0ef4f..5144cb7 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Reopen Request.yml @@ -15,39 +15,28 @@ http: type: query body: type: json - data: "{\r - - \ \"requestId\": 5102, // <(*) id della request>\r - - \ \"clientUserId\": 29, // \r - - \ \"reopeningReason\": \"string\", // \r - - \ \"reopeningNotificationDate\": {{elixReopeningNotificationDate}}, // (viene precalcolata dal pre-request script!)\r - - \ \"reopenLogId\": null, // \r - - \ \"reopeningAttachmentFileName\": null, // \r - - \ \"reopeningAttachmentMimeType\": null, // \r - - \ \"reopeningAttachment\": null // \r - - }\r\n" + data: | + { + "requestId": 5102, // <(*) id della request> + "clientUserId": 29, // + "reopeningReason": "string", // + "reopeningNotificationDate": {{elixReopeningNotificationDate}}, // (viene precalcolata dal pre-request script!) + "reopenLogId": null, // + "reopeningAttachmentFileName": null, // + "reopeningAttachmentMimeType": null, // + "reopeningAttachment": null // + } auth: inherit runtime: scripts: - type: before-request - code: "var currentDate = new Date().toISOString();\r + code: |- + var currentDate = new Date().toISOString(); - \r + console.log(currentDate); - console.log(currentDate);\r - - \r - - bru.setVar(\"elixReopeningNotificationDate\", JSON.stringify(currentDate));" + bru.setVar("elixReopeningNotificationDate", JSON.stringify(currentDate)); settings: encodeUrl: true diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml index d44e1d7..f64bfd1 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Set Request Status- Register result (OLD).yml @@ -109,18 +109,14 @@ docs: |- The elixRegisterResultColumns variable must be built like the following: - one index=value couple for every field in the SWF schema that must be updated, where index is the "name" of the schema field (e.g.: COL0003, if the field is found in the SWF schema) and the value is the string content that must be assigned - - each couple must be separated by a semi-period (\`;\` character) - + For example, suppose the request has a SWF schema with ID 356, containing: - State = COL0001 - - Date = COL0002 - - Email = COL0003 - - Message = COL0004 diff --git a/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml b/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml index 5df3665..182c04f 100644 --- a/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml +++ b/collections/elixForms API v2/Cambio stato e-o integrazione/Update Request SWF values.yml @@ -105,20 +105,14 @@ docs: |- The elixRegisterResultColumns variable must be built like the following: - one index=value couple for every field in the SWF schema that must be updated, where index is the "name" of the schema field (e.g.: COL0003, if the field is found in the SWF schema) and the value is the string content that must be assigned - - each couple must be separated by a semi-period (\`;\` character) - For example, suppose the request has a SWF schema with ID 356, containing: - State = COL0001 - - Date = COL0002 - - Email = COL0003 - - Message = COL0004 - If you want to change the CURRENT state's date and message values, you will put into the variable the following value: diff --git a/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml b/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml index 4716d84..4183c72 100644 --- a/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml +++ b/collections/elixForms API v2/Comunicazioni formali/Invio comunicazione formale.yml @@ -17,63 +17,40 @@ http: type: path body: type: json - data: "{\r - - \ \"message\": \"Test message\",\r - - \ \"documentType\": \"Autorizzazione\", // La corrispondente funzionalità in elixForms prevede un elenco preso da una property di piattaforma (globalparam.formalcommunications.available.list , i cui valori, di default possono essere i seguenti: Appuntamento,Autorizzazione,Comunicazione,Esito,Licenza,Permesso,Richiesta di integrazione\r - - \ \"documentNumber\": \"123123_AZ\",\r - - \ \"documentDate\": {{elixFormalCommunicationDate}},\r - - \ \"attachments\": [ // da 0 a 5 max\r - - \ /*\r - - \ {\r - - \ \"attachFile\": \"\", // rappresentato da una stringa in formato Base64, encoding del byte array del file originale in UTF-8\r - - \ \"attachMimeType\": \"application/pdf\", // del documento allegato. Se vuoto viene impostato come application/octet-steam\r - - \ \"attachFileName\": \"test.pdf\", // da assengare al file in upload\r - - \ \"attachSize\": null // dichiarata. Se non specificato, viene calcolato in funzione del file ricevuto\r - - \ },\r - - \ {\r - - \ \"attachFile\": \"\",\r - - \ \"attachMimeType\": \"image/jpeg\",\r - - \ \"attachFileName\": \"test1.jpeg\"\r - - \ }\r - - \ */\r - - \ ],\r - - \ \"senderUsername\": \"MMMPPL74T17E463A\" // di un utente presente sul DB elixforms (isi_users) da indicare come mittente; nel caso non sia specificato, verrà forzato con lo username in header \"x-api-username\" titolare di accesso al servizio, ma anch'esso deve essere presente sul DB elixforms (isi_users).\r - - }" + data: |- + { + "message": "Test message", + "documentType": "Autorizzazione", // La corrispondente funzionalità in elixForms prevede un elenco preso da una property di piattaforma (globalparam.formalcommunications.available.list , i cui valori, di default possono essere i seguenti: Appuntamento,Autorizzazione,Comunicazione,Esito,Licenza,Permesso,Richiesta di integrazione + "documentNumber": "123123_AZ", + "documentDate": {{elixFormalCommunicationDate}}, + "attachments": [ // da 0 a 5 max + /* + { + "attachFile": "", // rappresentato da una stringa in formato Base64, encoding del byte array del file originale in UTF-8 + "attachMimeType": "application/pdf", // del documento allegato. Se vuoto viene impostato come application/octet-steam + "attachFileName": "test.pdf", // da assengare al file in upload + "attachSize": null // dichiarata. Se non specificato, viene calcolato in funzione del file ricevuto + }, + { + "attachFile": "", + "attachMimeType": "image/jpeg", + "attachFileName": "test1.jpeg" + } + */ + ], + "senderUsername": "MMMPPL74T17E463A" // di un utente presente sul DB elixforms (isi_users) da indicare come mittente; nel caso non sia specificato, verrà forzato con lo username in header "x-api-username" titolare di accesso al servizio, ma anch'esso deve essere presente sul DB elixforms (isi_users). + } auth: inherit runtime: scripts: - type: before-request - code: "var currentDate = new Date().toISOString();\r + code: |- + var currentDate = new Date().toISOString(); - \r + console.log(currentDate); - console.log(currentDate);\r - - \r - - bru.setVar(\"elixFormalCommunicationDate\", JSON.stringify(currentDate));" + bru.setVar("elixFormalCommunicationDate", JSON.stringify(currentDate)); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml index 30f5be8..2b1ae65 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi NO EFTL.yml @@ -15,179 +15,95 @@ http: value: "10971" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r - - \ \"tipologiePunto2\": \"SERV_CON\",\r - - \ \"tipologiePunto3\": \"FORM_COM\",\r - - \ \"tipologiePunto4\": \"\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB", + "tipologiePunto2": "SERV_CON", + "tipologiePunto3": "FORM_COM", + "tipologiePunto4": "" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - \ \r - - \r - - \

richiamato integralmente il testo del contratto da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];
  2. \r - - \r - - \
  3. di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verrà erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 1 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 3% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 4% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 1% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != \"\" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - \r - - \
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + + +

richiamato integralmente il testo del contratto da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];

+ +

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;

+ +

determina

+ +
    +
  1. di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];
  2. + +
  3. di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verrà erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 1 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 3% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 4% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 1% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + +
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml index f899f10..9a0be3d 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina contratti conto terzi.yml @@ -15,179 +15,95 @@ http: value: "9717" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r - - \ \"tipologiePunto2\": \"SERV_CON\",\r - - \ \"tipologiePunto3\": \"FORM_COM\",\r - - \ \"tipologiePunto4\": \"\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB", + "tipologiePunto2": "SERV_CON", + "tipologiePunto3": "FORM_COM", + "tipologiePunto4": "" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - \ \r - - \r - - \

richiamato integralmente il testo del contratto da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];
  2. \r - - \r - - \
  3. di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verrà erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN], da assoggettare alle ritenute di cui all'art. 6, comma 1 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 3% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 4% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 1% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != \"\" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - \r - - \
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + + +

richiamato integralmente il testo del contratto da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG], per un corrispettivo pari a euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG];

+ +

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto A;

+ +

determina

+ +
    +
  1. di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG];
  2. + +
  3. di autorizzare l'introito del corrispettivo pari ad euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] che verrà erogato da [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN], da assoggettare alle ritenute di cui all'art. 6, comma 1 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 3% (euro [TAG]SCHEMAID,337,COL0014,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 4% (euro [TAG]SCHEMAID,337,COL0015,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 1% (euro [TAG]SCHEMAID,337,COL0016,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN] e del [TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0063,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + +
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml index de2d550..b94d904 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15 NO EFTL.yml @@ -15,207 +15,109 @@ http: value: "10979" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"\",\r - - \ \"tipologiePunto2\": \"\",\r - - \ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r - - \ \"tipologiePunto4\": \"\",\r - - \ \"tipologiePunto5\": \"MTA;NDA\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "", + "tipologiePunto2": "", + "tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB", + "tipologiePunto4": "", + "tipologiePunto5": "MTA;NDA" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli \"Accordi tra Pubbliche Amministrazioni\";

\r - - \r - - \

richiamato l'art. 7, comma 4 del D. Lgs. 31 marzo 2023, n. 36 \"Codice dei contratti pubblici in attuazione dell'articolo 1 della legge 21 giugno 2022, n. 78, recante delega al Governo in materia di contratti pubblici\";

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - [IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - [/THEN][/IF]\r - - \r - - \

preso atto del rispetto da parte dell'Università degli Studi di Parma del parametro di cui all'art. 7, comma 4, lettera d), del D.Lgs. n. 36/2023, in relazione all'avvenuto accertamento sul bilancio unico di Ateneo delle poste relative;

\r - - \r - - \ \r - - \r - - \

verificata l'applicabilità dell'art. 15 \"Accordi fra Pubbliche Amministrazioni\" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la proprietà condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;

\r - - \r - - \

richiamato integralmente il testo dell'accordo da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula dell'Accordo tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. \r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != \"\" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - [/THEN][/IF]\r - - \r - - \
  5. di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="speseGenerali" type="string"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";

+ +

richiamato l'art. 7, comma 4 del D. Lgs. 31 marzo 2023, n. 36 "Codice dei contratti pubblici in attuazione dell'articolo 1 della legge 21 giugno 2022, n. 78, recante delega al Governo in materia di contratti pubblici";

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + [IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN] +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ [/THEN][/IF] + +

preso atto del rispetto da parte dell'Università degli Studi di Parma del parametro di cui all'art. 7, comma 4, lettera d), del D.Lgs. n. 36/2023, in relazione all'avvenuto accertamento sul bilancio unico di Ateneo delle poste relative;

+ + + +

verificata l'applicabilità dell'art. 15 "Accordi fra Pubbliche Amministrazioni" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la proprietà condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;

+ +

richiamato integralmente il testo dell'accordo da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];

+ +

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;

+ +

determina

+ +
    +
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula dell'Accordo tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. + + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + [/THEN][/IF] + +
  5. di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml index 10d27ec..00bc04c 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina ex art 15.yml @@ -15,207 +15,109 @@ http: value: "9717" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"\",\r - - \ \"tipologiePunto2\": \"\",\r - - \ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r - - \ \"tipologiePunto4\": \"\",\r - - \ \"tipologiePunto5\": \"MTA;NDA\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "", + "tipologiePunto2": "", + "tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB", + "tipologiePunto4": "", + "tipologiePunto5": "MTA;NDA" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli \"Accordi tra Pubbliche Amministrazioni\";

\r - - \r - - \

richiamato l'art. 7, comma 4 del D. Lgs. 31 marzo 2023, n. 36 \"Codice dei contratti pubblici in attuazione dell'articolo 1 della legge 21 giugno 2022, n. 78, recante delega al Governo in materia di contratti pubblici\";

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - [IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - [/THEN][/IF]\r - - \r - - \

preso atto del rispetto da parte dell'Università degli Studi di Parma del parametro di cui all'art. 7, comma 4, lettera d), del D.Lgs. n. 36/2023, in relazione all'avvenuto accertamento sul bilancio unico di Ateneo delle poste relative;

\r - - \r - - \ \r - - \r - - \

verificata l'applicabilità dell'art. 15 \"Accordi fra Pubbliche Amministrazioni\" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la proprietà condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;

\r - - \r - - \

richiamato integralmente il testo dell'accordo da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula dell'Accordo tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. \r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != \"\" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - [/THEN][/IF]\r - - \r - - \
  5. di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="speseGenerali" type="string"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";

+ +

richiamato l'art. 7, comma 4 del D. Lgs. 31 marzo 2023, n. 36 "Codice dei contratti pubblici in attuazione dell'articolo 1 della legge 21 giugno 2022, n. 78, recante delega al Governo in materia di contratti pubblici";

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + [IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN] +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ [/THEN][/IF] + +

preso atto del rispetto da parte dell'Università degli Studi di Parma del parametro di cui all'art. 7, comma 4, lettera d), del D.Lgs. n. 36/2023, in relazione all'avvenuto accertamento sul bilancio unico di Ateneo delle poste relative;

+ + + +

verificata l'applicabilità dell'art. 15 "Accordi fra Pubbliche Amministrazioni" della legge n. 241/1990 sul procedimento amministrativo, sussistendone i presupposti, incluso l'interesse reciproco, il contributo di tutti i soggetti sottoscrittori, la proprietà condivisa dei risultati secondo quanto stabilito dall'Accordo e la compartecipazione alle spese finalizzate al raggiungimento degli obiettivi specificati nel testo della stessa;

+ +

richiamato integralmente il testo dell'accordo da stipularsi tra l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];

+ +

ritenuto, per quanto premesso, di aderire alla richiesta di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula Accordo con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] in premessa, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, punto B;

+ +

determina

+ +
    +
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula dell'Accordo tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con durata di mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. + + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + [/THEN][/IF] + +
  5. di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml index 32f2e0b..1e508ce 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche NO EFTL.yml @@ -15,197 +15,104 @@ http: value: "10979" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r - - \ \"tipologiePunto2\": \"SERV_CON\",\r - - \ \"tipologiePunto3\": \"FORM_COM\",\r - - \ \"tipologiePunto4\": \"\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB", + "tipologiePunto2": "SERV_CON", + "tipologiePunto3": "FORM_COM", + "tipologiePunto4": "" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visto il Decreto Ministeriale 30 novembre 2021 recante \"Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52\";

\r - - \r - - \

visto il Decreto Legislativo 196/2003 e ss.mm.ii. e il Regolamento europeo GDPR 679/2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali;

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - [/THEN][/IF]\r - - \r - - \

preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:

\r - - \r - - \

preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto la conduzione della sperimentazione clinica dal titolo [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con decorrenza dalla data di sottoscrizione e durata fino a mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. \r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto, calcolate sulle sole quote di overheads[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != \"\" %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - [/THEN][/IF]\r - - \r - - \
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="speseGenerali" type="string"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visto il Decreto Ministeriale 30 novembre 2021 recante "Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52";

+ +

visto il Decreto Legislativo 196/2003 e ss.mm.ii. e il Regolamento europeo GDPR 679/2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali;

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ [/THEN][/IF] + +

preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:

+ +

preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;

+ +

ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;

+ +

determina

+ +
    +
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto la conduzione della sperimentazione clinica dal titolo [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con decorrenza dalla data di sottoscrizione e durata fino a mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. + + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto, calcolate sulle sole quote di overheads[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + [/THEN][/IF] + +
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml index 209136a..ff31986 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Proposta CCT determina sperimentazioni cliniche.yml @@ -15,197 +15,104 @@ http: value: "9717" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r - - \ \"tipologiePunto2\": \"SERV_CON\",\r - - \ \"tipologiePunto3\": \"FORM_COM\",\r - - \ \"tipologiePunto4\": \"\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB", + "tipologiePunto2": "SERV_CON", + "tipologiePunto3": "FORM_COM", + "tipologiePunto4": "" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - [EFTL]\r - - [VAR name=\"corrispettivo\" type=\"string\"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r - - [VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]\r - - \r - - \ \r - - \ \r - - \ \r - - \ \r - - \ \r - - \r - - \

IL DIRIGENTE

\r - - \r - - \

visto il Decreto Ministeriale 30 novembre 2021 recante \"Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52\";

\r - - \r - - \

visto il Decreto Legislativo 196/2003 e ss.mm.ii. e il Regolamento europeo GDPR 679/2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali;

\r - - \r - - \

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

\r - - \r - - \

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

\r - - \r - - \

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

\r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

\r - - [/THEN][/IF]\r - - \r - - \

preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:

\r - - \r - - \

preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;

\r - - \r - - \

ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;

\r - - \r - - \

determina

\r - - \r - - \
    \r - - \
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto la conduzione della sperimentazione clinica dal titolo [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con decorrenza dalla data di sottoscrizione e durata fino a mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. \r - - \r - - [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r - - \
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != \"N\" %]--][% mostraRitenute != \"N\" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del \"Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi\" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto, calcolate sulle sole quote di overheads[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != \"\" %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. \r - - [/THEN][/IF]\r - - \r - - \
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.
  6. \r - - \
\r - - \r - - \
\r - - \

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

\r - - \

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

\r - - \

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

\r - - \
\r - - \r - - \ \r - - \ \r - - \r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR] + [VAR name="speseGenerali" type="string"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR] + [VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR] + [VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR] + [VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR] + + + + + + + +

IL DIRIGENTE

+ +

visto il Decreto Ministeriale 30 novembre 2021 recante "Misure volte a facilitare e sostenere la realizzazione degli studi clinici di medicinali senza scopo di lucro e degli studi osservazionali e a disciplinare la cessione di dati e risultati di sperimentazioni senza scopo di lucro a fini registrativi, ai sensi dell'art. 1, comma 1, lettera c), del decreto legislativo 14 maggio 2019, n. 52";

+ +

visto il Decreto Legislativo 196/2003 e ss.mm.ii. e il Regolamento europeo GDPR 679/2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali;

+ +

visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;

+ +

visto il Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi, emanato con Decreto Rettorale n. 2298/2024, prot. n. 264866 del 4 ottobre 2024;

+ +

visto il Regolamento dell'Università degli Studi di Parma in materia di brevetti e tutela dell'invenzione, emanato con Decreto Rettorale n. 1033/2024, prot. n. 113244 del 30 aprile 2024;

+ + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +

visto il Regolamento di Ateneo per l'amministrazione, la finanza e la contabilità, emanato con Decreto Rettorale n. 1674/2024, prot. 198495 del 17 luglio 2024;

+ [/THEN][/IF] + +

preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:

+ +

preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;

+ +

ritenuto, per quanto premesso, di aderire alla richiesta avanzata da [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG] di approvazione della stipula del contratto con [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] per la conduzione della sperimentazione sopra descritta, ai sensi e per gli effetti di quanto previsto dal sopra citato Regolamento sulla disciplina delle attività di ricerca, consulenza, didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi con riferimento all'Art.2, lettera B;

+ +

determina

+ +
    +
  1. richiamate le premesse, parti integranti del presente dispositivo, di approvare la stipula del contratto tra [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] e l'Università degli Studi di Parma, nell'interesse del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG], avente ad oggetto la conduzione della sperimentazione clinica dal titolo [TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG] sotto la responsabilità scientifica di [TAG]SCHEMAID,341,COL0049,IUQOID, , [/TAG], con decorrenza dalla data di sottoscrizione e durata fino a mesi [TAG]SCHEMAID,341,COL0008,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG] == false %]--][% presenzaOneri == false %][/CONDITION][THEN], senza oneri a carico del budget dell'Amministrazione Centrale[/THEN][/IF];
  2. + + [IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN] +
  3. di autorizzare l'introito del contributo di euro [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] da parte di [TAG]SCHEMAID,341,COL0086,IUQOID, , [/TAG] a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG] != "N" %]--][% mostraRitenute != "N" %][/CONDITION][THEN][IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG] > 0 %]--][% speseGenerali > 0 %][/CONDITION][THEN], da assoggettare alle ritenute secondo le modalità previste dall'art. 6, comma 2 del "Regolamento sulla disciplina delle attività di ricerca, consulenza e didattica e alta formazione eseguite dall'Università degli Studi di Parma a fronte di contratti o accordi con soggetti terzi" nella misura del 6% (euro [TAG]SCHEMAID,337,COL0049,IUQOID, , [/TAG]) per l'Amministrazione di Ateneo, del 8% (euro [TAG]SCHEMAID,337,COL0050,IUQOID, , [/TAG]) per il Fondo Comune di Ateneo e del 2% (euro [TAG]SCHEMAID,337,COL0051,IUQOID, , [/TAG]) per l'incremento dei fondi di cui agli artt. 119, comma 2, punto a) e 121, comma 2, punto a) del CCNL di comparto per l'attuazione dell'art. 110, comma 2 del medesimo contratto, calcolate sulle sole quote di overheads[/THEN][/IF][IF][CONDITION][!--[% [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] > 0 && [TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG] != "" %]--][% ulterioreRitenuta2Max > 0 %][/CONDITION][THEN], con una ritenuta ulteriore del [TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG]% (euro [TAG]SCHEMAID,337,COL0068,IUQOID, , [/TAG]) a favore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG][/THEN][/IF][/THEN][/IF];
  4. + [/THEN][/IF] + +
  5. di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.
  6. +
+ +
+

Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]

+

[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]

+

Firmato digitalmente ai sensi del D.Lgs. n. 82/2005

+
+ + + + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml index 62e4014..2b5ae63 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto A regolamento.yml @@ -15,89 +15,50 @@ http: value: "8760" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r - - \ \"tipologiePunto2\": \"SERV_CON\",\r - - \ \"tipologiePunto3\": \"FORM_COM\",\r - - \ \"tipologiePunto4\": \"\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB", + "tipologiePunto2": "SERV_CON", + "tipologiePunto3": "FORM_COM", + "tipologiePunto4": "" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="tipologiaContratto" type="string"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="puntoAregolamento" type="number"][% puntoAregolamento = 0; %][/VAR] - var eftlDocumentToBeProcessed = `\r + [IF] + [CONDITION][CONTAINS varname="tipologiePunto1"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoAregolamento = 1; %][/THEN] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto2"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoAregolamento = 2; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto3"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoAregolamento = 3; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto4"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoAregolamento = 4; %][/THEN] + [/ELSE IF] + [/IF] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"tipologiaContratto\" type=\"string\"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"puntoAregolamento\" type=\"number\"][% puntoAregolamento = 0; %][/VAR]\r - - \r - - [IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto1\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoAregolamento = 1; %][/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto2\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoAregolamento = 2; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto3\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoAregolamento = 3; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto4\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoAregolamento = 4; %][/THEN]\r - - \ [/ELSE IF]\r - - [/IF]\r - - \r - - [%= puntoAregolamento %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= puntoAregolamento %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml index af27650..243aa2d 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Determina da Proposta/Punto B regolamento.yml @@ -15,133 +15,72 @@ http: value: "8760" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"tipologiePunto1\": \"\",\r - - \ \"tipologiePunto2\": \"\",\r - - \ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r - - \ \"tipologiePunto4\": \"\",\r - - \ \"tipologiePunto5\": \"MTA;NDA\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "tipologiePunto1": "", + "tipologiePunto2": "", + "tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB", + "tipologiePunto4": "", + "tipologiePunto5": "MTA;NDA" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [!-- + "tipologiePunto1": "", + "tipologiePunto2": "", + "tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB", + "tipologiePunto4": "", + "tipologiePunto5": "MTA;NDA" + --] - var eftlDocumentToBeProcessed = `\r + [VAR name="tipologiaContratto" type="string"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="puntoBregolamento" type="number"][% puntoBregolamento = 0; %][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [!-- + 3 CCS_IST_RA Convenzioni di collaborazione scientifica istituzionali - ricerca applicata + 3 CCS_IST_RAS Convenzioni di collaborazione scientifica istituzionali - ricerca applicata alla sanità + 3 CCS_IST_RB Convenzioni di collaborazione scientifica istituzionali - ricerca di base + 5 MTA Material Transfer Agreement + 5 NDA Non Disclosure Agreement + ? CONV_QUA Convenzioni quadro + --] - [!--\r + [IF] + [CONDITION][CONTAINS varname="tipologiePunto1"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoBregolamento = 1; %][/THEN] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto2"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoBregolamento = 2; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto3"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoBregolamento = 3; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto4"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoBregolamento = 4; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="tipologiePunto5"][VALUE_OF varname="tipologiaContratto" /][/CONTAINS][/CONDITION] + [THEN][% puntoBregolamento = 5; %][/THEN] + [/ELSE IF] + [/IF] - \ \"tipologiePunto1\": \"\",\r - - \ \"tipologiePunto2\": \"\",\r - - \ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r - - \ \"tipologiePunto4\": \"\",\r - - \ \"tipologiePunto5\": \"MTA;NDA\"\r - - --]\r - - \r - - [VAR name=\"tipologiaContratto\" type=\"string\"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"puntoBregolamento\" type=\"number\"][% puntoBregolamento = 0; %][/VAR]\r - - \r - - [!--\r - - 3 CCS_IST_RA\tConvenzioni di collaborazione scientifica istituzionali - ricerca applicata\r - - 3 CCS_IST_RAS\tConvenzioni di collaborazione scientifica istituzionali - ricerca applicata alla sanità\r - - 3 CCS_IST_RB\tConvenzioni di collaborazione scientifica istituzionali - ricerca di base\r - - 5 MTA\tMaterial Transfer Agreement\r - - 5 NDA\tNon Disclosure Agreement\r - - ? CONV_QUA\tConvenzioni quadro\r - - --]\r - - \r - - [IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto1\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoBregolamento = 1; %][/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto2\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoBregolamento = 2; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto3\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoBregolamento = 3; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto4\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoBregolamento = 4; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"tipologiePunto5\"][VALUE_OF varname=\"tipologiaContratto\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% puntoBregolamento = 5; %][/THEN]\r - - \ [/ELSE IF]\r - - [/IF]\r - - \r - - [FORMAT type=\"number\" pattern=\"#\"][% puntoBregolamento %][/FORMAT]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [FORMAT type="number" pattern="#"][% puntoBregolamento %][/FORMAT] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo importo per singolo partecipante.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo importo per singolo partecipante.yml new file mode 100644 index 0000000..93fb279 --- /dev/null +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo importo per singolo partecipante.yml @@ -0,0 +1,81 @@ +info: + name: Calcolo importo per singolo partecipante + type: http + seq: 16 + +http: + method: POST + url: "{{elixFormsApiUrl}}/eftl/process/v1" + headers: + - name: x-requested-with + value: XMLHttpRequest + - name: x-api-key + value: "{{elixFormsWsAuthenticationToken}}" + - name: x-ef-request-id + value: "22737" + disabled: true + - name: x-ef-request-id + value: "22224" + disabled: true + - name: x-ef-request-id + value: "22744" + disabled: true + - name: x-ef-request-id + value: "23258" + body: + type: json + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n", + "qualificheDocenti": ";Docente;Ricercatore;" + } + } + auth: inherit + +runtime: + scripts: + - type: before-request + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="arrayCFdocenti" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_DOCENTE,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="arrayCFaltro" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_ALTRO,REQUEST,IUQOID[/TAG][/VAR] + + [VAR name="importoDocente" type="number"][% importoDocente = 0; %][/VAR] + [VAR name="importoAltro" type="number"][% importoAltro = 0; %][/VAR] + + [VAR name="lastUpdatedNominativo" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR] + [VAR name="lastUpdatedImporto" type="string"][TAG]GETVALUEBYTAG,IMPORTO_RIPARTIZIONE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR] + + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] + [VAR name="lastUpdatedNominativoIterable" type="iterable"][SPLIT regex=" \(CF: "][VALUE_OF varname="lastUpdatedNominativo" /][/SPLIT][/VAR] + [VAR name="lastUpdatedNominativoRightIterable" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="lastUpdatedNominativoIterable" index="secondItem" /][/SPLIT][/VAR] + [VAR name="lastUpdatedNominativoCF" type="string"][VALUE_OF varname="lastUpdatedNominativoRightIterable" index="firstItem" /][/VAR] + + [IF] + [CONDITION][CONTAINS varname="arrayCFdocenti" value="lastUpdatedNominativoCF" /][/CONDITION] + [THEN][% importoDocente = lastUpdatedImporto; %][/THEN] + [ELSE][% importoAltro = lastUpdatedImporto; %][/ELSE] + [/IF] + + [TAG]GETVALUEBYTAG,IMPORTO_RIPARTIZIONE,REQUEST,IUQOID,,,"#,###.00"[/TAG] + [%= crlf %] + [TAG]SCHEMAID,717,COL0010,IUQOID, , ,,"#,###.00"[/TAG] + [%= crlf %] + [%= importoDocente %] + [%= crlf %] + [%= importoAltro %] + [/EFTL] + `); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ore equivalenti.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ore equivalenti.yml index a93497c..9539018 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ore equivalenti.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ore equivalenti.yml @@ -18,7 +18,7 @@ http: value: "22224" disabled: true - name: x-ef-request-id - value: "23663" + value: "23719" body: type: json data: |- @@ -36,8 +36,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = bru.setVar("elixBase64EftlDocument", btoa(String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR] @@ -62,7 +63,7 @@ runtime: [%= importoRichiedente * fattore %] [/EFTL] - `)); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ripartizione per tipologia persona.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ripartizione per tipologia persona.yml index bdde3c7..7368783 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ripartizione per tipologia persona.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ripartizione per tipologia persona.yml @@ -19,6 +19,9 @@ http: disabled: true - name: x-ef-request-id value: "22744" + disabled: true + - name: x-ef-request-id + value: "23258" body: type: json data: |- @@ -36,8 +39,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="arrayCFdocenti" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_DOCENTE,REQUEST,IUQOID[/TAG][/VAR] [VAR name="arrayCFaltro" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_ALTRO,REQUEST,IUQOID[/TAG][/VAR] @@ -58,7 +62,7 @@ runtime: [DO] [VAR name="personaImporto" type="number"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR] [VAR name="personaNominativoIterable" type="iterable"][SPLIT regex=" \(CF: "][VALUE_OF varname="ripartizioniNominativiIterable" index="ripartizioneIdx" /][/SPLIT][/VAR] - [VAR name="personaNominativoRightIterable" type="iterable"][SPLIT regex="\)"][VALUE_OF varname="personaNominativoIterable" index="secondItem" /][/SPLIT][/VAR] + [VAR name="personaNominativoRightIterable" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="personaNominativoIterable" index="secondItem" /][/SPLIT][/VAR] [VAR name="personaCF" type="string"][VALUE_OF varname="personaNominativoRightIterable" index="firstItem" /][/VAR] [IF] [CONDITION][CONTAINS varname="arrayCFdocenti" value="personaCF" /][/CONDITION] @@ -71,14 +75,25 @@ runtime: [/WHILE] [/THEN][/IF] - [%= totalePersonaleDocente %] - [%= totalePersonaleAltro %] + [!-- + NOM: [VALUE_OF varname="ripartizioniNominativiIterable" /] + [%= crlf %] + IMP: [VALUE_OF varname="ripartizioniImportiIterable" /] + [%= crlf %] + --] + DOC: [FORMAT type="number" pattern="0.00"][% totalePersonaleDocente %][/FORMAT] + [%= crlf %] + PTA: [FORMAT type="number" pattern="0.00"][% totalePersonaleAltro %][/FORMAT] + + [!-- + PART_CONCAT: [TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,CONCAT,#[/TAG] + IMPR_CONCAT: [TAG]GETVALUEBYTAG,IMPORTO_RIPARTIZIONE,REQUEST,IUQOID,CONCAT,#[/TAG] + + [%= crlf %] + [TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG]: [TAG]GETVALUEBYTAG,IMPORTO_RIPARTIZIONE,REQUEST,IUQOID,UPDATED_LAST[/TAG] + --] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti by CodFis.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti by CodFis.yml index 220238b..53eb490 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti by CodFis.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti by CodFis.yml @@ -15,111 +15,61 @@ http: value: "21306" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\",\r - - \ \"codiciFiscaliAmmessi\": \";XMMPPL74T17E463A;;\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n", + "codiciFiscaliAmmessi": ";XMMPPL74T17E463A;;" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="checkUtentePartecipante" type="string"][% utentePartecipante = "Utente non ammesso alla compilazione perché non partecipante al contratto!"; %][/VAR] + [VAR name="richiedenteCF" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r + [VAR name="rsProponenteCF" type="string"][TAG]GETVALUEBYTAG,RSP_CODFIS,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="responsabili" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="partecipanti" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - [VAR name=\"checkUtentePartecipante\" type=\"string\"][% utentePartecipante = \"Utente non ammesso alla compilazione perché non partecipante al contratto!\"; %][/VAR]\r + [!-- Hack for the CONTAIN below... --] + [VAR name="richiedenteCFcontain" type="string"][% richiedenteCFcontain = ", CF: " + richiedenteCF + ", Qualifica: "; %][/VAR] - [VAR name=\"richiedenteCF\" type=\"string\"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]\r + [!-- Il richiedente non deve essere il RS proponente --] + [!-- Il richiedente deve comparire fra i responsabili --] + [!-- Il richiedente deve comparire fra i partecipanti --] + [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --] - \r + [IF] + [CONDITION][% richiedenteCF == rsProponenteCF %][/CONDITION] + [THEN][% checkUtentePartecipante = "Il Responsabile Scientifico proponente non deve compilare la DSAN"; %][/THEN] + [ELSE IF] + [CONDITION][CONTAINS varname="responsabili"][VALUE_OF varname="richiedenteCFcontain" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = "1"; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="partecipanti"][VALUE_OF varname="richiedenteCFcontain" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = "2"; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="codiciFiscaliAmmessi"][VALUE_OF varname="richiedenteCF" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [/IF] - [VAR name=\"rsProponenteCF\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_CODFIS,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"responsabili\" type=\"string\"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"partecipanti\" type=\"string\"][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/VAR]\r - - \r - - \r - - [!-- Hack for the CONTAIN below... --]\r - - [VAR name=\"richiedenteCFcontain\" type=\"string\"][% richiedenteCFcontain = \", CF: \" + richiedenteCF + \", Qualifica: \"; %][/VAR]\r - - \r - - [!-- Il richiedente non deve essere il RS proponente --]\r - - [!-- Il richiedente deve comparire fra i responsabili --]\r - - [!-- Il richiedente deve comparire fra i partecipanti --]\r - - [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --]\r - - \r - - [IF]\r - - \ [CONDITION][% richiedenteCF == rsProponenteCF %][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"Il Responsabile Scientifico proponente non deve compilare la DSAN\"; %][/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"responsabili\"][VALUE_OF varname=\"richiedenteCFcontain\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"1\"; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"partecipanti\"][VALUE_OF varname=\"richiedenteCFcontain\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"2\"; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"codiciFiscaliAmmessi\"][VALUE_OF varname=\"richiedenteCF\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - [/IF]\r - - \r - - [%= checkUtentePartecipante %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= checkUtentePartecipante %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti.yml index 715bb90..a2801fa 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Check richiedente in partecipanti.yml @@ -15,115 +15,63 @@ http: value: "21223" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\",\r - - \ \"nominativiAmmessi\": \";MAMMI Pier Paolo;;\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n", + "nominativiAmmessi": ";MAMMI Pier Paolo;;" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="checkUtentePartecipante" type="string"][% utentePartecipante = "Utente non ammesso alla compilazione perché non partecipante al contratto!"; %][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r + [VAR name="rsProponenteCognome" type="string"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="rsProponenteNome" type="string"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="responsabili" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="partecipanti" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [!-- [VAR name="nominativoUtentePlain" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_NOMINATIVO,REQUEST,IUQOID[/TAG][/VAR] --] + [VAR name="nominativoUtentePlain" type="string"][% nominativoUtentePlain = "mammi Pier Paolo"; %][/VAR] - [VAR name=\"checkUtentePartecipante\" type=\"string\"][% utentePartecipante = \"Utente non ammesso alla compilazione perché non partecipante al contratto!\"; %][/VAR]\r + [!-- Hack for the CONTAIN below... --] + [VAR name="nominativoUtente" type="string"][% nominativoUtente = " " + nominativoUtentePlain + ", CF: "; %][/VAR] - \r + [!-- Il richiedente non deve essere il RS proponente --] + [!-- Il richiedente deve comparire fra i responsabili --] + [!-- Il richiedente deve comparire fra i partecipanti --] + [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --] - [VAR name=\"rsProponenteCognome\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR]\r + [IF] + [CONDITION][% nominativoUtentePlain == rsProponenteCognome + " " + rsProponenteNome %][/CONDITION] + [THEN][% checkUtentePartecipante = "Il Responsabile Scientifico proponente non deve compilare la DSAN"; %][/THEN] + [ELSE IF] + [CONDITION][CONTAINS varname="responsabili"][VALUE_OF varname="nominativoUtente" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="partecipanti"][VALUE_OF varname="nominativoUtente" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="nominativiAmmessi"][VALUE_OF varname="nominativoUtentePlain" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [/IF] - [VAR name=\"rsProponenteNome\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"responsabili\" type=\"string\"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"partecipanti\" type=\"string\"][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/VAR]\r - - \r - - [!-- [VAR name=\"nominativoUtentePlain\" type=\"string\"][TAG]GETVALUEBYTAG,RICHIEDENTE_NOMINATIVO,REQUEST,IUQOID[/TAG][/VAR] --]\r - - [VAR name=\"nominativoUtentePlain\" type=\"string\"][% nominativoUtentePlain = \"mammi Pier Paolo\"; %][/VAR]\r - - \r - - [!-- Hack for the CONTAIN below... --]\r - - [VAR name=\"nominativoUtente\" type=\"string\"][% nominativoUtente = \" \" + nominativoUtentePlain + \", CF: \"; %][/VAR]\r - - \r - - [!-- Il richiedente non deve essere il RS proponente --]\r - - [!-- Il richiedente deve comparire fra i responsabili --]\r - - [!-- Il richiedente deve comparire fra i partecipanti --]\r - - [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --]\r - - \r - - [IF]\r - - \ [CONDITION][% nominativoUtentePlain == rsProponenteCognome + \" \" + rsProponenteNome %][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"Il Responsabile Scientifico proponente non deve compilare la DSAN\"; %][/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"responsabili\"][VALUE_OF varname=\"nominativoUtente\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"partecipanti\"][VALUE_OF varname=\"nominativoUtente\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"nominativiAmmessi\"][VALUE_OF varname=\"nominativoUtentePlain\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - [/IF]\r - - \r - - [%= checkUtentePartecipante %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= checkUtentePartecipante %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codice fiscale ammesso.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codice fiscale ammesso.yml index 37ab4e2..6f5de71 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codice fiscale ammesso.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codice fiscale ammesso.yml @@ -29,8 +29,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="isRichiedenteInRS" type="string"][% isRichiedenteInRS = "Utente non ammesso alla compilazione perché non RS del contratto!"; %][/VAR] [VAR name="responsabiliScientifici" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR] @@ -51,11 +52,7 @@ runtime: [%= isRichiedenteInRS %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni Simple-minded.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni Simple-minded.yml index 29a5af9..c625cb5 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni Simple-minded.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni Simple-minded.yml @@ -21,95 +21,53 @@ http: value: "21344" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\",\r - - \ \"codiciFiscaliAmmessi\": \";MMMPPL74T17E463A;;\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n", + "codiciFiscaliAmmessi": ";MMMPPL74T17E463A;;" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="checkUtentePartecipante" type="string"][% utentePartecipante = "Il richiedente non è ammesso alla compilazione perché non rientra tra le ripartizioni proposte"; %][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r + [VAR name="ripartizioniDaProposta" type="string"][TAG]GETVALUEBYTAG,RIPARTIZIONI,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="rsProponenteCF" type="string"][TAG]GETVALUEBYTAG,RSP_CODFIS,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="richiedenteCF" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="richiedenteCFregex" type="string"][% richiedenteCFregex = " (CF: " + richiedenteCF + ")"; %][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [!-- Il richiedente non deve essere il RS proponente --] + [!-- Il richiedente deve comparire fra i responsabili --] + [!-- Il richiedente deve comparire fra i partecipanti --] + [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --] - [VAR name=\"checkUtentePartecipante\" type=\"string\"][% utentePartecipante = \"Il richiedente non è ammesso alla compilazione perché non rientra tra le ripartizioni proposte\"; %][/VAR]\r + [IF] + [CONDITION][% richiedenteCF == rsProponenteCF %][/CONDITION] + [THEN][% checkUtentePartecipante = "Il Responsabile Scientifico proponente non deve compilare la DSAN"; %][/THEN] + [ELSE IF] + [CONDITION][CONTAINS varname="ripartizioniDaProposta"][VALUE_OF varname="richiedenteCFregex" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [ELSE IF] + [CONDITION][CONTAINS varname="codiciFiscaliAmmessi"][VALUE_OF varname="richiedenteCF" /][/CONTAINS][/CONDITION] + [THEN][% checkUtentePartecipante = ""; %][/THEN] + [/ELSE IF] + [/IF] - \r - - [VAR name=\"ripartizioniDaProposta\" type=\"string\"][TAG]GETVALUEBYTAG,RIPARTIZIONI,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"rsProponenteCF\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_CODFIS,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"richiedenteCF\" type=\"string\"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"richiedenteCFregex\" type=\"string\"][% richiedenteCFregex = \" (CF: \" + richiedenteCF + \")\"; %][/VAR]\r - - \r - - [!-- Il richiedente non deve essere il RS proponente --]\r - - [!-- Il richiedente deve comparire fra i responsabili --]\r - - [!-- Il richiedente deve comparire fra i partecipanti --]\r - - [!-- Il richiedente deve comparire fra i nominativi ammessi (DEBUG) --]\r - - \r - - [IF]\r - - \ [CONDITION][% richiedenteCF == rsProponenteCF %][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"Il Responsabile Scientifico proponente non deve compilare la DSAN\"; %][/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"ripartizioniDaProposta\"][VALUE_OF varname=\"richiedenteCFregex\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - \ [ELSE IF]\r - - \ [CONDITION][CONTAINS varname=\"codiciFiscaliAmmessi\"][VALUE_OF varname=\"richiedenteCF\" /][/CONTAINS][/CONDITION]\r - - \ [THEN][% checkUtentePartecipante = \"\"; %][/THEN]\r - - \ [/ELSE IF]\r - - [/IF]\r - - \r - - [%= checkUtentePartecipante %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= checkUtentePartecipante %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni.yml index c32cae0..5c133e4 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Codici fiscali ripartizioni.yml @@ -18,115 +18,63 @@ http: value: "21334" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="ripartizioniIterableWithSep" type="iterable"][SPLIT regex="#"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,CONCAT,#[/TAG][/SPLIT][/VAR] + [VAR name="ripartizioniCount" type="string"][SIZE_OF varname="ripartizioniIterableWithSep" /][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r + [VAR name="ripartizioniJoin" type="string"][% ripartizioniJoin = ""; %][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [IF][CONDITION][% ripartizioniCount > 0 %][/CONDITION][THEN] + [VAR name="ripartizioneIdx" type="string"][% ripartizioneIdx = 0; %][/VAR] + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] - [VAR name=\"ripartizioniIterableWithSep\" type=\"iterable\"][SPLIT regex=\"#\"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,CONCAT,#[/TAG][/SPLIT][/VAR]\r + [WHILE threshold="99"] + [CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION] + [DO] + [VAR name="ripartizioneFull" type="string"][VALUE_OF varname="ripartizioniIterableWithSep" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneFullIterable" type="iterable"][SPLIT regex=" \(CF: "][TRIM][VALUE_OF varname="ripartizioneFull" /][/TRIM][/SPLIT][/VAR] + [VAR name="ripartizioneCFIterable" type="iterable"][SPLIT regex="\)"][VALUE_OF varname="ripartizioneFullIterable" index="secondItem" /][/SPLIT][/VAR] + [VAR name="ripartizioneCF" type="string"][VALUE_OF varname="ripartizioneCFIterable" index="firstItem" /][/VAR] + [% ripartizioniJoin = ripartizioniJoin + ripartizioneCF; %] - [VAR name=\"ripartizioniCount\" type=\"string\"][SIZE_OF varname=\"ripartizioniIterableWithSep\" /][/VAR]\r + [% ripartizioneIdx = ripartizioneIdx + 1; %] - \r + [IF][CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION][THEN] + [% ripartizioniJoin = ripartizioniJoin + "#"; %] + [/THEN][/IF] + [/DO] + [/WHILE] + [/THEN][/IF] - [VAR name=\"ripartizioniJoin\" type=\"string\"][% ripartizioniJoin = \"\"; %][/VAR]\r + [!-- + [%= ripartizioniCount %] + [%= crlf %] + [%= ripartizioneIdx %] + [%= crlf %] + [%= "JOIN: " ripartizioniJoin %] + --] - \r - - [IF][CONDITION][% ripartizioniCount > 0 %][/CONDITION][THEN]\r - - \ [VAR name=\"ripartizioneIdx\" type=\"string\"][% ripartizioneIdx = 0; %][/VAR]\r - - \ [VAR name=\"firstItem\" type=\"number\"][% firstItem = 0; %][/VAR]\r - - \ [VAR name=\"secondItem\" type=\"number\"][% secondItem = 1; %][/VAR]\r - - \r - - \ [WHILE threshold=\"99\"]\r - - \ [CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION]\r - - \ [DO]\r - - \ [VAR name=\"ripartizioneFull\" type=\"string\"][VALUE_OF varname=\"ripartizioniIterableWithSep\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneFullIterable\" type=\"iterable\"][SPLIT regex=\" \\(CF: \"][TRIM][VALUE_OF varname=\"ripartizioneFull\" /][/TRIM][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneCFIterable\" type=\"iterable\"][SPLIT regex=\"\\)\"][VALUE_OF varname=\"ripartizioneFullIterable\" index=\"secondItem\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneCF\" type=\"string\"][VALUE_OF varname=\"ripartizioneCFIterable\" index=\"firstItem\" /][/VAR]\r - - \ [% ripartizioniJoin = ripartizioniJoin + ripartizioneCF; %]\r - - \r - - \ [% ripartizioneIdx = ripartizioneIdx + 1; %]\r - - \r - - \ [IF][CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION][THEN]\r - - \ [% ripartizioniJoin = ripartizioniJoin + \"#\"; %]\r - - \ [/THEN][/IF]\r - - \ [/DO]\r - - \ [/WHILE]\r - - [/THEN][/IF]\r - - \r - - [!--\r - - [%= ripartizioniCount %]\r - - [%= crlf %]\r - - [%= ripartizioneIdx %]\r - - [%= crlf %]\r - - [%= \"JOIN: \" ripartizioniJoin %]\r - - --]\r - - \r - - [%= ripartizioniJoin %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= ripartizioniJoin %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco contraenti formattati.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco contraenti formattati.yml index 98d0e55..b079f2b 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco contraenti formattati.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco contraenti formattati.yml @@ -15,221 +15,116 @@ http: value: "8760" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"docs\": [\r - - \ {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ ],\r - - \ \"docsAsEntities\": [\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ }\r - - \ ],\r - - \ \"singleEntity\": {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ \"simpleList\": [\r - - \ \"s1\",\r - - \ \"s2\",\r - - \ \"s3\"\r - - \ ],\r - - \ \"docsSize\": 3\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "docs": [ + { + "name": "doc1", + "quantity": 3, + "price": 123.3 + }, + { + "name": "doc2", + "quantity": 5, + "price": 213.3 + }, + { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + ], + "docsAsEntities": [ + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc2", + "quantity": 5, + "price": 213.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + } + ], + "singleEntity": { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + "simpleList": [ + "s1", + "s2", + "s3" + ], + "docsSize": 3 + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="idxNome" type="number"][% idxNome = 0; %][/VAR] + [VAR name="idxCfPIva" type="number"][% idxCfPIva = 1; %][/VAR] + [VAR name="idxSede" type="number"][% idxSede = 2; %][/VAR] - var eftlDocumentToBeProcessed = `\r + [VAR name="elencoContraentiCompleto" type="string"][% elencoContraentiCompleto = ""; %][/VAR] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [VAR name="contraenti" type="iterable"][SPLIT regex="\n"][TAG]SCHEMAID,341,COL0004,IUQOID, , [/TAG][/SPLIT][/VAR] + [VAR name="countContraenti" type="number"][SIZE_OF varname="contraenti" /][/VAR] + [VAR name="idxContraente" type="number"][% idxContraente = 0; %][/VAR] - [VAR name=\"idxNome\" type=\"number\"][% idxNome = 0; %][/VAR]\r + [!-- Estraggo i dati del primo contraente (ce ne sarà sempre almeno uno) --] + [VAR name="currContraente" type="string"][VALUE_OF varname="contraenti" index="idxContraente" /][/VAR] + [VAR name="currContraenteSplit" type="iterable"][SPLIT regex=", (.*?):"][TRIM][VALUE_OF varname="currContraente" /][/TRIM][/SPLIT][/VAR] + [VAR name="currContraenteNome" type="string"][TRIM][VALUE_OF varname="currContraenteSplit" index="idxNome" /][/TRIM][/VAR] + [VAR name="currContraenteCfPIva" type="string"][TRIM][VALUE_OF varname="currContraenteSplit" index="idxCfPIva" /][/TRIM][/VAR] + [VAR name="currContraenteSede" type="string"][TRIM][VALUE_OF varname="currContraenteSplit" index="idxSede" /][/TRIM][/VAR] + [% elencoContraentiCompleto = currContraenteNome + " (CF/PIVA: " + currContraenteCfPIva + ") con sede legale in " + currContraenteSede; %] - [VAR name=\"idxCfPIva\" type=\"number\"][% idxCfPIva = 1; %][/VAR]\r + [!-- Se c'è più di un contraente, ciclo su tutti i rimanenti (tutto questo per non avere una ", " in fondo alla stringa finale...) --] + [WHILE] + [CONDITION][% idxContraente < countContraenti - 1 %][/CONDITION] + [DO] + [% idxContraente = idxContraente + 1; %] - [VAR name=\"idxSede\" type=\"number\"][% idxSede = 2; %][/VAR]\r + [VAR name="currContraente" type="string"][VALUE_OF varname="contraenti" index="idxContraente" /][/VAR] + [VAR name="currContraenteSplit" type="iterable"][SPLIT regex=", (.*?):"][TRIM][VALUE_OF varname="currContraente" /][/TRIM][/SPLIT][/VAR] + [VAR name="currContraenteNome" type="string"][VALUE_OF varname="currContraenteSplit" index="idxNome" /][/VAR] + [VAR name="currContraenteCfPIva" type="string"][VALUE_OF varname="currContraenteSplit" index="idxCfPIva" /][/VAR] + [VAR name="currContraenteSede" type="string"][VALUE_OF varname="currContraenteSplit" index="idxSede" /][/VAR] + [% elencoContraentiCompleto = elencoContraentiCompleto + ", " + currContraenteNome + " (CF/PIVA: " + currContraenteCfPIva + ") con sede legale in " + currContraenteSede; %] + [/DO] + [/WHILE] - \r - - [VAR name=\"elencoContraentiCompleto\" type=\"string\"][% elencoContraentiCompleto = \"\"; %][/VAR]\r - - \r - - [VAR name=\"contraenti\" type=\"iterable\"][SPLIT regex=\"\\n\"][TAG]SCHEMAID,341,COL0004,IUQOID, , [/TAG][/SPLIT][/VAR]\r - - [VAR name=\"countContraenti\" type=\"number\"][SIZE_OF varname=\"contraenti\" /][/VAR]\r - - [VAR name=\"idxContraente\" type=\"number\"][% idxContraente = 0; %][/VAR]\r - - \r - - [!-- Estraggo i dati del primo contraente (ce ne sarà sempre almeno uno) --]\r - - [VAR name=\"currContraente\" type=\"string\"][VALUE_OF varname=\"contraenti\" index=\"idxContraente\" /][/VAR]\r - - [VAR name=\"currContraenteSplit\" type=\"iterable\"][SPLIT regex=\", (.*?):\"][TRIM][VALUE_OF varname=\"currContraente\" /][/TRIM][/SPLIT][/VAR]\r - - [VAR name=\"currContraenteNome\" type=\"string\"][TRIM][VALUE_OF varname=\"currContraenteSplit\" index=\"idxNome\" /][/TRIM][/VAR]\r - - [VAR name=\"currContraenteCfPIva\" type=\"string\"][TRIM][VALUE_OF varname=\"currContraenteSplit\" index=\"idxCfPIva\" /][/TRIM][/VAR]\r - - [VAR name=\"currContraenteSede\" type=\"string\"][TRIM][VALUE_OF varname=\"currContraenteSplit\" index=\"idxSede\" /][/TRIM][/VAR]\r - - [% elencoContraentiCompleto = currContraenteNome + \" (CF/PIVA: \" + currContraenteCfPIva + \") con sede legale in \" + currContraenteSede; %]\r - - \r - - [!-- Se c'è più di un contraente, ciclo su tutti i rimanenti (tutto questo per non avere una \", \" in fondo alla stringa finale...) --]\r - - [WHILE]\r - - \ [CONDITION][% idxContraente < countContraenti - 1 %][/CONDITION]\r - - \ [DO]\r - - \ [% idxContraente = idxContraente + 1; %]\r - - \r - - \ [VAR name=\"currContraente\" type=\"string\"][VALUE_OF varname=\"contraenti\" index=\"idxContraente\" /][/VAR]\r - - \ [VAR name=\"currContraenteSplit\" type=\"iterable\"][SPLIT regex=\", (.*?):\"][TRIM][VALUE_OF varname=\"currContraente\" /][/TRIM][/SPLIT][/VAR]\r - - \ [VAR name=\"currContraenteNome\" type=\"string\"][VALUE_OF varname=\"currContraenteSplit\" index=\"idxNome\" /][/VAR]\r - - \ [VAR name=\"currContraenteCfPIva\" type=\"string\"][VALUE_OF varname=\"currContraenteSplit\" index=\"idxCfPIva\" /][/VAR]\r - - \ [VAR name=\"currContraenteSede\" type=\"string\"][VALUE_OF varname=\"currContraenteSplit\" index=\"idxSede\" /][/VAR]\r - - \ [% elencoContraentiCompleto = elencoContraentiCompleto + \", \" + currContraenteNome + \" (CF/PIVA: \" + currContraenteCfPIva + \") con sede legale in \" + currContraenteSede; %]\r - - \ [/DO]\r - - [/WHILE]\r - - \r - - [%= elencoContraentiCompleto %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= elencoContraentiCompleto %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per dropdown con chiave.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per dropdown con chiave.yml index eac985e..5223a95 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per dropdown con chiave.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per dropdown con chiave.yml @@ -15,229 +15,120 @@ http: value: "21223" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = String.raw`\r - - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"newLine\" type=\"string\"][VALUE_OF varname=\"crlf\" /][/VAR]\r - - \r - - [VAR name=\"responsabili\" type=\"string\"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/TRIM][/VAR]\r - - [VAR name=\"partecipanti\" type=\"string\"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/TRIM][/VAR]\r - - \r - - [!-- Aggiungi primo elemento \"nullo\" --]\r - - [VAR name=\"ripartizioniElenco\" type=\"string\"][% ripartizioniElenco = \"[0] ---\" + newLine; %][/VAR]\r - - \r - - [VAR name=\"responsabiliIterable\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"responsabili\" /][/SPLIT][/VAR]\r - - [VAR name=\"partecipantiIterable\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"partecipanti\" /][/SPLIT][/VAR]\r - - \r - - [VAR name=\"responsabiliCount\" type=\"number\"][SIZE_OF varname=\"responsabiliIterable\" /][/VAR]\r - - [VAR name=\"partecipantiCount\" type=\"number\"][SIZE_OF varname=\"partecipantiIterable\" /][/VAR]\r - - \r - - [VAR name=\"personaIdx\" type=\"string\"][% personaIdx = 0; %][/VAR]\r - - [VAR name=\"dropdownIdx\" type=\"string\"][% dropdownIdx = 0; %][/VAR]\r - - \r - - [VAR name=\"firstItem\" type=\"number\"][% firstItem = 0; %][/VAR]\r - - [VAR name=\"secondItem\" type=\"number\"][% secondItem = 1; %][/VAR]\r - - \r - - [WHILE threshold=\"99\"]\r - - \ [CONDITION][% personaIdx < responsabiliCount %][/CONDITION]\r - - \ [DO]\r - - \ [VAR name=\"responsabileFull\" type=\"string\"][VALUE_OF varname=\"responsabiliIterable\" index=\"personaIdx\" /][/VAR]\r - - \ [VAR name=\"responsabileIterable\" type=\"iterable\"][SPLIT regex=\", CF: \"][TRIM][VALUE_OF varname=\"responsabileFull\" /][/TRIM][/SPLIT][/VAR]\r - - \r - - \ [!-- Recupera il nominativo --]\r - - \ [VAR name=\"responsabileNominativo\" type=\"string\"][VALUE_OF varname=\"responsabileIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [!-- Recupera il codice fiscale --]\r - - \ [VAR name=\"responsabileResto\" type=\"string\"][VALUE_OF varname=\"responsabileIterable\" index=\"secondItem\" /][/VAR]\r - - \ [VAR name=\"responsabileRestoIterable\" type=\"iterable\"][SPLIT regex=\", Qualifica: \"][VALUE_OF varname=\"responsabileResto\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"responsabileCodiceFiscale\" type=\"string\"][VALUE_OF varname=\"responsabileRestoIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [% personaIdx = personaIdx + 1; %]\r - - \ [% dropdownIdx = dropdownIdx + 1; %]\r - - \r - - \ [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come \"1.0\", etc... --]\r - - \ [VAR name=\"responsabileKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% dropdownIdx + \"\" %][/SPLIT][/VAR]\r - - \ [VAR name=\"responsabileKey\" type=\"string\"][VALUE_OF varname=\"responsabileKeyIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [% ripartizioniElenco = ripartizioniElenco + \"[\" + responsabileKey + \"] \" + responsabileNominativo + \" (CF: \" + responsabileCodiceFiscale + \")\"; %]\r - - \r - - \ [IF]\r - - \ [CONDITION][% personaIdx < responsabiliCount %][/CONDITION]\r - - \ [THEN]\r - - \ [% ripartizioniElenco = ripartizioniElenco + newLine; %]\r - - \ [/THEN]\r - - \ [ELSE IF]\r - - \ [CONDITION][IS_NOT_EMPTY varname=\"partecipanti\" /][/CONDITION]\r - - \ [THEN]\r - - \ [% ripartizioniElenco = ripartizioniElenco + newLine; %]\r - - \ [/THEN]\r - - \ [/ELSE IF]\r - - \ [/IF]\r - - \ [/DO]\r - - [/WHILE]\r - - \r - - [IF][CONDITION][IS_NOT_EMPTY varname=\"partecipanti\" /][/CONDITION][THEN]\r - - \ [% personaIdx = 0; %]\r - - \ [WHILE threshold=\"99\"]\r - - \ [CONDITION][% personaIdx < partecipantiCount %][/CONDITION]\r - - \ [DO]\r - - \ [VAR name=\"partecipanteFull\" type=\"string\"][VALUE_OF varname=\"partecipantiIterable\" index=\"personaIdx\" /][/VAR]\r - - \ [VAR name=\"partecipanteIterable\" type=\"iterable\"][SPLIT regex=\", CF: \"][TRIM][VALUE_OF varname=\"partecipanteFull\" /][/TRIM][/SPLIT][/VAR]\r - - \r - - \ [!-- Recupera il nominativo --]\r - - \ [VAR name=\"partecipanteNominativo\" type=\"string\"][VALUE_OF varname=\"partecipanteIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [!-- Recupera il codice fiscale --]\r - - \ [VAR name=\"partecipanteResto\" type=\"string\"][VALUE_OF varname=\"partecipanteIterable\" index=\"secondItem\" /][/VAR]\r - - \ [VAR name=\"partecipanteRestoIterable\" type=\"iterable\"][SPLIT regex=\", Qualifica: \"][VALUE_OF varname=\"partecipanteResto\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"partecipanteCodiceFiscale\" type=\"string\"][VALUE_OF varname=\"partecipanteRestoIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [% personaIdx = personaIdx + 1; %]\r - - \ [% dropdownIdx = dropdownIdx + 1; %]\r - - \r - - \ [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come \"1.0\", etc... --]\r - - \ [VAR name=\"partecipanteKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% dropdownIdx + \"\" %][/SPLIT][/VAR]\r - - \ [VAR name=\"partecipanteKey\" type=\"string\"][VALUE_OF varname=\"partecipanteKeyIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [% ripartizioniElenco = ripartizioniElenco + \"[\" + partecipanteKey + \"] \" + partecipanteNominativo + \" (CF: \" + partecipanteCodiceFiscale + \")\"; %]\r - - \r - - \ [IF]\r - - \ [CONDITION][% personaIdx < partecipantiCount %][/CONDITION]\r - - \ [THEN]\r - - \ [% ripartizioniElenco = ripartizioniElenco + newLine; %]\r - - \ [/THEN]\r - - \ [/IF]\r - - \ [/DO]\r - - \ [/WHILE]\r - - [/THEN][/IF]\r - - \r - - [%= ripartizioniElenco %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR] + + [VAR name="responsabili" type="string"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/TRIM][/VAR] + [VAR name="partecipanti" type="string"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/TRIM][/VAR] + + [!-- Aggiungi primo elemento "nullo" --] + [VAR name="ripartizioniElenco" type="string"][% ripartizioniElenco = "[0] ---" + newLine; %][/VAR] + + [VAR name="responsabiliIterable" type="iterable"][SPLIT regex="\n"][VALUE_OF varname="responsabili" /][/SPLIT][/VAR] + [VAR name="partecipantiIterable" type="iterable"][SPLIT regex="\n"][VALUE_OF varname="partecipanti" /][/SPLIT][/VAR] + + [VAR name="responsabiliCount" type="number"][SIZE_OF varname="responsabiliIterable" /][/VAR] + [VAR name="partecipantiCount" type="number"][SIZE_OF varname="partecipantiIterable" /][/VAR] + + [VAR name="personaIdx" type="string"][% personaIdx = 0; %][/VAR] + [VAR name="dropdownIdx" type="string"][% dropdownIdx = 0; %][/VAR] + + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] + + [WHILE threshold="99"] + [CONDITION][% personaIdx < responsabiliCount %][/CONDITION] + [DO] + [VAR name="responsabileFull" type="string"][VALUE_OF varname="responsabiliIterable" index="personaIdx" /][/VAR] + [VAR name="responsabileIterable" type="iterable"][SPLIT regex=", CF: "][TRIM][VALUE_OF varname="responsabileFull" /][/TRIM][/SPLIT][/VAR] + + [!-- Recupera il nominativo --] + [VAR name="responsabileNominativo" type="string"][VALUE_OF varname="responsabileIterable" index="firstItem" /][/VAR] + + [!-- Recupera il codice fiscale --] + [VAR name="responsabileResto" type="string"][VALUE_OF varname="responsabileIterable" index="secondItem" /][/VAR] + [VAR name="responsabileRestoIterable" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="responsabileResto" /][/SPLIT][/VAR] + [VAR name="responsabileCodiceFiscale" type="string"][VALUE_OF varname="responsabileRestoIterable" index="firstItem" /][/VAR] + + [% personaIdx = personaIdx + 1; %] + [% dropdownIdx = dropdownIdx + 1; %] + + [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come "1.0", etc... --] + [VAR name="responsabileKeyIterable" type="iterable"][SPLIT regex="\."][% dropdownIdx + "" %][/SPLIT][/VAR] + [VAR name="responsabileKey" type="string"][VALUE_OF varname="responsabileKeyIterable" index="firstItem" /][/VAR] + + [% ripartizioniElenco = ripartizioniElenco + "[" + responsabileKey + "] " + responsabileNominativo + " (CF: " + responsabileCodiceFiscale + ")"; %] + + [IF] + [CONDITION][% personaIdx < responsabiliCount %][/CONDITION] + [THEN] + [% ripartizioniElenco = ripartizioniElenco + newLine; %] + [/THEN] + [ELSE IF] + [CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION] + [THEN] + [% ripartizioniElenco = ripartizioniElenco + newLine; %] + [/THEN] + [/ELSE IF] + [/IF] + [/DO] + [/WHILE] + + [IF][CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION][THEN] + [% personaIdx = 0; %] + [WHILE threshold="99"] + [CONDITION][% personaIdx < partecipantiCount %][/CONDITION] + [DO] + [VAR name="partecipanteFull" type="string"][VALUE_OF varname="partecipantiIterable" index="personaIdx" /][/VAR] + [VAR name="partecipanteIterable" type="iterable"][SPLIT regex=", CF: "][TRIM][VALUE_OF varname="partecipanteFull" /][/TRIM][/SPLIT][/VAR] + + [!-- Recupera il nominativo --] + [VAR name="partecipanteNominativo" type="string"][VALUE_OF varname="partecipanteIterable" index="firstItem" /][/VAR] + + [!-- Recupera il codice fiscale --] + [VAR name="partecipanteResto" type="string"][VALUE_OF varname="partecipanteIterable" index="secondItem" /][/VAR] + [VAR name="partecipanteRestoIterable" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="partecipanteResto" /][/SPLIT][/VAR] + [VAR name="partecipanteCodiceFiscale" type="string"][VALUE_OF varname="partecipanteRestoIterable" index="firstItem" /][/VAR] + + [% personaIdx = personaIdx + 1; %] + [% dropdownIdx = dropdownIdx + 1; %] + + [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come "1.0", etc... --] + [VAR name="partecipanteKeyIterable" type="iterable"][SPLIT regex="\."][% dropdownIdx + "" %][/SPLIT][/VAR] + [VAR name="partecipanteKey" type="string"][VALUE_OF varname="partecipanteKeyIterable" index="firstItem" /][/VAR] + + [% ripartizioniElenco = ripartizioniElenco + "[" + partecipanteKey + "] " + partecipanteNominativo + " (CF: " + partecipanteCodiceFiscale + ")"; %] + + [IF] + [CONDITION][% personaIdx < partecipantiCount %][/CONDITION] + [THEN] + [% ripartizioniElenco = ripartizioniElenco + newLine; %] + [/THEN] + [/IF] + [/DO] + [/WHILE] + [/THEN][/IF] + + [%= ripartizioniElenco %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML Copy.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML Copy.yml index 8196630..b6636bb 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML Copy.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML Copy.yml @@ -15,125 +15,68 @@ http: value: "19758" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR] + [VAR name="ripartizioniNominativiWithSep" type="string"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/VAR] + [VAR name="ripartizioniImportiWithSep" type="string"][TAG]SCHEMAID,538,COL0002,ID_OBJECT,,#[/TAG][/VAR] + + + [IF][CONDITION][IS_NOT_EMPTY varname="ripartizioniNominativiWithSep" /][/CONDITION][THEN] + [VAR name="ripartizioniNominativiIterable" type="iterable"][SPLIT regex="#"][VALUE_OF varname="ripartizioniNominativiWithSep" /][/SPLIT][/VAR] + [VAR name="ripartizioniImportiIterable" type="iterable"][SPLIT regex="#"][VALUE_OF varname="ripartizioniImportiWithSep" /][/SPLIT][/VAR] + [VAR name="ripartizioniCount" type="number"][SIZE_OF varname="ripartizioniNominativiIterable" /][/VAR] + [VAR name="ripartizioneIdx" type="string"][% ripartizioneIdx = 0; %][/VAR] + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r - [EFTL]\r + [FOR varName="ripartizione" iterable="ripartizioniNominativiIterable"] + [VAR name="ripartizioneNominativoFull" type="string"][VALUE_OF varname="ripartizioniNominativiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneImporto" type="string"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneNominativoIterable" type="iterable"][SPLIT regex="] "][TRIM][VALUE_OF varname="ripartizioneNominativoFull" /][/TRIM][/SPLIT][/VAR] + [VAR name="ripartizioneNominativo" type="string"][VALUE_OF varname="ripartizioneNominativoIterable" index="secondItem" /][/VAR] + [% ripartizioneIdx = ripartizioneIdx + 1; %] + [VAR name="ripartizioneKeyIterable" type="iterable"][SPLIT regex="\."][% ripartizioneIdx + "" %][/SPLIT][/VAR] + [VAR name="ripartizioneKey" type="string"][VALUE_OF varname="ripartizioneKeyIterable" index="firstItem" /][/VAR] + + [/FOR] - [VAR name=\"newLine\" type=\"string\"][VALUE_OF varname=\"crlf\" /][/VAR]\r - - [VAR name=\"ripartizioniNominativiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/VAR]\r - - [VAR name=\"ripartizioniImportiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0002,ID_OBJECT,,#[/TAG][/VAR]\r - -
PartecipanteImporto (EUR)
[VALUE_OF varname="ripartizioneNominativo" /][VALUE_OF varname="ripartizioneImporto" /]
\r - - \r - - [IF][CONDITION][IS_NOT_EMPTY varname=\"ripartizioniNominativiWithSep\" /][/CONDITION][THEN]\r - - \ [VAR name=\"ripartizioniNominativiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniNominativiWithSep\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioniImportiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniImportiWithSep\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioniCount\" type=\"number\"][SIZE_OF varname=\"ripartizioniNominativiIterable\" /][/VAR]\r - - \ [VAR name=\"ripartizioneIdx\" type=\"string\"][% ripartizioneIdx = 0; %][/VAR]\r - - \ [VAR name=\"firstItem\" type=\"number\"][% firstItem = 0; %][/VAR]\r - - \ [VAR name=\"secondItem\" type=\"number\"][% secondItem = 1; %][/VAR]\r - - \r - - \r - - \ [FOR varName=\"ripartizione\" iterable=\"ripartizioniNominativiIterable\"]\r - - \ [VAR name=\"ripartizioneNominativoFull\" type=\"string\"][VALUE_OF varname=\"ripartizioniNominativiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneImporto\" type=\"string\"][VALUE_OF varname=\"ripartizioniImportiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneNominativoIterable\" type=\"iterable\"][SPLIT regex=\"] \"][TRIM][VALUE_OF varname=\"ripartizioneNominativoFull\" /][/TRIM][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneNominativo\" type=\"string\"][VALUE_OF varname=\"ripartizioneNominativoIterable\" index=\"secondItem\" /][/VAR]\r - - \ [% ripartizioneIdx = ripartizioneIdx + 1; %]\r - - \ [VAR name=\"ripartizioneKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% ripartizioneIdx + \"\" %][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneKey\" type=\"string\"][VALUE_OF varname=\"ripartizioneKeyIterable\" index=\"firstItem\" /][/VAR]\r - - \ \r - - \ [/FOR]\r - - \r - - \ [!--\r - - \ [WHILE threshold=\"99\"]\r - - \ [CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION]\r - - \ [DO]\r - - \ [VAR name=\"ripartizioneNominativoFull\" type=\"string\"][VALUE_OF varname=\"ripartizioniNominativiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneImporto\" type=\"string\"][VALUE_OF varname=\"ripartizioniImportiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneNominativoIterable\" type=\"iterable\"][SPLIT regex=\"] \"][TRIM][VALUE_OF varname=\"ripartizioneNominativoFull\" /][/TRIM][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneNominativo\" type=\"string\"][VALUE_OF varname=\"ripartizioneNominativoIterable\" index=\"secondItem\" /][/VAR]\r - - \ [% ripartizioneIdx = ripartizioneIdx + 1; %]\r - - \ [VAR name=\"ripartizioneKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% ripartizioneIdx + \"\" %][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneKey\" type=\"string\"][VALUE_OF varname=\"ripartizioneKeyIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [/DO]\r - - \ [/WHILE]\r - - \ --]\r - - [/THEN][/IF]\r - -
PartecipanteImporto (EUR)
[VALUE_OF varname=\"ripartizioneNominativo\" /][VALUE_OF varname=\"ripartizioneImporto\" /]
[VALUE_OF varname=\"ripartizioneNominativo\" /][VALUE_OF varname=\"ripartizioneImporto\" /]
\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [!-- + [WHILE threshold="99"] + [CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION] + [DO] + [VAR name="ripartizioneNominativoFull" type="string"][VALUE_OF varname="ripartizioniNominativiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneImporto" type="string"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneNominativoIterable" type="iterable"][SPLIT regex="] "][TRIM][VALUE_OF varname="ripartizioneNominativoFull" /][/TRIM][/SPLIT][/VAR] + [VAR name="ripartizioneNominativo" type="string"][VALUE_OF varname="ripartizioneNominativoIterable" index="secondItem" /][/VAR] + [% ripartizioneIdx = ripartizioneIdx + 1; %] + [VAR name="ripartizioneKeyIterable" type="iterable"][SPLIT regex="\."][% ripartizioneIdx + "" %][/SPLIT][/VAR] + [VAR name="ripartizioneKey" type="string"][VALUE_OF varname="ripartizioneKeyIterable" index="firstItem" /][/VAR] + [VALUE_OF varname="ripartizioneNominativo" /][VALUE_OF varname="ripartizioneImporto" /] + [/DO] + [/WHILE] + --] + [/THEN][/IF] + + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML.yml index f689bc7..8716223 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tabella HTML.yml @@ -13,115 +13,70 @@ http: value: "{{elixFormsWsAuthenticationToken}}" - name: x-ef-request-id value: "19758" + disabled: true + - name: x-ef-request-id + value: "23629" + disabled: true + - name: x-ef-request-id + value: "23761" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL] + [HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="ripartizioniNominativiWithSep" type="string"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/VAR] + [VAR name="ripartizioniImportiWithSep" type="string"][TAG]SCHEMAID,538,COL0002,ID_OBJECT,,#[/TAG][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r + [%= "" %] - [EFTL]\r + [IF][CONDITION][IS_NOT_EMPTY varname="ripartizioniNominativiWithSep" /][/CONDITION][THEN] + [VAR name="ripartizioniNominativiIterable" type="iterable"][SPLIT regex="#" emptyIfBlank="true"][VALUE_OF varname="ripartizioniNominativiWithSep" /][/SPLIT][/VAR] + [VAR name="ripartizioniImportiIterable" type="iterable" emptyIfBlank="true"][SPLIT regex="#"][VALUE_OF varname="ripartizioniImportiWithSep" /][/SPLIT][/VAR] + [VAR name="ripartizioniCount" type="number"][SIZE_OF varname="ripartizioniNominativiIterable" /][/VAR] + [VAR name="ripartizioneIdx" type="string"][% ripartizioneIdx = 0; %][/VAR] + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] - [HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + [WHILE threshold="99"] + [CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION] + [DO] + [VAR name="ripartizioneNominativoFull" type="string"][VALUE_OF varname="ripartizioniNominativiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneImporto" type="number"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR] + [VAR name="ripartizioneNominativoIterable" type="iterable"][SPLIT regex="] "][TRIM][VALUE_OF varname="ripartizioneNominativoFull" /][/TRIM][/SPLIT][/VAR] - [VAR name=\"ripartizioniNominativiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/VAR]\r + [!-- Recupera il nominativo --] + [VAR name="ripartizioneNominativo" type="string"][VALUE_OF varname="ripartizioneNominativoIterable" index="secondItem" /][/VAR] - [VAR name=\"ripartizioniImportiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0002,ID_OBJECT,,#[/TAG][/VAR]\r + [% ripartizioneIdx = ripartizioneIdx + 1; %] - [VAR name=\"tabellaRipartizioni\" type=\"string\"][% tabellaRipartizioni = \"
PartecipanteImporto (EUR)
\"; %][/VAR]\r + [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come "1.0", etc... --] + [VAR name="ripartizioneKeyIterable" type="iterable"][SPLIT regex="\."][% ripartizioneIdx + "" %][/SPLIT][/VAR] + [VAR name="ripartizioneKey" type="string"][VALUE_OF varname="ripartizioneKeyIterable" index="firstItem" /][/VAR] - \r + [%= "" %] + [/DO] + [/WHILE] + [/THEN][/IF] - [IF][CONDITION][IS_NOT_EMPTY varname=\"ripartizioniNominativiWithSep\" /][/CONDITION][THEN]\r - - \ [VAR name=\"ripartizioniNominativiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniNominativiWithSep\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioniImportiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniImportiWithSep\" /][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioniCount\" type=\"number\"][SIZE_OF varname=\"ripartizioniNominativiIterable\" /][/VAR]\r - - \ [VAR name=\"ripartizioneIdx\" type=\"string\"][% ripartizioneIdx = 0; %][/VAR]\r - - \ [VAR name=\"firstItem\" type=\"number\"][% firstItem = 0; %][/VAR]\r - - \ [VAR name=\"secondItem\" type=\"number\"][% secondItem = 1; %][/VAR]\r - - \r - - \ [WHILE threshold=\"99\"]\r - - \ [CONDITION][% ripartizioneIdx != ripartizioniCount %][/CONDITION]\r - - \ [DO]\r - - \ [VAR name=\"ripartizioneNominativoFull\" type=\"string\"][VALUE_OF varname=\"ripartizioniNominativiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \ [VAR name=\"ripartizioneImporto\" type=\"string\"][VALUE_OF varname=\"ripartizioniImportiIterable\" index=\"ripartizioneIdx\" /][/VAR]\r - - \r - - \ [VAR name=\"ripartizioneNominativoIterable\" type=\"iterable\"][SPLIT regex=\"] \"][TRIM][VALUE_OF varname=\"ripartizioneNominativoFull\" /][/TRIM][/SPLIT][/VAR]\r - - \r - - \ [!-- Recupera il nominativo --]\r - - \ [VAR name=\"ripartizioneNominativo\" type=\"string\"][VALUE_OF varname=\"ripartizioneNominativoIterable\" index=\"secondItem\" /][/VAR]\r - - \r - - \ [% ripartizioneIdx = ripartizioneIdx + 1; %]\r - - \r - - \ [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come \"1.0\", etc... --]\r - - \ [VAR name=\"ripartizioneKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% ripartizioneIdx + \"\" %][/SPLIT][/VAR]\r - - \ [VAR name=\"ripartizioneKey\" type=\"string\"][VALUE_OF varname=\"ripartizioneKeyIterable\" index=\"firstItem\" /][/VAR]\r - - \r - - \ [% tabellaRipartizioni = tabellaRipartizioni + \"\"; %]\r - - \ [/DO]\r - - \ [/WHILE]\r - - [/THEN][/IF]\r - - [% tabellaRipartizioni = tabellaRipartizioni + \"
PartecipanteImporto (EUR)
" + ripartizioneNominativo + "" %][FORMAT type="number" pattern="#,##0.00"][% ripartizioneImporto %][/FORMAT][%= "
\" + ripartizioneNominativo + \"\" + ripartizioneImporto + \"
\"; %]\r - - [%= tabellaRipartizioni %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= "" %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tendina.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tendina.yml index 0d14338..18e390a 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tendina.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Elenco partecipanti per tendina.yml @@ -15,87 +15,49 @@ http: value: "19375" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = String.raw`\r - - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"elencoPartecipantiDebug\" type=\"string\"][% elencoPartecipantiDebug = \"\"; %][/VAR]\r - - [VAR name=\"elencoPartecipantiCompleto\" type=\"string\"][% elencoContraentiCompleto = \"\"; %][/VAR]\r - - [VAR name=\"partecipanti\" type=\"string\"][TRIM][TAG]SCHEMAID,542,COL0018,IUQOID, , [/TAG][/TRIM][/VAR]\r - - [%= \"\" %]\r - - [IF][CONDITION][IS_NOT_EMPTY varname=\"partecipanti\" /][/CONDITION][THEN]\r - - [VAR name=\"partecipantiSplit\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"partecipanti\" /][/SPLIT][/VAR]\r - - [VAR name=\"partecipantiCount\" type=\"number\"][SIZE_OF varname=\"partecipantiSplit\" /][/VAR]\r - - [VAR name=\"partecipanteIdx\" type=\"number\"][% partecipanteIdx = 0; %][/VAR]\r - - [VAR name=\"partecipanteNominativoIdx\" type=\"number\"][% partecipanteNominativoIdx = 0; %][/VAR]\r - - [VAR name=\"partecipanteRestoIdx\" type=\"number\"][% partecipanteRestoIdx = 1; %][/VAR]\r - - [WHILE threshold=\"99\"][CONDITION][% partecipanteIdx < partecipantiCount %][/CONDITION][DO]\r - - [VAR name=\"partecipanteFull\" type=\"string\"][VALUE_OF varname=\"partecipantiSplit\" index=\"partecipanteIdx\" /][/VAR]\r - - [VAR name=\"partecipanteSplit\" type=\"iterable\"][SPLIT regex=\", CF: \"][TRIM][VALUE_OF varname=\"partecipanteFull\" /][/TRIM][/SPLIT][/VAR]\r - - [!-- Recupera il nominativo --]\r - - [VAR name=\"partecipanteNominativo\" type=\"string\"][VALUE_OF varname=\"partecipanteSplit\" index=\"partecipanteNominativoIdx\" /][/VAR]\r - - [!-- Recupera il codice fiscale --]\r - - [VAR name=\"partecipanteResto\" type=\"string\"][VALUE_OF varname=\"partecipanteSplit\" index=\"partecipanteRestoIdx\" /][/VAR]\r - - [VAR name=\"partecipanteRestoSplit\" type=\"iterable\"][SPLIT regex=\", Qualifica: \"][VALUE_OF varname=\"partecipanteResto\" /][/SPLIT][/VAR]\r - - [VAR name=\"partecipanteCodiceFiscale\" type=\"string\"][VALUE_OF varname=\"partecipanteRestoSplit\" index=\"partecipanteNominativoIdx\" /][/VAR]\r - - [%= \"[\" %][FORMAT type=\"number\" pattern=\"integer\"][% partecipanteIdx + 1 %][/FORMAT][%= \"] \" + partecipanteNominativo + \" (CF: \" + partecipanteCodiceFiscale + \")\" %]\r - - [% partecipanteIdx = partecipanteIdx + 1; %]\r - - [/DO][/WHILE]\r - - [/THEN][/IF]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="elencoPartecipantiDebug" type="string"][% elencoPartecipantiDebug = ""; %][/VAR] + [VAR name="elencoPartecipantiCompleto" type="string"][% elencoContraentiCompleto = ""; %][/VAR] + [VAR name="partecipanti" type="string"][TRIM][TAG]SCHEMAID,542,COL0018,IUQOID, , [/TAG][/TRIM][/VAR] + [%= "" %] + [IF][CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION][THEN] + [VAR name="partecipantiSplit" type="iterable"][SPLIT regex="\n"][VALUE_OF varname="partecipanti" /][/SPLIT][/VAR] + [VAR name="partecipantiCount" type="number"][SIZE_OF varname="partecipantiSplit" /][/VAR] + [VAR name="partecipanteIdx" type="number"][% partecipanteIdx = 0; %][/VAR] + [VAR name="partecipanteNominativoIdx" type="number"][% partecipanteNominativoIdx = 0; %][/VAR] + [VAR name="partecipanteRestoIdx" type="number"][% partecipanteRestoIdx = 1; %][/VAR] + [WHILE threshold="99"][CONDITION][% partecipanteIdx < partecipantiCount %][/CONDITION][DO] + [VAR name="partecipanteFull" type="string"][VALUE_OF varname="partecipantiSplit" index="partecipanteIdx" /][/VAR] + [VAR name="partecipanteSplit" type="iterable"][SPLIT regex=", CF: "][TRIM][VALUE_OF varname="partecipanteFull" /][/TRIM][/SPLIT][/VAR] + [!-- Recupera il nominativo --] + [VAR name="partecipanteNominativo" type="string"][VALUE_OF varname="partecipanteSplit" index="partecipanteNominativoIdx" /][/VAR] + [!-- Recupera il codice fiscale --] + [VAR name="partecipanteResto" type="string"][VALUE_OF varname="partecipanteSplit" index="partecipanteRestoIdx" /][/VAR] + [VAR name="partecipanteRestoSplit" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="partecipanteResto" /][/SPLIT][/VAR] + [VAR name="partecipanteCodiceFiscale" type="string"][VALUE_OF varname="partecipanteRestoSplit" index="partecipanteNominativoIdx" /][/VAR] + [%= "[" %][FORMAT type="number" pattern="integer"][% partecipanteIdx + 1 %][/FORMAT][%= "] " + partecipanteNominativo + " (CF: " + partecipanteCodiceFiscale + ")" %] + [% partecipanteIdx = partecipanteIdx + 1; %] + [/DO][/WHILE] + [/THEN][/IF] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Get year from date.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Get year from date.yml new file mode 100644 index 0000000..1da2240 --- /dev/null +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Get year from date.yml @@ -0,0 +1,50 @@ +info: + name: Get year from date + type: http + seq: 20 + +http: + method: POST + url: "{{elixFormsApiUrl}}/eftl/process/v1" + headers: + - name: x-requested-with + value: XMLHttpRequest + - name: x-api-key + value: "{{elixFormsWsAuthenticationToken}}" + - name: x-ef-request-id + value: "22737" + disabled: true + - name: x-ef-request-id + value: "22224" + disabled: true + - name: x-ef-request-id + value: "23663" + body: + type: json + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } + auth: inherit + +runtime: + scripts: + - type: before-request + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [TAG]SCHEMAID,709,COL0117,IUQOID, , ,,YYYY[/TAG] + [/EFTL] + `); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Body.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Body.yml new file mode 100644 index 0000000..6eaeb5c --- /dev/null +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Body.yml @@ -0,0 +1,100 @@ +info: + name: Notifiche email partecipanti - Body + type: http + seq: 22 + +http: + method: POST + url: "{{elixFormsApiUrl}}/eftl/process/v1" + headers: + - name: x-requested-with + value: XMLHttpRequest + - name: x-api-key + value: "{{elixFormsWsAuthenticationToken}}" + - name: x-ef-request-id + value: "23761" + body: + type: json + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } + auth: inherit + +runtime: + scripts: + - type: before-request + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + + + + + + + + + + + [/EFTL] + `); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Subject.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Subject.yml new file mode 100644 index 0000000..e2bd8e3 --- /dev/null +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Notifiche email partecipanti - Subject.yml @@ -0,0 +1,44 @@ +info: + name: Notifiche email partecipanti - Subject + type: http + seq: 21 + +http: + method: POST + url: "{{elixFormsApiUrl}}/eftl/process/v1" + headers: + - name: x-requested-with + value: XMLHttpRequest + - name: x-api-key + value: "{{elixFormsWsAuthenticationToken}}" + - name: x-ef-request-id + value: "23761" + body: + type: json + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } + auth: inherit + +runtime: + scripts: + - type: before-request + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + *** https://procedure.unipr.it - Richiesta compilazione DSAN per Ripartizione Utili / Compensi - Contratto [TAG]GETVALUEBYTAG,ID_CONTRATTO,REQUEST,ID_OBJECT[/TAG] *** + [/EFTL] + `); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero partecipanti meno RS (se c'è).yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero partecipanti meno RS (se c'è).yml index 0b93e42..5c0ee48 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero partecipanti meno RS (se c'è).yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero partecipanti meno RS (se c'è).yml @@ -32,8 +32,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="newline"][% newline = ""; %][/VAR] [VAR name="codiceFiscaleProponente"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR] @@ -54,11 +55,7 @@ runtime: [%= newline %] [%= ripartizioniCount %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero ripartizioni da form partecipanti.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero ripartizioni da form partecipanti.yml index ee53521..c5fab4e 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero ripartizioni da form partecipanti.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Numero ripartizioni da form partecipanti.yml @@ -13,51 +13,37 @@ http: value: "{{elixFormsWsAuthenticationToken}}" - name: x-ef-request-id value: "19758" + disabled: true + - name: x-ef-request-id + value: "23761" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="ripartizioniIterable" type="iterable"][SPLIT regex="#" emptyIfBlank="true"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,CONCAT,#[/TAG][/SPLIT][/VAR] + [VAR name="ripartizioniCount" type="string"][SIZE_OF varname="ripartizioniIterable" /][/VAR] - var eftlDocumentToBeProcessed = String.raw`\r - - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"ripartizioniIterable\" type=\"iterable\"][SPLIT regex=\"#\"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/SPLIT][/VAR]\r - - [VAR name=\"ripartizioniCount\" type=\"string\"][SIZE_OF varname=\"ripartizioniIterable\" /][/VAR]\r - - \r - - [%= ripartizioniCount %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= ripartizioniCount %] + [%= crlf %] + [%= ripartizioniIterable %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti HAS DSAN.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti HAS DSAN.yml new file mode 100644 index 0000000..4734c0f --- /dev/null +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti HAS DSAN.yml @@ -0,0 +1,68 @@ +info: + name: Partecipanti HAS DSAN + type: http + seq: 23 + +http: + method: POST + url: "{{elixFormsApiUrl}}/eftl/process/v1" + headers: + - name: x-requested-with + value: XMLHttpRequest + - name: x-api-key + value: "{{elixFormsWsAuthenticationToken}}" + - name: x-ef-request-id + value: "24075" + body: + type: json + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } + auth: inherit + +runtime: + scripts: + - type: before-request + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + + [VAR name="richiedenteCF" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR] + [VAR name="lastUpdatedNominativo" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR] + [VAR name="hasDSAN" type="string"][% hasDSAN = "1"; %][/VAR] + + [VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR] + [VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR] + + [VAR name="lastUpdatedNominativoIterable" type="iterable"][SPLIT regex=" \(CF: "][VALUE_OF varname="lastUpdatedNominativo" /][/SPLIT][/VAR] + [VAR name="lastUpdatedNominativoRightIterable" type="iterable"][SPLIT regex=", Qualifica: "][VALUE_OF varname="lastUpdatedNominativoIterable" index="secondItem" /][/SPLIT][/VAR] + [VAR name="lastUpdatedNominativoCF" type="string"][VALUE_OF varname="lastUpdatedNominativoRightIterable" index="firstItem" /][/VAR] + + [!-- + [%= richiedenteCF %] + [%= crlf %] + [%= lastUpdatedNominativoCF %] + [% richiedenteCF = ""; %] + --] + + [IF] + [CONDITION][% lastUpdatedNominativoCF != "" && lastUpdatedNominativoCF == richiedenteCF %][/CONDITION] + [THEN][% hasDSAN = "0"; %][/THEN] + [/IF] + + [%= hasDSAN %] + [/EFTL] + `); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti per Qualifica.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti per Qualifica.yml index cb4acf2..7dcb293 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti per Qualifica.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Partecipanti per Qualifica.yml @@ -30,8 +30,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [!-- Must be defined in EftlSolver attribute! --] [VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR] @@ -75,11 +76,7 @@ runtime: [%= newLine %] [%= responsabiliScientifici + newLine + partecipanti %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/RS proponente completo (multipli).yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/RS proponente completo (multipli).yml index 2ff093a..0d02fbe 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/RS proponente completo (multipli).yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/RS proponente completo (multipli).yml @@ -15,49 +15,30 @@ http: value: "19758" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"crlf\": \"\\r\\n\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "crlf": "\r\n" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = String.raw`\r - - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"rspTitolo\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_TITOLO,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"rspCognome\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"rspNome\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_NOME,REQUEST,IUQOID[/TAG][/VAR]\r - - [%= rspTitolo + \" \" + rspCognome + \" \" rspNome %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="rspTitolo" type="string"][TAG]GETVALUEBYTAG,RSP_TITOLO,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="rspCognome" type="string"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="rspNome" type="string"][TAG]GETVALUEBYTAG,RSP_NOME,REQUEST,IUQOID[/TAG][/VAR] + [%= rspTitolo + " " + rspCognome + " " rspNome %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Recupero importo richiedente da proposta.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Recupero importo richiedente da proposta.yml index 7148cfc..68347a9 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Recupero importo richiedente da proposta.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Recupero importo richiedente da proposta.yml @@ -19,6 +19,9 @@ http: disabled: true - name: x-ef-request-id value: "23663" + disabled: true + - name: x-ef-request-id + value: "23698" body: type: json data: |- @@ -36,8 +39,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = bru.setVar("elixBase64EftlDocument", btoa(String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR] @@ -60,7 +64,7 @@ runtime: [%= importoRichiedente %] [/EFTL] - `)); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/TEST ordine GetValueByTag.yml b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/TEST ordine GetValueByTag.yml index e01d561..a30b68b 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/TEST ordine GetValueByTag.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/TEST ordine GetValueByTag.yml @@ -35,8 +35,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = bru.setVar("elixBase64EftlDocument", btoa(String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="lastUpdatedNominativo" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR] @@ -51,7 +52,7 @@ runtime: [%= lastUpdatedNominativoCF + ":" + lastUpdatedImporto %] [/EFTL] - `)); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml index 391c64f..02bcf12 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 5% con virgole.yml @@ -36,8 +36,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="D1_1" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_1,REQUEST,IUQOID[/TAG][/VAR] [VAR name="D1_2" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_2,REQUEST,IUQOID[/TAG][/VAR] @@ -52,11 +53,7 @@ runtime: [FORMAT type="number" pattern="#,##0.00"][% QuotaAteneo %][/FORMAT] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml index 4898d61..74ca8d2 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Calcolo D.1.3 con virgole.yml @@ -42,8 +42,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="ceiling" type="string"][TAG]GETVALUEBYTAG,CORRISPETTIVO_CEILING,REQUEST,IUQOID[/TAG][/VAR] [!-- HACK per numeri corretti!!!1! --] @@ -79,11 +80,7 @@ runtime: [%= ritenuta2maxMessage %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml index a36a340..961ee2e 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Codice Contratto con caratteri strani.yml @@ -15,119 +15,102 @@ http: value: "16204" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"itemCodiceContratto\": \"CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01\"\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "itemCodiceContratto": "CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01" + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: "const { prepareEftlDocument } = require(\"./elixFormsJs.js\") - var eftlDocumentToBeProcessed = String.raw`\r + // Copy-pasta your EFTL document below inside the template literals (`) - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r + prepareEftlDocument(String.raw` - [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"itemCodiceContratto\" /][/VAR]\r + [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /] - [VAR name=\"debug\" type=\"boolean\"][% debug = false; %][/VAR]\r + [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"itemCodiceContratto\" /][/VAR] - \r + [VAR name=\"debug\" type=\"boolean\"][% debug = false; %][/VAR] - [!-- Titolo contratto ha il formato \"[codice_contratto] titolo\" --]\r - [!-- La prima split fatta per \"\\] \" mi restituisce \"[codice_contratto\" --]\r + [!-- Titolo contratto ha il formato \"[codice_contratto] titolo\" --] - [VAR name=\"firstSplit\" type=\"iterable\"][SPLIT regex=\"\\] \"][VALUE_OF varname=\"itemCodiceContratto\" /][/SPLIT][/VAR]\r + [!-- La prima split fatta per \"\\] \" mi restituisce \"[codice_contratto\" --] - [VAR name=\"firstSplitIdx\"][% firstSplitIdx = 0; %][/VAR]\r + [VAR name=\"firstSplit\" type=\"iterable\"][SPLIT regex=\"\\] \"][VALUE_OF varname=\"itemCodiceContratto\" /][/SPLIT][/VAR] - [!-- La seconda split fatta per \"\\[\" mi restituisce \"codice_contratto\" --]\r + [VAR name=\"firstSplitIdx\"][% firstSplitIdx = 0; %][/VAR] - [VAR name=\"secondSplit\" type=\"iterable\"][SPLIT regex=\"\\[\"][VALUE_OF varname=\"firstSplit\" index=\"firstSplitIdx\" /][/SPLIT][/VAR]\r + [!-- La seconda split fatta per \"\\[\" mi restituisce \"codice_contratto\" --] - [VAR name=\"secondSplitIdx\"][% secondSplitIdx = 1; %][/VAR]\r + [VAR name=\"secondSplit\" type=\"iterable\"][SPLIT regex=\"\\[\"][VALUE_OF varname=\"firstSplit\" index=\"firstSplitIdx\" /][/SPLIT][/VAR] - \r + [VAR name=\"secondSplitIdx\"][% secondSplitIdx = 1; %][/VAR] - [VAR name=\"condizione\"][SIZE_OF varname=\"secondSplit\" /][/VAR]\r - [IF]\r + [VAR name=\"condizione\"][SIZE_OF varname=\"secondSplit\" /][/VAR] - \ [CONDITION][% condizione > 1 %][/CONDITION]\r + [IF] - \ [THEN]\r + \ [CONDITION][% condizione > 1 %][/CONDITION] - \ [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"secondSplit\" index=\"secondSplitIdx\" /][/VAR]\r + \ [THEN] - \ [/THEN]\r + \ [VAR name=\"codiceContratto\" type=\"string\"][VALUE_OF varname=\"secondSplit\" index=\"secondSplitIdx\" /][/VAR] - [/IF]\r + \ [/THEN] - \r + [/IF] - [VAR name=\"codiceContrattoSplit\" type=\"iterable\"][SPLIT regex=\"À\"][VALUE_OF varname=\"codiceContratto\" /][/SPLIT][/VAR]\r - [VAR name=\"condizioneSplit\"][SIZE_OF varname=\"codiceContrattoSplit\" /][/VAR]\r + [VAR name=\"codiceContrattoSplit\" type=\"iterable\"][SPLIT regex=\"À\"][VALUE_OF varname=\"codiceContratto\" /][/SPLIT][/VAR] - [IF]\r + [VAR name=\"condizioneSplit\"][SIZE_OF varname=\"codiceContrattoSplit\" /][/VAR] - \ [CONDITION][% condizioneSplit > 1 %][/CONDITION]\r + [IF] - \ [THEN]\r + \ [CONDITION][% condizioneSplit > 1 %][/CONDITION] - \ [% debug = true; %]\r + \ [THEN] - \ [VAR name=\"codiceContrattoSplitFirst\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"firstSplitIdx\" /][/VAR]\r + \ [% debug = true; %] - \ [VAR name=\"codiceContrattoSplitSecond\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"secondSplitIdx\" /][/VAR]\r + \ [VAR name=\"codiceContrattoSplitFirst\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"firstSplitIdx\" /][/VAR] - \ [% codiceContratto = codiceContrattoSplitFirst + \"%C3%80\" + codiceContrattoSplitSecond; %]\r + \ [VAR name=\"codiceContrattoSplitSecond\" type=\"string\"][VALUE_OF varname=\"codiceContrattoSplit\" index=\"secondSplitIdx\" /][/VAR] - \ [/THEN]\r + \ [% codiceContratto = codiceContrattoSplitFirst + \"%C3%80\" + codiceContrattoSplitSecond; %] - [/IF]\r + \ [/THEN] - \r + [/IF] - \r -
    \r + -
  • [%= codiceContratto %]
  • \r +
      -
    • [%= codiceContrattoSplit %]
    • \r +
    • [%= codiceContratto %]
    • -
    • [%= debug %]
    • \r +
    • [%= codiceContrattoSplit %]
    • -
    \r +
  • [%= debug %]
  • - \r +
- [/EFTL]\r + - `;\r + [/EFTL] - \r - - console.log(eftlDocumentToBeProcessed);\r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + `);" settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml index a007b49..a160f53 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Contratto IS economico.yml @@ -15,177 +15,94 @@ http: value: "8463" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"docs\": [\r - - \ {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ ],\r - - \ \"docsAsEntities\": [\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ }\r - - \ ],\r - - \ \"singleEntity\": {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ \"simpleList\": [\r - - \ \"s1\",\r - - \ \"s2\",\r - - \ \"s3\"\r - - \ ],\r - - \ \"docsSize\": 3\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "docs": [ + { + "name": "doc1", + "quantity": 3, + "price": 123.3 + }, + { + "name": "doc2", + "quantity": 5, + "price": 213.3 + }, + { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + ], + "docsAsEntities": [ + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc2", + "quantity": 5, + "price": 213.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + } + ], + "singleEntity": { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + "simpleList": [ + "s1", + "s2", + "s3" + ], + "docsSize": 3 + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] + [VAR name="tipologiaCodice" type="string"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR] + [VAR name="isEconomico" type="boolean"][% isEconomico = true; %][/VAR] + [VAR name="tipologieNonEconomico" type="iterable"][SPLIT regex=";"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR] - var eftlDocumentToBeProcessed = `\r + [IF] + [CONDITION] + [CONTAINS varname="tipologieNonEconomico"][VALUE_OF varname="tipologiaCodice" /][/CONTAINS] + [/CONDITION] + [THEN][% isEconomico = false; %][/THEN] + [/IF] - [EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r - - [VAR name=\"tipologiaCodice\" type=\"string\"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]\r - - [VAR name=\"isEconomico\" type=\"boolean\"][% isEconomico = true; %][/VAR]\r - - [VAR name=\"tipologieNonEconomico\" type=\"iterable\"][SPLIT regex=\";\"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]\r - - \r - - [IF]\r - - \ [CONDITION]\r - - \ [CONTAINS varname=\"tipologieNonEconomico\"][VALUE_OF varname=\"tipologiaCodice\" /][/CONTAINS]\r - - \ [/CONDITION]\r - - \ [THEN][% isEconomico = false; %][/THEN]\r - - [/IF]\r - - \r - - [%= isEconomico %]\r - - [/EFTL]\r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + [%= isEconomico %] + [/EFTL] + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml index be3cc80..569e403 100644 --- a/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml +++ b/collections/elixForms API v2/EFTL processing/CCT - Proposta Operatore/Messaggio ritenute massime.yml @@ -42,8 +42,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="C_B3" type="number"][TAG]GETVALUEBYTAG,C_B3,REQUEST,IUQOID[/TAG][/VAR] [VAR name="D1_1" type="number"][TAG]GETVALUEBYTAG,PROPOSTA_CCT_CONTRATTO_D_1_1,REQUEST,IUQOID[/TAG][/VAR] @@ -69,11 +70,7 @@ runtime: [FORMAT type="number" pattern="#,##0.00"][% D2 %][/FORMAT] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `) settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/Process EFTL.yml b/collections/elixForms API v2/EFTL processing/Process EFTL.yml index a0ce19f..60c9fc9 100644 --- a/collections/elixForms API v2/EFTL processing/Process EFTL.yml +++ b/collections/elixForms API v2/EFTL processing/Process EFTL.yml @@ -15,333 +15,172 @@ http: value: "7792" body: type: json - data: "{\r - - \ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r - - \ \"userContext\": {\r - - \ \"lang\": \"IT\",\r - - \ \"docs\": [\r - - \ {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ },\r - - \ {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ ],\r - - \ \"docsAsEntities\": [\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc2\",\r - - \ \"quantity\": 5,\r - - \ \"price\": 213.3\r - - \ }\r - - \ },\r - - \ {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc3\",\r - - \ \"quantity\": 10,\r - - \ \"price\": 321.3\r - - \ }\r - - \ }\r - - \ ],\r - - \ \"singleEntity\": {\r - - \ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r - - \ \"eftlEntity\": {\r - - \ \"name\": \"doc1\",\r - - \ \"quantity\": 3,\r - - \ \"price\": 123.3\r - - \ }\r - - \ },\r - - \ \"simpleList\": [\r - - \ \"s1\",\r - - \ \"s2\",\r - - \ \"s3\"\r - - \ ],\r - - \ \"docsSize\": 3\r - - \ }\r - - }" + data: |- + { + "userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script + "userContext": { + "lang": "IT", + "docs": [ + { + "name": "doc1", + "quantity": 3, + "price": 123.3 + }, + { + "name": "doc2", + "quantity": 5, + "price": 213.3 + }, + { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + ], + "docsAsEntities": [ + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc2", + "quantity": 5, + "price": 213.3 + } + }, + { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc3", + "quantity": 10, + "price": 321.3 + } + } + ], + "singleEntity": { + "eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc", + "eftlEntity": { + "name": "doc1", + "quantity": 3, + "price": 123.3 + } + }, + "simpleList": [ + "s1", + "s2", + "s3" + ], + "docsSize": 3 + } + } auth: inherit runtime: scripts: - type: before-request - code: "// Copy-pasta your EFTL document below inside the template literals (`)\r - - var eftlDocumentToBeProcessed = `\r - - \r - - \r - - \r - - \r - - \r - -

\r - - VERSIONE ITALIANA

\r - -

\r - -

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

\r - -

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

\r - -

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

\r - -

Decreto del Rettore

\r - -
\r - - \r - - \r - - [EFTL]\r - -

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

\r - -

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

\r - -

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

\r - - [/EFTL]\r - - \r - - ...\r - - \r - - [eftl] [!-- Inizio blocco EFTL --]\r - - [!-- Blocco di codice riportato in output come scrittura non EFTL --]\r - - testo tra tag html [!-- Blocco di codice riportato in output come scrittura non EFTL --]\r - - testo senza tags\r - - [VAR name=\"i\" type=\"number\"] [!-- Inizio blocco VAR per la definizione di una variabile --]\r - - [% i = 0; %] [!-- Blocco di assegnazione valore ad una variabile --]\r - - [/VAR]\r - -

un po' di testo che verrà riportato

[!-- Blocco di codice riportato in output come scrittura non EFTL --]\r - - [!-- Inizio blocco if/then/elese --]\r - - [IF]\r - - [CONDITION] [!-- Condizione del blocco IF da valutare: risultato aspettato di tipo booleano --]\r - - [% lang == \"IT\" %]\r - - [/CONDITION]\r - - [THEN] [!-- Se blocco condizione true --]\r - - \r - - [FOR varName=\"doc\" iterable=\"docs\"]\r - - doc: [%= doc %]\r - - [/FOR]\r - - \r - - [!-- Condizione Blocco while --]\r - - [WHILE]\r - - [CONDITION] [% docs != null && i < docsSize %] [/CONDITION]\r - - [DO] [!-- Blocco while da eseguire se condizione è \"true\" --]\r - -

value of var \"i\" is: [%= i %]

\r - - [FOR varName=\"doc\" iterable=\"docs\"] [!-- Blocco FOR di iterazione --]\r - - doc corrente: [%= doc %] [!-- Blocco esposizione del valore della variabile --]\r - - Sto ciclando sul documento con nome e prezzo \r - - \r - - [/FOR]\r - - [% i = i + 1; %] [!-- Blocco di assegnazione valore ad una variabile --]\r - -

value of var \"i\" after increment is: [%= i %]

\r - - [/DO]\r - - [/WHILE]\r - - [/THEN]\r - - [ELSE] [!-- Se blocco condizione false --]\r - - fixed-time RESEARCH ASSISTANT CONTRACT/S for COLLABORATION at RESEARCH ACTIVITY\r - - [/ELSE]\r - - [/IF]\r - - [!-- Fine blocco EFTL --]\r - - [/EFTL]\r - - \r - - \r - - ...\r - - \r - -

testo tra un documento blocco EFTL© e l'altro

\r - - \r - - ...\r - - \r - - [EFTL] [!-- Inizio 2° blocco EFTL --]\r - -
    \r - -
  1. \r - - Decreto del rettore del [TAG]SCHEMAID,202,COL0030,ID_OBJECT, , [/TAG] nr. [TAG]SCHEMAID,202,COL0022,ID_OBJECT, , [/TAG]\r - -
  2. \r - -
  3. \r - - Decreto del rettore nr. [TAG]GETVALUEBYTAG,NUM_PROT,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER][/TAG] del [TAG]GETVALUEBYTAG,PROVV_DATE,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER],,,dd/MM/yyyy[/TAG]\r - -
  4. \r - -
\r - - altro tag\r - - [!-- Fine 2° blocco EFTL --]\r - - [/EFTL]\r - - \r - -

\r - - Resto del documento...\r - -

\r - -

\r - -

The Rector

\r - -

Digitally signed

\r - - \r - - \r - - `;\r - - \r - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r - - \r - - bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);" + code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") + // Copy-pasta your EFTL document below inside the template literals (`) + prepareEftlDocument(String.raw` + + + + + +

+ VERSIONE ITALIANA

+

+

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

+

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

+

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

+

Decreto del Rettore

+
+ + + [EFTL] +

[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]

+

Tipologia: [TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]

+

Corrispettivo: [TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]

+ [/EFTL] + + ... + + [eftl] [!-- Inizio blocco EFTL --] + [!-- Blocco di codice riportato in output come scrittura non EFTL --] + testo tra tag html [!-- Blocco di codice riportato in output come scrittura non EFTL --] + testo senza tags + [VAR name="i" type="number"] [!-- Inizio blocco VAR per la definizione di una variabile --] + [% i = 0; %] [!-- Blocco di assegnazione valore ad una variabile --] + [/VAR] +

un po' di testo che verrà riportato

[!-- Blocco di codice riportato in output come scrittura non EFTL --] + [!-- Inizio blocco if/then/elese --] + [IF] + [CONDITION] [!-- Condizione del blocco IF da valutare: risultato aspettato di tipo booleano --] + [% lang == "IT" %] + [/CONDITION] + [THEN] [!-- Se blocco condizione true --] + + [FOR varName="doc" iterable="docs"] + doc: [%= doc %] + [/FOR] + + [!-- Condizione Blocco while --] + [WHILE] + [CONDITION] [% docs != null && i < docsSize %] [/CONDITION] + [DO] [!-- Blocco while da eseguire se condizione è "true" --] +

value of var "i" is: [%= i %]

+ [FOR varName="doc" iterable="docs"] [!-- Blocco FOR di iterazione --] + doc corrente: [%= doc %] [!-- Blocco esposizione del valore della variabile --] + Sto ciclando sul documento con nome e prezzo + + [/FOR] + [% i = i + 1; %] [!-- Blocco di assegnazione valore ad una variabile --] +

value of var "i" after increment is: [%= i %]

+ [/DO] + [/WHILE] + [/THEN] + [ELSE] [!-- Se blocco condizione false --] + fixed-time RESEARCH ASSISTANT CONTRACT/S for COLLABORATION at RESEARCH ACTIVITY + [/ELSE] + [/IF] + [!-- Fine blocco EFTL --] + [/EFTL] + + + ... + +

testo tra un documento blocco EFTL© e l'altro

+ + ... + + [EFTL] [!-- Inizio 2° blocco EFTL --] +
    +
  1. + Decreto del rettore del [TAG]SCHEMAID,202,COL0030,ID_OBJECT, , [/TAG] nr. [TAG]SCHEMAID,202,COL0022,ID_OBJECT, , [/TAG] +
  2. +
  3. + Decreto del rettore nr. [TAG]GETVALUEBYTAG,NUM_PROT,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER][/TAG] del [TAG]GETVALUEBYTAG,PROVV_DATE,REQUEST,IUQOID[FILTER]ACTION_NAME=pers_a_inviaPerFirmaRemotaBando_facEcon[/FILTER],,,dd/MM/yyyy[/TAG] +
  4. +
+ altro tag + [!-- Fine 2° blocco EFTL --] + [/EFTL] + +

+ Resto del documento... +

+

+

The Rector

+

Digitally signed

+ + + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml b/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml index 6320f6a..0222a79 100644 --- a/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml +++ b/collections/elixForms API v2/EFTL processing/Test vari/Create JSON.yml @@ -29,8 +29,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="json" type="string"][% json = ""; %][/VAR] @@ -48,11 +49,7 @@ runtime: [%= json %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml b/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml index 770d2fa..97bfcd6 100644 --- a/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml +++ b/collections/elixForms API v2/EFTL processing/Test vari/Test vari.yml @@ -48,8 +48,9 @@ runtime: scripts: - type: before-request code: |- + const { prepareEftlDocument } = require("./elixFormsJs.js") // Copy-pasta your EFTL document below inside the template literals (`) - var eftlDocumentToBeProcessed = String.raw` + prepareEftlDocument(String.raw` [EFTL][HEADER name="trimDocument" value="true" type="boolean" /] [VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR] [VAR name="stringSeparated" type="string"][% stringSeparated = "xyz#abc#def"; %][/VAR] @@ -76,11 +77,7 @@ runtime: [%= newLine %] [%= complex %] [/EFTL] - `; - - var base64EncodedDocument = btoa(eftlDocumentToBeProcessed); - - bru.setVar("elixBase64EftlDocument", base64EncodedDocument); + `); settings: encodeUrl: true diff --git a/collections/elixForms API v2/EFTL processing/folder.yml b/collections/elixForms API v2/EFTL processing/folder.yml index 6efff9a..2188535 100644 --- a/collections/elixForms API v2/EFTL processing/folder.yml +++ b/collections/elixForms API v2/EFTL processing/folder.yml @@ -1,7 +1,7 @@ info: name: EFTL processing type: folder - seq: 10 + seq: 1 request: auth: inherit diff --git a/collections/elixForms API v2/Request details/Get Request Attachment.yml b/collections/elixForms API v2/Request details/Get Request Attachment.yml index ef691fd..bd6d0e4 100644 --- a/collections/elixForms API v2/Request details/Get Request Attachment.yml +++ b/collections/elixForms API v2/Request details/Get Request Attachment.yml @@ -49,53 +49,31 @@ http: runtime: scripts: - type: after-response - code: "var template = `\r + code: |- + var template = ` + - \r - - \r - -
\r
-
-        {{response.decodedDocument}}\r
-
-        
\r - - `;\r - - \r - - function constructVisualizerPayload() {\r - - \ var response = res.getBody();\r - - \ var decodedDocument = atob(response.value.requestDocument.documentBase64);\r - - \ response.decodedDocument = decodedDocument;\r - - \ return { response: response };\r - - }\r - - \r - - // pm.visualizer.set(template, constructVisualizerPayload());" + // pm.visualizer.set(template, constructVisualizerPayload()); settings: encodeUrl: true diff --git a/collections/elixForms API v2/Request details/Get Request Identifier.yml b/collections/elixForms API v2/Request details/Get Request Identifier.yml index b0d1f8d..ece7845 100644 --- a/collections/elixForms API v2/Request details/Get Request Identifier.yml +++ b/collections/elixForms API v2/Request details/Get Request Identifier.yml @@ -27,73 +27,41 @@ http: runtime: scripts: - type: after-response - code: "function findBinaryColumns(obj) {\r + code: |- + function findBinaryColumns(obj) { + let binaryColumns = []; - \ let binaryColumns = [];\r + if (Array.isArray(obj)) { + obj.forEach(item => { + binaryColumns = binaryColumns.concat(findBinaryColumns(item)); + }); + } else if (typeof obj === "object" && obj !== null) { + Object.keys(obj).forEach(key => { + if (key === "columns" && Array.isArray(obj[key])) { + obj[key].forEach(column => { + if (column.columnType === "BINARY") { + binaryColumns.push(column); + } + }); + } else { + binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key])); + } + }); + } - \r + return binaryColumns; + } - \ if (Array.isArray(obj)) {\r + // Carica il file JSON (sostituisci con il tuo oggetto JSON) + const jsonData = res.getBody(); - \ obj.forEach(item => {\r + // Esegui la ricerca + const binaryColumns = findBinaryColumns(jsonData); - \ binaryColumns = binaryColumns.concat(findBinaryColumns(item));\r - - \ });\r - - \ } else if (typeof obj === \"object\" && obj !== null) {\r - - \ Object.keys(obj).forEach(key => {\r - - \ if (key === \"columns\" && Array.isArray(obj[key])) {\r - - \ obj[key].forEach(column => {\r - - \ if (column.columnType === \"BINARY\") {\r - - \ binaryColumns.push(column);\r - - \ }\r - - \ });\r - - \ } else {\r - - \ binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key]));\r - - \ }\r - - \ });\r - - \ }\r - - \r - - \ return binaryColumns;\r - - }\r - - \r - - // Carica il file JSON (sostituisci con il tuo oggetto JSON)\r - - const jsonData = res.getBody();\r - - \r - - // Esegui la ricerca\r - - const binaryColumns = findBinaryColumns(jsonData);\r - - \r - - // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)\r - - if (binaryColumns.length > 0) {\r - - \ console.warn(\"Allegati trovati:\", binaryColumns);\r - - }" + // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman) + if (binaryColumns.length > 0) { + console.warn("Allegati trovati:", binaryColumns); + } settings: encodeUrl: true diff --git a/collections/elixForms API v2/Request details/Get Request by QRCode.yml b/collections/elixForms API v2/Request details/Get Request by QRCode.yml index 1059f2e..8f0b1fc 100644 --- a/collections/elixForms API v2/Request details/Get Request by QRCode.yml +++ b/collections/elixForms API v2/Request details/Get Request by QRCode.yml @@ -27,78 +27,49 @@ http: type: path body: type: form-urlencoded + data: + - name: "" + value: "" auth: inherit runtime: scripts: - type: after-response - code: "function findBinaryColumns(obj) {\r + code: |- + function findBinaryColumns(obj) { + let binaryColumns = []; - \ let binaryColumns = [];\r + if (Array.isArray(obj)) { + obj.forEach(item => { + binaryColumns = binaryColumns.concat(findBinaryColumns(item)); + }); + } else if (typeof obj === "object" && obj !== null) { + Object.keys(obj).forEach(key => { + if (key === "columns" && Array.isArray(obj[key])) { + obj[key].forEach(column => { + if (column.columnType === "BINARY") { + binaryColumns.push(column); + } + }); + } else { + binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key])); + } + }); + } - \r + return binaryColumns; + } - \ if (Array.isArray(obj)) {\r + // Carica il file JSON (sostituisci con il tuo oggetto JSON) + const jsonData = res.getBody(); - \ obj.forEach(item => {\r + // Esegui la ricerca + const binaryColumns = findBinaryColumns(jsonData); - \ binaryColumns = binaryColumns.concat(findBinaryColumns(item));\r - - \ });\r - - \ } else if (typeof obj === \"object\" && obj !== null) {\r - - \ Object.keys(obj).forEach(key => {\r - - \ if (key === \"columns\" && Array.isArray(obj[key])) {\r - - \ obj[key].forEach(column => {\r - - \ if (column.columnType === \"BINARY\") {\r - - \ binaryColumns.push(column);\r - - \ }\r - - \ });\r - - \ } else {\r - - \ binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key]));\r - - \ }\r - - \ });\r - - \ }\r - - \r - - \ return binaryColumns;\r - - }\r - - \r - - // Carica il file JSON (sostituisci con il tuo oggetto JSON)\r - - const jsonData = res.getBody();\r - - \r - - // Esegui la ricerca\r - - const binaryColumns = findBinaryColumns(jsonData);\r - - \r - - // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)\r - - if (binaryColumns.length > 0) {\r - - \ console.warn(\"Allegati trovati:\", binaryColumns);\r - - }" + // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman) + if (binaryColumns.length > 0) { + console.warn("Allegati trovati:", binaryColumns); + } settings: encodeUrl: true diff --git a/collections/elixForms API v2/Request details/Get Request.yml b/collections/elixForms API v2/Request details/Get Request.yml index 15980cc..bb09791 100644 --- a/collections/elixForms API v2/Request details/Get Request.yml +++ b/collections/elixForms API v2/Request details/Get Request.yml @@ -32,73 +32,41 @@ http: runtime: scripts: - type: after-response - code: "function findBinaryColumns(obj) {\r + code: |- + function findBinaryColumns(obj) { + let binaryColumns = []; - \ let binaryColumns = [];\r + if (Array.isArray(obj)) { + obj.forEach(item => { + binaryColumns = binaryColumns.concat(findBinaryColumns(item)); + }); + } else if (typeof obj === "object" && obj !== null) { + Object.keys(obj).forEach(key => { + if (key === "columns" && Array.isArray(obj[key])) { + obj[key].forEach(column => { + if (column.columnType === "BINARY") { + binaryColumns.push(column); + } + }); + } else { + binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key])); + } + }); + } - \r + return binaryColumns; + } - \ if (Array.isArray(obj)) {\r + // Carica il file JSON (sostituisci con il tuo oggetto JSON) + const jsonData = res.getBody(); - \ obj.forEach(item => {\r + // Esegui la ricerca + const binaryColumns = findBinaryColumns(jsonData); - \ binaryColumns = binaryColumns.concat(findBinaryColumns(item));\r - - \ });\r - - \ } else if (typeof obj === \"object\" && obj !== null) {\r - - \ Object.keys(obj).forEach(key => {\r - - \ if (key === \"columns\" && Array.isArray(obj[key])) {\r - - \ obj[key].forEach(column => {\r - - \ if (column.columnType === \"BINARY\") {\r - - \ binaryColumns.push(column);\r - - \ }\r - - \ });\r - - \ } else {\r - - \ binaryColumns = binaryColumns.concat(findBinaryColumns(obj[key]));\r - - \ }\r - - \ });\r - - \ }\r - - \r - - \ return binaryColumns;\r - - }\r - - \r - - // Carica il file JSON (sostituisci con il tuo oggetto JSON)\r - - const jsonData = res.getBody();\r - - \r - - // Esegui la ricerca\r - - const binaryColumns = findBinaryColumns(jsonData);\r - - \r - - // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)\r - - if (binaryColumns.length > 0) {\r - - \ console.warn(\"Allegati trovati:\", binaryColumns);\r - - }" + // Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman) + if (binaryColumns.length > 0) { + console.warn("Allegati trovati:", binaryColumns); + } settings: encodeUrl: true diff --git a/collections/elixForms API v2/User info/Get User Info.yml b/collections/elixForms API v2/User info/Get User Info.yml index 3f0c4f0..eb41ab4 100644 --- a/collections/elixForms API v2/User info/Get User Info.yml +++ b/collections/elixForms API v2/User info/Get User Info.yml @@ -23,6 +23,9 @@ http: description: id dell'istanza eF body: type: form-urlencoded + data: + - name: "" + value: "" auth: inherit settings: diff --git a/collections/elixForms API v2/_Untested/Creazione JWT.yml b/collections/elixForms API v2/_Untested/Creazione JWT.yml index f1a3821..02bad59 100644 --- a/collections/elixForms API v2/_Untested/Creazione JWT.yml +++ b/collections/elixForms API v2/_Untested/Creazione JWT.yml @@ -13,29 +13,19 @@ http: value: XMLHttpRequest body: type: json - data: "{\r - - \ \"iss\": \"servizio-cittadino-attivo\",\r - - \ \"sub\": \"mariorossi\",\r - - \ \"info\": {\r - - \ \"https://www.elixforms.it/name\": \"Mario\",\r - - \ \"https://www.elixforms.it/surname\": \"Rossi\",\r - - \ \"https://www.elixforms.it/email\": \"mario.rossi@example.org\",\r - - \ \"https://www.elixforms.it/fiscal_code\": \"XXX\",\r - - \ \"https://www.elixforms.it/login_date\": \"2023-08-09T11:31:30Z[UTC]\",\r - - \ \"https://www.elixforms.it/login_receipt\": \"SPIDlogin 0101001029\"\r - - \ }\r - - }" + data: |- + { + "iss": "servizio-cittadino-attivo", + "sub": "mariorossi", + "info": { + "https://www.elixforms.it/name": "Mario", + "https://www.elixforms.it/surname": "Rossi", + "https://www.elixforms.it/email": "mario.rossi@example.org", + "https://www.elixforms.it/fiscal_code": "XXX", + "https://www.elixforms.it/login_date": "2023-08-09T11:31:30Z[UTC]", + "https://www.elixforms.it/login_receipt": "SPIDlogin 0101001029" + } + } auth: type: apikey key: x-api-key diff --git a/collections/elixForms API v2/elixFormsJs.js b/collections/elixForms API v2/elixFormsJs.js index c8f5c46..8ef6c1c 100644 --- a/collections/elixForms API v2/elixFormsJs.js +++ b/collections/elixForms API v2/elixFormsJs.js @@ -13,6 +13,11 @@ function visualize(res) { console.log(response.decodedDocument); } +function prepareEftlDocument(doc) { + bru.setVar("elixBase64EftlDocument", btoa(doc)); +} + module.exports = { - visualize + visualize, + prepareEftlDocument };