Merge branch 'main' of https://gitea.synno-qc.synology.me/UniPR/Bruno-API
# Conflicts: # collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Calcolo ore equivalenti.yml
This commit is contained in:
@@ -6,6 +6,10 @@ info:
|
|||||||
http:
|
http:
|
||||||
method: GET
|
method: GET
|
||||||
url: "{{IdemApiUrl}}/strutt_centri.php"
|
url: "{{IdemApiUrl}}/strutt_centri.php"
|
||||||
|
params:
|
||||||
|
- name: ""
|
||||||
|
value: ""
|
||||||
|
type: query
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
@@ -6,6 +6,10 @@ info:
|
|||||||
http:
|
http:
|
||||||
method: GET
|
method: GET
|
||||||
url: "{{IdemApiUrl}}/strutt_apicali.php"
|
url: "{{IdemApiUrl}}/strutt_apicali.php"
|
||||||
|
params:
|
||||||
|
- name: ""
|
||||||
|
value: ""
|
||||||
|
type: query
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
+212
-421
@@ -53,427 +53,218 @@ http:
|
|||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- type: after-response
|
||||||
code: "// Aggregates contracts with 2+ contributors across all pages and reports summary.\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.\r
|
// // 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.
|
||||||
// Adds robust helpers for working with query params across Postman SDK versions and edge cases.\r
|
//
|
||||||
|
// Requirements addressed:
|
||||||
//\r
|
// 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
|
||||||
// Requirements addressed:\r
|
// 3) Aggregate items where contributorSet exists and has length >= 2
|
||||||
|
// 4) Build a map pid -> contributorCount across all pages (including initial)
|
||||||
// 1) Read Page-Count header to know total pages\r
|
// 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
|
||||||
// 2) Iteratively call same endpoint for pages from current+1 to Page-Count, preserving other query params\r
|
// 7) Augment aggregation with department (ownerSet[0].organizationUnit.idAb + " - " + description). Keep first non-empty.
|
||||||
|
|
||||||
// 3) Aggregate items where contributorSet exists and has length >= 2\r
|
(function () {
|
||||||
|
const RATE_LIMIT_DELAY_MS = 200; // small delay between page fetches
|
||||||
// 4) Build a map pid -> contributorCount across all pages (including initial)\r
|
const TARGET_ENV_VAR = 'multiContributorContracts';
|
||||||
|
const PAGE_PARAM = 'page';
|
||||||
// 5) Print summary in Test Results and set env var `multiContributorContracts` with [{ pid, contributorCount }]\r
|
|
||||||
|
// ---------------- URL and Query helpers (SDK-safe) -----------------
|
||||||
// 6) Robust error handling, rate limiting, early stop on non-2xx; handle JSON array or paginated object response shapes\r
|
// Returns a plain object of query params. Works with:
|
||||||
|
// // - pm.request.url.query (SDK v8+ as QueryList) using .toObject()
|
||||||
// 7) Augment aggregation with department (ownerSet[0].organizationUnit.idAb + \" - \" + description). Keep first non-empty.\r
|
// - URL that has no query or is a raw string
|
||||||
|
function getQueryObject(url) {
|
||||||
\r
|
try {
|
||||||
|
// // pm.request.url can be a Url object or a string. Normalize to raw string.
|
||||||
(function () {\r
|
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
|
||||||
\ const RATE_LIMIT_DELAY_MS = 200; // small delay between page fetches\r
|
if (url && url.query && typeof url.query.toObject === 'function') {
|
||||||
|
const obj = url.query.toObject();
|
||||||
\ const TARGET_ENV_VAR = 'multiContributorContracts';\r
|
// toObject may return undefined/null on empty query
|
||||||
|
return obj && typeof obj === 'object' ? { ...obj } : {};
|
||||||
\ const PAGE_PARAM = 'page';\r
|
}
|
||||||
|
// Fallback: parse the raw string
|
||||||
\r
|
if (typeof raw === 'string') {
|
||||||
|
const qIndex = raw.indexOf('?');
|
||||||
\ // ---------------- URL and Query helpers (SDK-safe) -----------------\r
|
if (qIndex === -1) return {};
|
||||||
|
const queryStr = raw.substring(qIndex + 1);
|
||||||
\ // Returns a plain object of query params. Works with:\r
|
if (!queryStr) return {};
|
||||||
|
return queryStr.split('&').reduce((acc, pair) => {
|
||||||
// // - pm.request.url.query (SDK v8+ as QueryList) using .toObject()\r
|
if (!pair) return acc;
|
||||||
|
const [k, v] = pair.split('=');
|
||||||
\ // - URL that has no query or is a raw string\r
|
if (!k) return acc;
|
||||||
|
acc[decodeURIComponent(k)] = v !== undefined ? decodeURIComponent(v) : '';
|
||||||
\ function getQueryObject(url) {\r
|
return acc;
|
||||||
|
}, {});
|
||||||
\ try {\r
|
}
|
||||||
|
} catch (e) {
|
||||||
// // pm.request.url can be a Url object or a string. Normalize to raw string.\r
|
// fallthrough
|
||||||
|
}
|
||||||
\ const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || ''));\r
|
return {};
|
||||||
|
}
|
||||||
\ // Try SDK path first if it's a Url object with .query\r
|
|
||||||
|
function setQueryObject(url, updates) {
|
||||||
\ if (url && url.query && typeof url.query.toObject === 'function') {\r
|
// 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 obj = url.query.toObject();\r
|
const qIndex = raw.indexOf('?');
|
||||||
|
const base = qIndex === -1 ? raw : raw.substring(0, qIndex);
|
||||||
\ // toObject may return undefined/null on empty query\r
|
const current = getQueryObject(url);
|
||||||
|
const merged = { ...current, ...updates };
|
||||||
\ return obj && typeof obj === 'object' ? { ...obj } : {};\r
|
// Filter out empty/undefined to avoid adding stray keys
|
||||||
|
const parts = Object.keys(merged)
|
||||||
\ }\r
|
.filter(k => merged[k] !== undefined && merged[k] !== null && merged[k] !== '')
|
||||||
|
.map(k => encodeURIComponent(k) + '=' + encodeURIComponent(String(merged[k])));
|
||||||
\ // Fallback: parse the raw string\r
|
return parts.length ? base + '?' + parts.join('&') : base;
|
||||||
|
}
|
||||||
\ if (typeof raw === 'string') {\r
|
|
||||||
|
// ---------------- Response shape helpers -----------------
|
||||||
\ const qIndex = raw.indexOf('?');\r
|
function isObject(x) { return x && typeof x === 'object' && !Array.isArray(x); }
|
||||||
|
|
||||||
\ if (qIndex === -1) return {};\r
|
function getItemsFromResponseBody(rb) {
|
||||||
|
// Supports either an array payload or an object with an array at known keys
|
||||||
\ const queryStr = raw.substring(qIndex + 1);\r
|
if (Array.isArray(rb)) return rb;
|
||||||
|
if (isObject(rb)) {
|
||||||
\ if (!queryStr) return {};\r
|
// Try common keys: 'items', 'data', 'results'
|
||||||
|
if (Array.isArray(rb.items)) return rb.items;
|
||||||
\ return queryStr.split('&').reduce((acc, pair) => {\r
|
if (Array.isArray(rb.data)) return rb.data;
|
||||||
|
if (Array.isArray(rb.results)) return rb.results;
|
||||||
\ if (!pair) return acc;\r
|
}
|
||||||
|
return [];
|
||||||
\ const [k, v] = pair.split('=');\r
|
}
|
||||||
|
|
||||||
\ if (!k) return acc;\r
|
function safeJson(body) {
|
||||||
|
try { return JSON.parse(body); } catch (e) { return null; }
|
||||||
\ acc[decodeURIComponent(k)] = v !== undefined ? decodeURIComponent(v) : '';\r
|
}
|
||||||
|
|
||||||
\ return acc;\r
|
// ---------------- Aggregation store -----------------
|
||||||
|
// Map: pid -> { contributorCount, department }
|
||||||
\ }, {});\r
|
const aggregate = {};
|
||||||
|
|
||||||
\ }\r
|
function extractDepartment(item) {
|
||||||
|
try {
|
||||||
\ } catch (e) {\r
|
const owner0 = Array.isArray(item.ownerSet) && item.ownerSet.length > 0 ? item.ownerSet[0] : null;
|
||||||
|
const ou = owner0 && owner0.organizationUnit ? owner0.organizationUnit : null;
|
||||||
\ // fallthrough\r
|
const idAb = ou && typeof ou.idAb === 'string' ? ou.idAb : null;
|
||||||
|
const desc = ou && typeof ou.description === 'string' ? ou.description : null;
|
||||||
\ }\r
|
if (idAb && desc) return idAb + ' - ' + desc;
|
||||||
|
return '';
|
||||||
\ return {};\r
|
} catch (e) {
|
||||||
|
return '';
|
||||||
\ }\r
|
}
|
||||||
|
}
|
||||||
\r
|
|
||||||
|
function considerItems(items) {
|
||||||
\ function setQueryObject(url, updates) {\r
|
items.forEach(it => {
|
||||||
|
const contributors = Array.isArray(it.contributorSet) ? it.contributorSet : [];
|
||||||
\ // Returns a new raw URL string with given query params merged\r
|
if (contributors.length >= 2) {
|
||||||
|
const pid = (it.pid != null) ? String(it.pid) : '';
|
||||||
\ const raw = (typeof url === 'string') ? url : (url && (url.toString ? url.toString() : url.raw || ''));\r
|
if (!pid) return;
|
||||||
|
const contributorCount = contributors.length;
|
||||||
\ const qIndex = raw.indexOf('?');\r
|
const dept = extractDepartment(it);
|
||||||
|
if (!aggregate[pid]) {
|
||||||
\ const base = qIndex === -1 ? raw : raw.substring(0, qIndex);\r
|
aggregate[pid] = { contributorCount, department: dept || '' };
|
||||||
|
} else {
|
||||||
\ const current = getQueryObject(url);\r
|
// keep max contributor count seen (in case of variations) and first non-empty department
|
||||||
|
aggregate[pid].contributorCount = Math.max(aggregate[pid].contributorCount, contributorCount);
|
||||||
\ const merged = { ...current, ...updates };\r
|
if (!aggregate[pid].department && dept) {
|
||||||
|
aggregate[pid].department = dept;
|
||||||
\ // 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
|
// ---------------- Paging orchestration -----------------
|
||||||
|
const initialStatus = res.getStatus();
|
||||||
\ return parts.length ? base + '?' + parts.join('&') : base;\r
|
const is2xx = initialStatus >= 200 && initialStatus < 300;
|
||||||
|
if (!is2xx) {
|
||||||
\ }\r
|
test('Request failed - not aggregating on non-2xx', function () {
|
||||||
|
expect(is2xx).to.eql(true);
|
||||||
\r
|
});
|
||||||
|
return;
|
||||||
\ // ---------------- Response shape helpers -----------------\r
|
}
|
||||||
|
|
||||||
\ function isObject(x) { return x && typeof x === 'object' && !Array.isArray(x); }\r
|
const rb = safeJson(JSON.stringify(res.getBody()));
|
||||||
|
const initialItems = rb ? getItemsFromResponseBody(rb) : [];
|
||||||
\r
|
considerItems(initialItems);
|
||||||
|
|
||||||
\ function getItemsFromResponseBody(rb) {\r
|
// 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');
|
||||||
\ // Supports either an array payload or an object with an array at known keys\r
|
const totalPages = pageCountHeader ? parseInt(pageCountHeader, 10) : 1;
|
||||||
|
|
||||||
\ if (Array.isArray(rb)) return rb;\r
|
// Figure out current page from request URL (query param 'page')
|
||||||
|
const currentQuery = getQueryObject(req.getUrl());
|
||||||
\ if (isObject(rb)) {\r
|
const currentPage = parseInt(currentQuery[PAGE_PARAM] || '1', 10) || 1;
|
||||||
|
|
||||||
\ // Try common keys: 'items', 'data', 'results'\r
|
// Build a function that fetches page N and aggregates
|
||||||
|
function fetchPage(n) {
|
||||||
\ if (Array.isArray(rb.items)) return rb.items;\r
|
return new Promise((resolve) => {
|
||||||
|
const nextUrl = setQueryObject(req.getUrl(), { [PAGE_PARAM]: String(n) });
|
||||||
\ if (Array.isArray(rb.data)) return rb.data;\r
|
setTimeout(function () {
|
||||||
|
await bru.sendRequest({ url: nextUrl, method: 'GET' }, async function(err, res) {
|
||||||
\ if (Array.isArray(rb.results)) return rb.results;\r
|
if (err || !res) {
|
||||||
|
test('Error fetching page ' + n, function () {
|
||||||
\ }\r
|
expect(err).to.eql(null);
|
||||||
|
});
|
||||||
\ return [];\r
|
return resolve(false);
|
||||||
|
}
|
||||||
\ }\r
|
const ok = res.status >= 200 && res.status < 300;
|
||||||
|
if (!ok) {
|
||||||
\r
|
test('Non-2xx on page ' + n + ' - stop further paging', function () {
|
||||||
|
expect(ok).to.eql(true);
|
||||||
\ function safeJson(body) {\r
|
});
|
||||||
|
return resolve(false);
|
||||||
\ try { return JSON.parse(body); } catch (e) { return null; }\r
|
}
|
||||||
|
const body = res.data;
|
||||||
\ }\r
|
const json = safeJson(body);
|
||||||
|
const items = json ? getItemsFromResponseBody(json) : [];
|
||||||
\r
|
considerItems(items);
|
||||||
|
resolve(true);
|
||||||
\ // ---------------- Aggregation store -----------------\r
|
});
|
||||||
|
}, RATE_LIMIT_DELAY_MS);
|
||||||
\ // Map: pid -> { contributorCount, department }\r
|
});
|
||||||
|
}
|
||||||
\ const aggregate = {};\r
|
|
||||||
|
async function run() {
|
||||||
\r
|
// If there are more pages, iterate
|
||||||
|
for (let p = currentPage + 1; p <= totalPages; p++) {
|
||||||
\ function extractDepartment(item) {\r
|
const cont = await fetchPage(p);
|
||||||
|
if (!cont) break;
|
||||||
\ try {\r
|
}
|
||||||
|
|
||||||
\ const owner0 = Array.isArray(item.ownerSet) && item.ownerSet.length > 0 ? item.ownerSet[0] : null;\r
|
// Prepare output array
|
||||||
|
const output = Object.keys(aggregate).map(pid => ({
|
||||||
\ const ou = owner0 && owner0.organizationUnit ? owner0.organizationUnit : null;\r
|
pid,
|
||||||
|
contributorCount: aggregate[pid].contributorCount,
|
||||||
\ const idAb = ou && typeof ou.idAb === 'string' ? ou.idAb : null;\r
|
department: aggregate[pid].department || ''
|
||||||
|
}));
|
||||||
\ const desc = ou && typeof ou.description === 'string' ? ou.description : null;\r
|
|
||||||
|
// Save to environment
|
||||||
\ if (idAb && desc) return idAb + ' - ' + desc;\r
|
bru.setEnvVar(TARGET_ENV_VAR, JSON.stringify(output));
|
||||||
|
|
||||||
\ return '';\r
|
// Basic summary tests
|
||||||
|
test('Aggregated items have required properties', function () {
|
||||||
\ } catch (e) {\r
|
output.forEach(item => {
|
||||||
|
expect(item).to.have.property('pid');
|
||||||
\ return '';\r
|
expect(item.pid).to.be.a('string');
|
||||||
|
expect(item).to.have.property('contributorCount');
|
||||||
\ }\r
|
expect(item.contributorCount).to.be.a('number');
|
||||||
|
expect(item).to.have.property('department');
|
||||||
\ }\r
|
expect(item.department).to.be.a('string');
|
||||||
|
});
|
||||||
\r
|
});
|
||||||
|
|
||||||
\ function considerItems(items) {\r
|
// Optional: Log summary count
|
||||||
|
test('Total multi-contributor contracts aggregated', function () {
|
||||||
\ items.forEach(it => {\r
|
expect(output.length).to.be.at.least(0);
|
||||||
|
});
|
||||||
\ const contributors = Array.isArray(it.contributorSet) ? it.contributorSet : [];\r
|
}
|
||||||
|
|
||||||
\ if (contributors.length >= 2) {\r
|
run();
|
||||||
|
})();
|
||||||
\ 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
|
|
||||||
|
|
||||||
})();"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+35
-71
@@ -33,81 +33,45 @@ http:
|
|||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- 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
|
// 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());
|
||||||
\ var totalPages = parseInt(res.getHeader(\"Page-Count\"));\r
|
setTimeout(function(){}, [1000]);
|
||||||
|
}
|
||||||
\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
|
|
||||||
|
|
||||||
});"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -22,13 +22,11 @@ http:
|
|||||||
description: Schema key (auto-generated by Power Automate platform, change this in case of unauthorized)
|
description: Schema key (auto-generated by Power Automate platform, change this in case of unauthorized)
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"requestId\": 10868,\r
|
"requestId": 10868,
|
||||||
|
"exportGroup": "API"
|
||||||
\ \"exportGroup\": \"API\"\r
|
}
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
@@ -21,13 +21,11 @@ http:
|
|||||||
type: query
|
type: query
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"moduleTag\": \"PROPOSTA_CCT_DOCENTE\",\r
|
"moduleTag": "PROPOSTA_CCT_DOCENTE",
|
||||||
|
"step": ""
|
||||||
\ \"step\": \"\"\r
|
}
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
@@ -11,26 +11,21 @@ http:
|
|||||||
value: XMLHttpRequest
|
value: XMLHttpRequest
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"username\": \"{{elixFormsApiUsername}}\",\r
|
"username": "{{elixFormsApiUsername}}",
|
||||||
|
"password": "{{elixFormsApiPassword}}"
|
||||||
\ \"password\": \"{{elixFormsApiPassword}}\"\r
|
}
|
||||||
|
|
||||||
}"
|
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- type: after-response
|
||||||
code: "test(\"Status code is 200\", function () {\r
|
code: |-
|
||||||
|
test("Status code is 200", function () {
|
||||||
\ expect(res.getStatus()).to.equal(200);\r
|
expect(res.getStatus()).to.equal(200);
|
||||||
|
var jsonData = res.getBody();
|
||||||
\ var jsonData = res.getBody();\r
|
bru.setVar("elixFormsApiAuthToken", jsonData.value.authToken);
|
||||||
|
});
|
||||||
\ bru.setVar(\"elixFormsApiAuthToken\", jsonData.value.authToken);\r
|
|
||||||
|
|
||||||
});"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+1
-2
@@ -137,7 +137,6 @@ examples:
|
|||||||
|
|
||||||
docs: |-
|
docs: |-
|
||||||
Viene ritornato l'esito dell'operazione di storicizzazione si elixForms©.
|
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
|
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.
|
||||||
elixForms per il modulo.
|
|
||||||
Esempio="OK","VAL","..." imposta lo stato di workflow semplice corrispondente imposta lo step ad "evasa" notifica email
|
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
|
Esempio="KO","KO","..." imposta lo stato di workflow semplice corrispondente non cambia lo stato dello step
|
||||||
|
|||||||
@@ -22,31 +22,24 @@ http:
|
|||||||
type: path
|
type: path
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"clientUsername\": \"MMMPPL74T17E463A\", // string, <(*) username dell'utente che richiede la clonazione>\r
|
"clientUsername": "MMMPPL74T17E463A", // string, <(*) username dell'utente che richiede la clonazione>
|
||||||
|
"cloningReason": "Request cloning test", // string, <(*) motivazione della copia>
|
||||||
\ \"cloningReason\": \"Request cloning test\", // string, <(*) motivazione della copia>\r
|
"cloningDate": {{elixRequestCloningDate}}, // dateTime, <(*) data in formato ISO: "2021-05-18T00:00:00">
|
||||||
|
"cloneLogId": null // number, <generic id dello storico di clonazione eventualmente da aggiornare; se non specificato viene automaticamente generato un nuovo log (Scheda "RW2 - Clone")>
|
||||||
\ \"cloningDate\": {{elixRequestCloningDate}}, // dateTime, <(*) data in formato ISO: \"2021-05-18T00:00:00\">\r
|
}
|
||||||
|
|
||||||
\ \"cloneLogId\": null // number, <generic id dello storico di clonazione eventualmente da aggiornare; se non specificato viene automaticamente generato un nuovo log (Scheda \"RW2 - Clone\")>\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "var currentDate = new Date().toISOString();\r
|
code: |-
|
||||||
|
var currentDate = new Date().toISOString();
|
||||||
|
|
||||||
\r
|
console.log(currentDate);
|
||||||
|
|
||||||
console.log(currentDate);\r
|
bru.setVar("elixRequestCloningDate", JSON.stringify(currentDate));
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixRequestCloningDate\", JSON.stringify(currentDate));"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+15
-26
@@ -15,39 +15,28 @@ http:
|
|||||||
type: query
|
type: query
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |
|
||||||
|
{
|
||||||
\ \"requestId\": 5102, // <(*) id della request>\r
|
"requestId": 5102, // <(*) id della request>
|
||||||
|
"clientUserId": 29, // <id dell'utenza "reale", (non quella sistemistica) che ha generato la riapertura, i.e. utenza loggata>
|
||||||
\ \"clientUserId\": 29, // <id dell'utenza \"reale\", (non quella sistemistica) che ha generato la riapertura, i.e. utenza loggata>\r
|
"reopeningReason": "string", // <motivazine della riapertura>
|
||||||
|
"reopeningNotificationDate": {{elixReopeningNotificationDate}}, // <data in formato ISO: "2021-05-18T00:00:00"> (viene precalcolata dal pre-request script!)
|
||||||
\ \"reopeningReason\": \"string\", // <motivazine della riapertura>\r
|
"reopenLogId": null, // <se esiste un log di storicizzazione da aggiornare e si conosce il generic id della scheda; se non specificato logga l'operazione in nuova scheda>
|
||||||
|
"reopeningAttachmentFileName": null, // <nome del file in attach, i.e. miofile.pdf>
|
||||||
\ \"reopeningNotificationDate\": {{elixReopeningNotificationDate}}, // <data in formato ISO: \"2021-05-18T00:00:00\"> (viene precalcolata dal pre-request script!)\r
|
"reopeningAttachmentMimeType": null, // <mimetype del file in attach, i.e. "application/pdf">
|
||||||
|
"reopeningAttachment": null // <bytes del file in attach>
|
||||||
\ \"reopenLogId\": null, // <se esiste un log di storicizzazione da aggiornare e si conosce il generic id della scheda; se non specificato logga l'operazione in nuova scheda>\r
|
}
|
||||||
|
|
||||||
\ \"reopeningAttachmentFileName\": null, // <nome del file in attach, i.e. miofile.pdf>\r
|
|
||||||
|
|
||||||
\ \"reopeningAttachmentMimeType\": null, // <mimetype del file in attach, i.e. \"application/pdf\">\r
|
|
||||||
|
|
||||||
\ \"reopeningAttachment\": null // <bytes del file in attach>\r
|
|
||||||
|
|
||||||
}\r\n"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "var currentDate = new Date().toISOString();\r
|
code: |-
|
||||||
|
var currentDate = new Date().toISOString();
|
||||||
|
|
||||||
\r
|
console.log(currentDate);
|
||||||
|
|
||||||
console.log(currentDate);\r
|
bru.setVar("elixReopeningNotificationDate", JSON.stringify(currentDate));
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixReopeningNotificationDate\", JSON.stringify(currentDate));"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -15,39 +15,28 @@ http:
|
|||||||
type: query
|
type: query
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |
|
||||||
|
{
|
||||||
\ \"requestId\": 5102, // <(*) id della request>\r
|
"requestId": 5102, // <(*) id della request>
|
||||||
|
"clientUserId": 29, // <id dell'utenza "reale", (non quella sistemistica) che ha generato la riapertura, i.e. utenza loggata>
|
||||||
\ \"clientUserId\": 29, // <id dell'utenza \"reale\", (non quella sistemistica) che ha generato la riapertura, i.e. utenza loggata>\r
|
"reopeningReason": "string", // <motivazine della riapertura>
|
||||||
|
"reopeningNotificationDate": {{elixReopeningNotificationDate}}, // <data in formato ISO: "2021-05-18T00:00:00"> (viene precalcolata dal pre-request script!)
|
||||||
\ \"reopeningReason\": \"string\", // <motivazine della riapertura>\r
|
"reopenLogId": null, // <se esiste un log di storicizzazione da aggiornare e si conosce il generic id della scheda; se non specificato logga l'operazione in nuova scheda>
|
||||||
|
"reopeningAttachmentFileName": null, // <nome del file in attach, i.e. miofile.pdf>
|
||||||
\ \"reopeningNotificationDate\": {{elixReopeningNotificationDate}}, // <data in formato ISO: \"2021-05-18T00:00:00\"> (viene precalcolata dal pre-request script!)\r
|
"reopeningAttachmentMimeType": null, // <mimetype del file in attach, i.e. "application/pdf">
|
||||||
|
"reopeningAttachment": null // <bytes del file in attach>
|
||||||
\ \"reopenLogId\": null, // <se esiste un log di storicizzazione da aggiornare e si conosce il generic id della scheda; se non specificato logga l'operazione in nuova scheda>\r
|
}
|
||||||
|
|
||||||
\ \"reopeningAttachmentFileName\": null, // <nome del file in attach, i.e. miofile.pdf>\r
|
|
||||||
|
|
||||||
\ \"reopeningAttachmentMimeType\": null, // <mimetype del file in attach, i.e. \"application/pdf\">\r
|
|
||||||
|
|
||||||
\ \"reopeningAttachment\": null // <bytes del file in attach>\r
|
|
||||||
|
|
||||||
}\r\n"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "var currentDate = new Date().toISOString();\r
|
code: |-
|
||||||
|
var currentDate = new Date().toISOString();
|
||||||
|
|
||||||
\r
|
console.log(currentDate);
|
||||||
|
|
||||||
console.log(currentDate);\r
|
bru.setVar("elixReopeningNotificationDate", JSON.stringify(currentDate));
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixReopeningNotificationDate\", JSON.stringify(currentDate));"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+1
-5
@@ -109,18 +109,14 @@ docs: |-
|
|||||||
The elixRegisterResultColumns variable must be built like the following:
|
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
|
- 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)
|
- each couple must be separated by a semi-period (\`;\` character)
|
||||||
|
|
||||||
|
|
||||||
For example, suppose the request has a SWF schema with ID 356, containing:
|
For example, suppose the request has a SWF schema with ID 356, containing:
|
||||||
|
|
||||||
- State = COL0001
|
- State = COL0001
|
||||||
|
|
||||||
- Date = COL0002
|
- Date = COL0002
|
||||||
|
|
||||||
- Email = COL0003
|
- Email = COL0003
|
||||||
|
|
||||||
- Message = COL0004
|
- Message = COL0004
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
-6
@@ -105,20 +105,14 @@ docs: |-
|
|||||||
The elixRegisterResultColumns variable must be built like the following:
|
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
|
- 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)
|
- each couple must be separated by a semi-period (\`;\` character)
|
||||||
|
|
||||||
|
|
||||||
For example, suppose the request has a SWF schema with ID 356, containing:
|
For example, suppose the request has a SWF schema with ID 356, containing:
|
||||||
|
|
||||||
- State = COL0001
|
- State = COL0001
|
||||||
|
|
||||||
- Date = COL0002
|
- Date = COL0002
|
||||||
|
|
||||||
- Email = COL0003
|
- Email = COL0003
|
||||||
|
|
||||||
- Message = COL0004
|
- Message = COL0004
|
||||||
|
|
||||||
|
|
||||||
If you want to change the CURRENT state's date and message values, you will put into the variable the following value:
|
If you want to change the CURRENT state's date and message values, you will put into the variable the following value:
|
||||||
|
|
||||||
|
|||||||
+27
-50
@@ -17,63 +17,40 @@ http:
|
|||||||
type: path
|
type: path
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"message\": \"Test message\",\r
|
"message": "Test message",
|
||||||
|
"documentType": "Autorizzazione", // <tipo di documento> 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
|
||||||
\ \"documentType\": \"Autorizzazione\", // <tipo di documento> 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",
|
||||||
|
"documentDate": {{elixFormalCommunicationDate}},
|
||||||
\ \"documentNumber\": \"123123_AZ\",\r
|
"attachments": [ // da 0 a 5 max
|
||||||
|
/*
|
||||||
\ \"documentDate\": {{elixFormalCommunicationDate}},\r
|
{
|
||||||
|
"attachFile": "<Base 64 encoded string>", // <file> rappresentato da una stringa in formato Base64, encoding del byte array del file originale in UTF-8
|
||||||
\ \"attachments\": [ // da 0 a 5 max\r
|
"attachMimeType": "application/pdf", // <mime type> del documento allegato. Se vuoto viene impostato come application/octet-steam
|
||||||
|
"attachFileName": "test.pdf", // <nome del file> da assengare al file in upload
|
||||||
\ /*\r
|
"attachSize": null // <dimensione del file> dichiarata. Se non specificato, viene calcolato in funzione del file ricevuto
|
||||||
|
},
|
||||||
\ {\r
|
{
|
||||||
|
"attachFile": "<Base 64 encoded string>",
|
||||||
\ \"attachFile\": \"<Base 64 encoded string>\", // <file> rappresentato da una stringa in formato Base64, encoding del byte array del file originale in UTF-8\r
|
"attachMimeType": "image/jpeg",
|
||||||
|
"attachFileName": "test1.jpeg"
|
||||||
\ \"attachMimeType\": \"application/pdf\", // <mime type> del documento allegato. Se vuoto viene impostato come application/octet-steam\r
|
}
|
||||||
|
*/
|
||||||
\ \"attachFileName\": \"test.pdf\", // <nome del file> da assengare al file in upload\r
|
],
|
||||||
|
"senderUsername": "MMMPPL74T17E463A" // <username> 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).
|
||||||
\ \"attachSize\": null // <dimensione del file> dichiarata. Se non specificato, viene calcolato in funzione del file ricevuto\r
|
}
|
||||||
|
|
||||||
\ },\r
|
|
||||||
|
|
||||||
\ {\r
|
|
||||||
|
|
||||||
\ \"attachFile\": \"<Base 64 encoded string>\",\r
|
|
||||||
|
|
||||||
\ \"attachMimeType\": \"image/jpeg\",\r
|
|
||||||
|
|
||||||
\ \"attachFileName\": \"test1.jpeg\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
\ */\r
|
|
||||||
|
|
||||||
\ ],\r
|
|
||||||
|
|
||||||
\ \"senderUsername\": \"MMMPPL74T17E463A\" // <username> 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
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "var currentDate = new Date().toISOString();\r
|
code: |-
|
||||||
|
var currentDate = new Date().toISOString();
|
||||||
|
|
||||||
\r
|
console.log(currentDate);
|
||||||
|
|
||||||
console.log(currentDate);\r
|
bru.setVar("elixFormalCommunicationDate", JSON.stringify(currentDate));
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixFormalCommunicationDate\", JSON.stringify(currentDate));"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+84
-168
@@ -15,179 +15,95 @@ http:
|
|||||||
value: "10971"
|
value: "10971"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "SERV_CON",
|
||||||
|
"tipologiePunto3": "FORM_COM",
|
||||||
\ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r
|
"tipologiePunto4": ""
|
||||||
|
}
|
||||||
\ \"tipologiePunto2\": \"SERV_CON\",\r
|
}
|
||||||
|
|
||||||
\ \"tipologiePunto3\": \"FORM_COM\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG][/VAR]
|
||||||
|
<html>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<head>
|
||||||
|
<style>
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0017,IUQOID, , [/TAG][/VAR]\r
|
h2 {
|
||||||
|
text-align: center;
|
||||||
<html>\r
|
font-size: 14pt;
|
||||||
|
font-weight: bold;
|
||||||
\ <head>\r
|
}
|
||||||
|
p {
|
||||||
\ <style>\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ h2 {\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ text-align: center;\r
|
ol {
|
||||||
|
text-align: justify;
|
||||||
\ font-size: 14pt;\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ font-weight: bold;\r
|
}
|
||||||
|
.firma {
|
||||||
\ }\r
|
float: right;
|
||||||
|
margin: 2em;
|
||||||
\ p {\r
|
}
|
||||||
|
</style>
|
||||||
\ text-align: justify;\r
|
</head>
|
||||||
|
<body>
|
||||||
\ font-size: 12pt;\r
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
|
|
||||||
\ line-height: 1.5;\r
|
<h2>IL DIRIGENTE</h2>
|
||||||
|
|
||||||
\ }\r
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
|
|
||||||
\ ol {\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ text-align: justify;\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ font-size: 12pt;\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ line-height: 1.5;\r
|
<!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> -->
|
||||||
|
|
||||||
\ }\r
|
<p>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];</p>
|
||||||
|
|
||||||
\ .firma {\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ float: right;\r
|
<h2>determina</h2>
|
||||||
|
|
||||||
\ margin: 2em;\r
|
<ol>
|
||||||
|
<li>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];</li>
|
||||||
\ }\r
|
|
||||||
|
<li>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];</li>
|
||||||
\ </style>\r
|
|
||||||
|
<li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>
|
||||||
\ </head>\r
|
</ol>
|
||||||
|
|
||||||
\ <body>\r
|
<div class="firma">
|
||||||
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
\r
|
</div>
|
||||||
|
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
|
</body>
|
||||||
\r
|
</html>
|
||||||
|
[/EFTL]
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
`);
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> -->\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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];</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+84
-168
@@ -15,179 +15,95 @@ http:
|
|||||||
value: "9717"
|
value: "9717"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "SERV_CON",
|
||||||
|
"tipologiePunto3": "FORM_COM",
|
||||||
\ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r
|
"tipologiePunto4": ""
|
||||||
|
}
|
||||||
\ \"tipologiePunto2\": \"SERV_CON\",\r
|
}
|
||||||
|
|
||||||
\ \"tipologiePunto3\": \"FORM_COM\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG][/VAR]
|
||||||
|
<html>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<head>
|
||||||
|
<style>
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0057,IUQOID, , [/TAG][/VAR]\r
|
h2 {
|
||||||
|
text-align: center;
|
||||||
<html>\r
|
font-size: 14pt;
|
||||||
|
font-weight: bold;
|
||||||
\ <head>\r
|
}
|
||||||
|
p {
|
||||||
\ <style>\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ h2 {\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ text-align: center;\r
|
ol {
|
||||||
|
text-align: justify;
|
||||||
\ font-size: 14pt;\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ font-weight: bold;\r
|
}
|
||||||
|
.firma {
|
||||||
\ }\r
|
float: right;
|
||||||
|
margin: 2em;
|
||||||
\ p {\r
|
}
|
||||||
|
</style>
|
||||||
\ text-align: justify;\r
|
</head>
|
||||||
|
<body>
|
||||||
\ font-size: 12pt;\r
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
|
|
||||||
\ line-height: 1.5;\r
|
<h2>IL DIRIGENTE</h2>
|
||||||
|
|
||||||
\ }\r
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
|
|
||||||
\ ol {\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ text-align: justify;\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ font-size: 12pt;\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ line-height: 1.5;\r
|
<!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> -->
|
||||||
|
|
||||||
\ }\r
|
<p>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];</p>
|
||||||
|
|
||||||
\ .firma {\r
|
<p>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;</p>
|
||||||
|
|
||||||
\ float: right;\r
|
<h2>determina</h2>
|
||||||
|
|
||||||
\ margin: 2em;\r
|
<ol>
|
||||||
|
<li>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];</li>
|
||||||
\ }\r
|
|
||||||
|
<li>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];</li>
|
||||||
\ </style>\r
|
|
||||||
|
<li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>
|
||||||
\ </head>\r
|
</ol>
|
||||||
|
|
||||||
\ <body>\r
|
<div class="firma">
|
||||||
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
\r
|
</div>
|
||||||
|
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
|
</body>
|
||||||
\r
|
</html>
|
||||||
|
[/EFTL]
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
`);
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- <p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p> -->\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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];</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni adempimento relativo.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+98
-196
@@ -15,207 +15,109 @@ http:
|
|||||||
value: "10979"
|
value: "10979"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "",
|
||||||
|
"tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB",
|
||||||
\ \"tipologiePunto1\": \"\",\r
|
"tipologiePunto4": "",
|
||||||
|
"tipologiePunto5": "MTA;NDA"
|
||||||
\ \"tipologiePunto2\": \"\",\r
|
}
|
||||||
|
}
|
||||||
\ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto5\": \"MTA;NDA\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
<html>
|
||||||
|
<head>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<style>
|
||||||
|
h2 {
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]\r
|
text-align: center;
|
||||||
|
font-size: 14pt;
|
||||||
<html>\r
|
font-weight: bold;
|
||||||
|
}
|
||||||
\ <head>\r
|
p {
|
||||||
|
text-align: justify;
|
||||||
\ <style>\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ h2 {\r
|
}
|
||||||
|
ol {
|
||||||
\ text-align: center;\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ font-size: 14pt;\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ font-weight: bold;\r
|
.firma {
|
||||||
|
float: right;
|
||||||
\ }\r
|
margin: 2em;
|
||||||
|
}
|
||||||
\ p {\r
|
</style>
|
||||||
|
</head>
|
||||||
\ text-align: justify;\r
|
<body>
|
||||||
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<h2>IL DIRIGENTE</h2>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
<p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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";</p>
|
||||||
\ ol {\r
|
|
||||||
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
\ text-align: justify;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
[IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
\ }\r
|
<p>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;</p>
|
||||||
|
[/THEN][/IF]
|
||||||
\ .firma {\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ float: right;\r
|
|
||||||
|
<!--<p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p>-->
|
||||||
\ margin: 2em;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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];</p>
|
||||||
\ </style>\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ </head>\r
|
|
||||||
|
<h2>determina</h2>
|
||||||
\ <body>\r
|
|
||||||
|
<ol>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
<li>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];</li>
|
||||||
|
|
||||||
\r
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
|
<li>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];</li>
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
[/THEN][/IF]
|
||||||
|
|
||||||
\r
|
<li>di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.</li>
|
||||||
|
</ol>
|
||||||
\ <p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli \"Accordi tra Pubbliche Amministrazioni\";</p>\r
|
|
||||||
|
<div class="firma">
|
||||||
\r
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
\ <p>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\";</p>\r
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
|
</div>
|
||||||
\r
|
|
||||||
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
</body>
|
||||||
|
</html>
|
||||||
\r
|
[/EFTL]
|
||||||
|
`);
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!--<p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p>-->\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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];</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+98
-196
@@ -15,207 +15,109 @@ http:
|
|||||||
value: "9717"
|
value: "9717"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "",
|
||||||
|
"tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB",
|
||||||
\ \"tipologiePunto1\": \"\",\r
|
"tipologiePunto4": "",
|
||||||
|
"tipologiePunto5": "MTA;NDA"
|
||||||
\ \"tipologiePunto2\": \"\",\r
|
}
|
||||||
|
}
|
||||||
\ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto5\": \"MTA;NDA\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
<html>
|
||||||
|
<head>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<style>
|
||||||
|
h2 {
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]\r
|
text-align: center;
|
||||||
|
font-size: 14pt;
|
||||||
<html>\r
|
font-weight: bold;
|
||||||
|
}
|
||||||
\ <head>\r
|
p {
|
||||||
|
text-align: justify;
|
||||||
\ <style>\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ h2 {\r
|
}
|
||||||
|
ol {
|
||||||
\ text-align: center;\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ font-size: 14pt;\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ font-weight: bold;\r
|
.firma {
|
||||||
|
float: right;
|
||||||
\ }\r
|
margin: 2em;
|
||||||
|
}
|
||||||
\ p {\r
|
</style>
|
||||||
|
</head>
|
||||||
\ text-align: justify;\r
|
<body>
|
||||||
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<h2>IL DIRIGENTE</h2>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
<p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli "Accordi tra Pubbliche Amministrazioni";</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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";</p>
|
||||||
\ ol {\r
|
|
||||||
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
\ text-align: justify;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
[IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
\ }\r
|
<p>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;</p>
|
||||||
|
[/THEN][/IF]
|
||||||
\ .firma {\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ float: right;\r
|
|
||||||
|
<!--<p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p>-->
|
||||||
\ margin: 2em;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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];</p>
|
||||||
\ </style>\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ </head>\r
|
|
||||||
|
<h2>determina</h2>
|
||||||
\ <body>\r
|
|
||||||
|
<ol>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
<li>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];</li>
|
||||||
|
|
||||||
\r
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
|
<li>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];</li>
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
[/THEN][/IF]
|
||||||
|
|
||||||
\r
|
<li>di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.</li>
|
||||||
|
</ol>
|
||||||
\ <p>visto l'art.15 della legge 7 agosto 1990 n. 241 che disciplina gli \"Accordi tra Pubbliche Amministrazioni\";</p>\r
|
|
||||||
|
<div class="firma">
|
||||||
\r
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
\ <p>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\";</p>\r
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
|
</div>
|
||||||
\r
|
|
||||||
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
</body>
|
||||||
|
</html>
|
||||||
\r
|
[/EFTL]
|
||||||
|
`);
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!-- [% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %] --][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!--<p>preso atto che, con nota assunta a Prot. n. ___, il [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] ha trasmesso:</p>-->\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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];</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di conferire mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per l'adempimento di ogni attività relativa.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+93
-186
@@ -15,197 +15,104 @@ http:
|
|||||||
value: "10979"
|
value: "10979"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "SERV_CON",
|
||||||
|
"tipologiePunto3": "FORM_COM",
|
||||||
\ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r
|
"tipologiePunto4": ""
|
||||||
|
}
|
||||||
\ \"tipologiePunto2\": \"SERV_CON\",\r
|
}
|
||||||
|
|
||||||
\ \"tipologiePunto3\": \"FORM_COM\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
<html>
|
||||||
|
<head>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<style>
|
||||||
|
h2 {
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0064,IUQOID, , [/TAG][/VAR]\r
|
text-align: center;
|
||||||
|
font-size: 14pt;
|
||||||
<html>\r
|
font-weight: bold;
|
||||||
|
}
|
||||||
\ <head>\r
|
p {
|
||||||
|
text-align: justify;
|
||||||
\ <style>\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ h2 {\r
|
}
|
||||||
|
ol {
|
||||||
\ text-align: center;\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ font-size: 14pt;\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ font-weight: bold;\r
|
.firma {
|
||||||
|
float: right;
|
||||||
\ }\r
|
margin: 2em;
|
||||||
|
}
|
||||||
\ p {\r
|
</style>
|
||||||
|
</head>
|
||||||
\ text-align: justify;\r
|
<body>
|
||||||
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<h2>IL DIRIGENTE</h2>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
<p>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";</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ ol {\r
|
|
||||||
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
\ text-align: justify;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
\ }\r
|
<p>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;</p>
|
||||||
|
[/THEN][/IF]
|
||||||
\ .firma {\r
|
|
||||||
|
<p>preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:</p>
|
||||||
\ float: right;\r
|
|
||||||
|
<p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p>
|
||||||
\ margin: 2em;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ }\r
|
|
||||||
|
<h2>determina</h2>
|
||||||
\ </style>\r
|
|
||||||
|
<ol>
|
||||||
\ </head>\r
|
<li>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];</li>
|
||||||
|
|
||||||
\ <body>\r
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
|
<li>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];</li>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
[/THEN][/IF]
|
||||||
|
|
||||||
\r
|
<li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.</li>
|
||||||
|
</ol>
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
|
||||||
|
<div class="firma">
|
||||||
\r
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
\ <p>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\";</p>\r
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
|
</div>
|
||||||
\r
|
|
||||||
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
\ <p>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;</p>\r
|
</body>
|
||||||
|
</html>
|
||||||
\r
|
[/EFTL]
|
||||||
|
`);
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+93
-186
@@ -15,197 +15,104 @@ http:
|
|||||||
value: "9717"
|
value: "9717"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "SERV_CON",
|
||||||
|
"tipologiePunto3": "FORM_COM",
|
||||||
\ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r
|
"tipologiePunto4": ""
|
||||||
|
}
|
||||||
\ \"tipologiePunto2\": \"SERV_CON\",\r
|
}
|
||||||
|
|
||||||
\ \"tipologiePunto3\": \"FORM_COM\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL]\r
|
[EFTL]
|
||||||
|
[VAR name="corrispettivo" type="string"][TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="presenzaOneri" type="boolean"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"speseGenerali\" type=\"string\"][TAG]SCHEMAID,341,COL0051,IUQOID, , [/TAG][/VAR]\r
|
[VAR name="mostraRitenute" type="string"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]
|
||||||
|
[VAR name="ulterioreRitenuta2Max" type="string"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]
|
||||||
[VAR name=\"presenzaOneri\" type=\"boolean\"][TAG]SCHEMAID,341,COL0084,IUQOID, , [/TAG][/VAR]\r
|
<html>
|
||||||
|
<head>
|
||||||
[VAR name=\"mostraRitenute\" type=\"string\"][TAG]SCHEMAID,341,COL0090,IUQOID, , [/TAG][/VAR]\r
|
<style>
|
||||||
|
h2 {
|
||||||
[VAR name=\"ulterioreRitenuta2Max\" type=\"string\"][TAG]SCHEMAID,337,COL0067,IUQOID, , [/TAG][/VAR]\r
|
text-align: center;
|
||||||
|
font-size: 14pt;
|
||||||
<html>\r
|
font-weight: bold;
|
||||||
|
}
|
||||||
\ <head>\r
|
p {
|
||||||
|
text-align: justify;
|
||||||
\ <style>\r
|
font-size: 12pt;
|
||||||
|
line-height: 1.5;
|
||||||
\ h2 {\r
|
}
|
||||||
|
ol {
|
||||||
\ text-align: center;\r
|
text-align: justify;
|
||||||
|
font-size: 12pt;
|
||||||
\ font-size: 14pt;\r
|
line-height: 1.5;
|
||||||
|
}
|
||||||
\ font-weight: bold;\r
|
.firma {
|
||||||
|
float: right;
|
||||||
\ }\r
|
margin: 2em;
|
||||||
|
}
|
||||||
\ p {\r
|
</style>
|
||||||
|
</head>
|
||||||
\ text-align: justify;\r
|
<body>
|
||||||
|
<!-- Header con logo UniPR come nel template standard -->
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<h2>IL DIRIGENTE</h2>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
<p>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";</p>
|
||||||
\ }\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ ol {\r
|
|
||||||
|
<p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>
|
||||||
\ text-align: justify;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ font-size: 12pt;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ line-height: 1.5;\r
|
|
||||||
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
\ }\r
|
<p>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;</p>
|
||||||
|
[/THEN][/IF]
|
||||||
\ .firma {\r
|
|
||||||
|
<p>preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:</p>
|
||||||
\ float: right;\r
|
|
||||||
|
<p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p>
|
||||||
\ margin: 2em;\r
|
|
||||||
|
<p>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;</p>
|
||||||
\ }\r
|
|
||||||
|
<h2>determina</h2>
|
||||||
\ </style>\r
|
|
||||||
|
<ol>
|
||||||
\ </head>\r
|
<li>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];</li>
|
||||||
|
|
||||||
\ <body>\r
|
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]
|
||||||
|
<li>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];</li>
|
||||||
\ <!-- Header con logo UniPR come nel template standard -->\r
|
[/THEN][/IF]
|
||||||
|
|
||||||
\r
|
<li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.</li>
|
||||||
|
</ol>
|
||||||
\ <h2>IL DIRIGENTE</h2>\r
|
|
||||||
|
<div class="firma">
|
||||||
\r
|
<p style="text-align: center;">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>
|
||||||
|
<p style="text-align: center;">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>
|
||||||
\ <p>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\";</p>\r
|
<p style="text-align: center;">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>
|
||||||
|
</div>
|
||||||
\r
|
|
||||||
|
<!-- Footer con logo UniPR come nel template standard -->
|
||||||
\ <p>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;</p>\r
|
</body>
|
||||||
|
</html>
|
||||||
\r
|
[/EFTL]
|
||||||
|
`);
|
||||||
\ <p>visti lo Statuto dell'Università degli Studi di Parma ed il Regolamento Generale di Ateneo;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>preso atto del testo dell'accordo che, tra l'altro, prevede quanto segue:</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>preso atto dell'autorizzazione all'avvio dello studio rilasciata in data ___ da ___;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <p>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;</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <h2>determina</h2>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <ol>\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[IF][CONDITION][!--[% [TAG]SCHEMAID,341,COL0094,IUQOID, , [/TAG] > 0 %]--][% corrispettivo > 0 %][/CONDITION][THEN]\r
|
|
||||||
|
|
||||||
\ <li>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];</li>\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <li>di dare mandato al Direttore del [TAG]SCHEMAID,341,COL0006,IUQOID, , [/TAG] per ogni ulteriore adempimento relativo.</li>\r
|
|
||||||
|
|
||||||
\ </ol>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <div class=\"firma\">\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Parma, li [TAG]SCHEMAID,340,COL0022,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">[TAG]SCHEMAID,341,COL0093,IUQOID, , [/TAG]</p>\r
|
|
||||||
|
|
||||||
\ <p style=\"text-align: center;\">Firmato digitalmente ai sensi del D.Lgs. n. 82/2005</p>\r
|
|
||||||
|
|
||||||
\ </div>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
\ <!-- Footer con logo UniPR come nel template standard -->\r
|
|
||||||
|
|
||||||
\ </body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+37
-76
@@ -15,89 +15,50 @@ http:
|
|||||||
value: "8760"
|
value: "8760"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "CRCT_RA;CRCT_RAS;CRCT_RB",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "SERV_CON",
|
||||||
|
"tipologiePunto3": "FORM_COM",
|
||||||
\ \"tipologiePunto1\": \"CRCT_RA;CRCT_RAS;CRCT_RB\",\r
|
"tipologiePunto4": ""
|
||||||
|
}
|
||||||
\ \"tipologiePunto2\": \"SERV_CON\",\r
|
}
|
||||||
|
|
||||||
\ \"tipologiePunto3\": \"FORM_COM\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= puntoAregolamento %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+57
-118
@@ -15,133 +15,72 @@ http:
|
|||||||
value: "8760"
|
value: "8760"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"tipologiePunto1": "",
|
||||||
\ \"lang\": \"IT\",\r
|
"tipologiePunto2": "",
|
||||||
|
"tipologiePunto3": "CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB",
|
||||||
\ \"tipologiePunto1\": \"\",\r
|
"tipologiePunto4": "",
|
||||||
|
"tipologiePunto5": "MTA;NDA"
|
||||||
\ \"tipologiePunto2\": \"\",\r
|
}
|
||||||
|
}
|
||||||
\ \"tipologiePunto3\": \"CCS_IST_RA;CCS_IST_RAS;CCS_IST_RB\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto4\": \"\",\r
|
|
||||||
|
|
||||||
\ \"tipologiePunto5\": \"MTA;NDA\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[FORMAT type="number" pattern="#"][% puntoBregolamento %][/FORMAT]
|
||||||
|
[/EFTL]
|
||||||
\ \"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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+81
@@ -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
|
||||||
+4
-3
@@ -18,7 +18,7 @@ http:
|
|||||||
value: "22224"
|
value: "22224"
|
||||||
disabled: true
|
disabled: true
|
||||||
- name: x-ef-request-id
|
- name: x-ef-request-id
|
||||||
value: "23663"
|
value: "23719"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: |-
|
data: |-
|
||||||
@@ -36,8 +36,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
|
||||||
[VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
[VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
@@ -62,7 +63,7 @@ runtime:
|
|||||||
|
|
||||||
[%= importoRichiedente * fattore %]
|
[%= importoRichiedente * fattore %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`));
|
`);
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+24
-9
@@ -19,6 +19,9 @@ http:
|
|||||||
disabled: true
|
disabled: true
|
||||||
- name: x-ef-request-id
|
- name: x-ef-request-id
|
||||||
value: "22744"
|
value: "22744"
|
||||||
|
disabled: true
|
||||||
|
- name: x-ef-request-id
|
||||||
|
value: "23258"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: |-
|
data: |-
|
||||||
@@ -36,8 +39,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="arrayCFdocenti" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_DOCENTE,REQUEST,IUQOID[/TAG][/VAR]
|
[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="arrayCFaltro" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTI_QUALIFICA_ALTRO,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
@@ -58,7 +62,7 @@ runtime:
|
|||||||
[DO]
|
[DO]
|
||||||
[VAR name="personaImporto" type="number"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR]
|
[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="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]
|
[VAR name="personaCF" type="string"][VALUE_OF varname="personaNominativoRightIterable" index="firstItem" /][/VAR]
|
||||||
[IF]
|
[IF]
|
||||||
[CONDITION][CONTAINS varname="arrayCFdocenti" value="personaCF" /][/CONDITION]
|
[CONDITION][CONTAINS varname="arrayCFdocenti" value="personaCF" /][/CONDITION]
|
||||||
@@ -71,14 +75,25 @@ runtime:
|
|||||||
[/WHILE]
|
[/WHILE]
|
||||||
[/THEN][/IF]
|
[/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]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+44
-94
@@ -15,111 +15,61 @@ http:
|
|||||||
value: "21306"
|
value: "21306"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n",
|
||||||
\ \"lang\": \"IT\",\r
|
"codiciFiscaliAmmessi": ";XMMPPL74T17E463A;;"
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\",\r
|
}
|
||||||
|
|
||||||
\ \"codiciFiscaliAmmessi\": \";XMMPPL74T17E463A;;\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= checkUtentePartecipante %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+46
-98
@@ -15,115 +15,63 @@ http:
|
|||||||
value: "21223"
|
value: "21223"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n",
|
||||||
\ \"lang\": \"IT\",\r
|
"nominativiAmmessi": ";MAMMI Pier Paolo;;"
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\",\r
|
}
|
||||||
|
|
||||||
\ \"nominativiAmmessi\": \";MAMMI Pier Paolo;;\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= checkUtentePartecipante %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+3
-6
@@ -29,8 +29,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[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="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]
|
[VAR name="responsabiliScientifici" type="string"][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
@@ -51,11 +52,7 @@ runtime:
|
|||||||
|
|
||||||
[%= isRichiedenteInRS %]
|
[%= isRichiedenteInRS %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+38
-80
@@ -21,95 +21,53 @@ http:
|
|||||||
value: "21344"
|
value: "21344"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n",
|
||||||
\ \"lang\": \"IT\",\r
|
"codiciFiscaliAmmessi": ";MMMPPL74T17E463A;;"
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\",\r
|
}
|
||||||
|
|
||||||
\ \"codiciFiscaliAmmessi\": \";MMMPPL74T17E463A;;\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= checkUtentePartecipante %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+45
-97
@@ -18,115 +18,63 @@ http:
|
|||||||
value: "21334"
|
value: "21334"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= ripartizioniJoin %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+99
-204
@@ -15,221 +15,116 @@ http:
|
|||||||
value: "8760"
|
value: "8760"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"docs": [
|
||||||
\ \"lang\": \"IT\",\r
|
{
|
||||||
|
"name": "doc1",
|
||||||
\ \"docs\": [\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc1\",\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"quantity\": 3,\r
|
"price": 213.3
|
||||||
|
},
|
||||||
\ \"price\": 123.3\r
|
{
|
||||||
|
"name": "doc3",
|
||||||
\ },\r
|
"quantity": 10,
|
||||||
|
"price": 321.3
|
||||||
\ {\r
|
}
|
||||||
|
],
|
||||||
\ \"name\": \"doc2\",\r
|
"docsAsEntities": [
|
||||||
|
{
|
||||||
\ \"quantity\": 5,\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"price\": 213.3\r
|
"name": "doc1",
|
||||||
|
"quantity": 3,
|
||||||
\ },\r
|
"price": 123.3
|
||||||
|
}
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc3\",\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"quantity\": 10,\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"price\": 321.3\r
|
"price": 213.3
|
||||||
|
}
|
||||||
\ }\r
|
},
|
||||||
|
{
|
||||||
\ ],\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"docsAsEntities\": [\r
|
"name": "doc3",
|
||||||
|
"quantity": 10,
|
||||||
\ {\r
|
"price": 321.3
|
||||||
|
}
|
||||||
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
|
}
|
||||||
|
],
|
||||||
\ \"eftlEntity\": {\r
|
"singleEntity": {
|
||||||
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
\ \"name\": \"doc1\",\r
|
"eftlEntity": {
|
||||||
|
"name": "doc1",
|
||||||
\ \"quantity\": 3,\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ \"price\": 123.3\r
|
}
|
||||||
|
},
|
||||||
\ }\r
|
"simpleList": [
|
||||||
|
"s1",
|
||||||
\ },\r
|
"s2",
|
||||||
|
"s3"
|
||||||
\ {\r
|
],
|
||||||
|
"docsSize": 3
|
||||||
\ \"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
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= elencoContraentiCompleto %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+109
-218
@@ -15,229 +15,120 @@ http:
|
|||||||
value: "21223"
|
value: "21223"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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 (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
[VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR]
|
||||||
[VAR name=\"newLine\" type=\"string\"][VALUE_OF varname=\"crlf\" /][/VAR]\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]
|
||||||
|
|
||||||
[VAR name=\"responsabili\" type=\"string\"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_RESPONSABILI,REQUEST,IUQOID[/TAG][/TRIM][/VAR]\r
|
[!-- Aggiungi primo elemento "nullo" --]
|
||||||
|
[VAR name="ripartizioniElenco" type="string"][% ripartizioniElenco = "[0] ---" + newLine; %][/VAR]
|
||||||
[VAR name=\"partecipanti\" type=\"string\"][TRIM][TAG]GETVALUEBYTAG,CONTRATTO_PARTECIPANTI,REQUEST,IUQOID[/TAG][/TRIM][/VAR]\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]
|
||||||
|
|
||||||
[!-- Aggiungi primo elemento \"nullo\" --]\r
|
[VAR name="responsabiliCount" type="number"][SIZE_OF varname="responsabiliIterable" /][/VAR]
|
||||||
|
[VAR name="partecipantiCount" type="number"][SIZE_OF varname="partecipantiIterable" /][/VAR]
|
||||||
[VAR name=\"ripartizioniElenco\" type=\"string\"][% ripartizioniElenco = \"[0] ---\" + newLine; %][/VAR]\r
|
|
||||||
|
[VAR name="personaIdx" type="string"][% personaIdx = 0; %][/VAR]
|
||||||
\r
|
[VAR name="dropdownIdx" type="string"][% dropdownIdx = 0; %][/VAR]
|
||||||
|
|
||||||
[VAR name=\"responsabiliIterable\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"responsabili\" /][/SPLIT][/VAR]\r
|
[VAR name="firstItem" type="number"][% firstItem = 0; %][/VAR]
|
||||||
|
[VAR name="secondItem" type="number"][% secondItem = 1; %][/VAR]
|
||||||
[VAR name=\"partecipantiIterable\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"partecipanti\" /][/SPLIT][/VAR]\r
|
|
||||||
|
[WHILE threshold="99"]
|
||||||
\r
|
[CONDITION][% personaIdx < responsabiliCount %][/CONDITION]
|
||||||
|
[DO]
|
||||||
[VAR name=\"responsabiliCount\" type=\"number\"][SIZE_OF varname=\"responsabiliIterable\" /][/VAR]\r
|
[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]
|
||||||
[VAR name=\"partecipantiCount\" type=\"number\"][SIZE_OF varname=\"partecipantiIterable\" /][/VAR]\r
|
|
||||||
|
[!-- Recupera il nominativo --]
|
||||||
\r
|
[VAR name="responsabileNominativo" type="string"][VALUE_OF varname="responsabileIterable" index="firstItem" /][/VAR]
|
||||||
|
|
||||||
[VAR name=\"personaIdx\" type=\"string\"][% personaIdx = 0; %][/VAR]\r
|
[!-- Recupera il codice fiscale --]
|
||||||
|
[VAR name="responsabileResto" type="string"][VALUE_OF varname="responsabileIterable" index="secondItem" /][/VAR]
|
||||||
[VAR name=\"dropdownIdx\" type=\"string\"][% dropdownIdx = 0; %][/VAR]\r
|
[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]
|
||||||
\r
|
|
||||||
|
[% personaIdx = personaIdx + 1; %]
|
||||||
[VAR name=\"firstItem\" type=\"number\"][% firstItem = 0; %][/VAR]\r
|
[% dropdownIdx = dropdownIdx + 1; %]
|
||||||
|
|
||||||
[VAR name=\"secondItem\" type=\"number\"][% secondItem = 1; %][/VAR]\r
|
[!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come "1.0", etc... --]
|
||||||
|
[VAR name="responsabileKeyIterable" type="iterable"][SPLIT regex="\."][% dropdownIdx + "" %][/SPLIT][/VAR]
|
||||||
\r
|
[VAR name="responsabileKey" type="string"][VALUE_OF varname="responsabileKeyIterable" index="firstItem" /][/VAR]
|
||||||
|
|
||||||
[WHILE threshold=\"99\"]\r
|
[% ripartizioniElenco = ripartizioniElenco + "[" + responsabileKey + "] " + responsabileNominativo + " (CF: " + responsabileCodiceFiscale + ")"; %]
|
||||||
|
|
||||||
\ [CONDITION][% personaIdx < responsabiliCount %][/CONDITION]\r
|
[IF]
|
||||||
|
[CONDITION][% personaIdx < responsabiliCount %][/CONDITION]
|
||||||
\ [DO]\r
|
[THEN]
|
||||||
|
[% ripartizioniElenco = ripartizioniElenco + newLine; %]
|
||||||
\ [VAR name=\"responsabileFull\" type=\"string\"][VALUE_OF varname=\"responsabiliIterable\" index=\"personaIdx\" /][/VAR]\r
|
[/THEN]
|
||||||
|
[ELSE IF]
|
||||||
\ [VAR name=\"responsabileIterable\" type=\"iterable\"][SPLIT regex=\", CF: \"][TRIM][VALUE_OF varname=\"responsabileFull\" /][/TRIM][/SPLIT][/VAR]\r
|
[CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION]
|
||||||
|
[THEN]
|
||||||
\r
|
[% ripartizioniElenco = ripartizioniElenco + newLine; %]
|
||||||
|
[/THEN]
|
||||||
\ [!-- Recupera il nominativo --]\r
|
[/ELSE IF]
|
||||||
|
[/IF]
|
||||||
\ [VAR name=\"responsabileNominativo\" type=\"string\"][VALUE_OF varname=\"responsabileIterable\" index=\"firstItem\" /][/VAR]\r
|
[/DO]
|
||||||
|
[/WHILE]
|
||||||
\r
|
|
||||||
|
[IF][CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION][THEN]
|
||||||
\ [!-- Recupera il codice fiscale --]\r
|
[% personaIdx = 0; %]
|
||||||
|
[WHILE threshold="99"]
|
||||||
\ [VAR name=\"responsabileResto\" type=\"string\"][VALUE_OF varname=\"responsabileIterable\" index=\"secondItem\" /][/VAR]\r
|
[CONDITION][% personaIdx < partecipantiCount %][/CONDITION]
|
||||||
|
[DO]
|
||||||
\ [VAR name=\"responsabileRestoIterable\" type=\"iterable\"][SPLIT regex=\", Qualifica: \"][VALUE_OF varname=\"responsabileResto\" /][/SPLIT][/VAR]\r
|
[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]
|
||||||
\ [VAR name=\"responsabileCodiceFiscale\" type=\"string\"][VALUE_OF varname=\"responsabileRestoIterable\" index=\"firstItem\" /][/VAR]\r
|
|
||||||
|
[!-- Recupera il nominativo --]
|
||||||
\r
|
[VAR name="partecipanteNominativo" type="string"][VALUE_OF varname="partecipanteIterable" index="firstItem" /][/VAR]
|
||||||
|
|
||||||
\ [% personaIdx = personaIdx + 1; %]\r
|
[!-- Recupera il codice fiscale --]
|
||||||
|
[VAR name="partecipanteResto" type="string"][VALUE_OF varname="partecipanteIterable" index="secondItem" /][/VAR]
|
||||||
\ [% dropdownIdx = dropdownIdx + 1; %]\r
|
[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]
|
||||||
\r
|
|
||||||
|
[% personaIdx = personaIdx + 1; %]
|
||||||
\ [!-- HACK ignobile per recuperare il numero che altrimenti verrebbe emesso come \"1.0\", etc... --]\r
|
[% dropdownIdx = dropdownIdx + 1; %]
|
||||||
|
|
||||||
\ [VAR name=\"responsabileKeyIterable\" type=\"iterable\"][SPLIT regex=\"\\.\"][% dropdownIdx + \"\" %][/SPLIT][/VAR]\r
|
[!-- 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=\"responsabileKey\" type=\"string\"][VALUE_OF varname=\"responsabileKeyIterable\" index=\"firstItem\" /][/VAR]\r
|
[VAR name="partecipanteKey" type="string"][VALUE_OF varname="partecipanteKeyIterable" index="firstItem" /][/VAR]
|
||||||
|
|
||||||
\r
|
[% ripartizioniElenco = ripartizioniElenco + "[" + partecipanteKey + "] " + partecipanteNominativo + " (CF: " + partecipanteCodiceFiscale + ")"; %]
|
||||||
|
|
||||||
\ [% ripartizioniElenco = ripartizioniElenco + \"[\" + responsabileKey + \"] \" + responsabileNominativo + \" (CF: \" + responsabileCodiceFiscale + \")\"; %]\r
|
[IF]
|
||||||
|
[CONDITION][% personaIdx < partecipantiCount %][/CONDITION]
|
||||||
\r
|
[THEN]
|
||||||
|
[% ripartizioniElenco = ripartizioniElenco + newLine; %]
|
||||||
\ [IF]\r
|
[/THEN]
|
||||||
|
[/IF]
|
||||||
\ [CONDITION][% personaIdx < responsabiliCount %][/CONDITION]\r
|
[/DO]
|
||||||
|
[/WHILE]
|
||||||
\ [THEN]\r
|
[/THEN][/IF]
|
||||||
|
|
||||||
\ [% ripartizioniElenco = ripartizioniElenco + newLine; %]\r
|
[%= ripartizioniElenco %]
|
||||||
|
[/EFTL]
|
||||||
\ [/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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+54
-111
@@ -15,125 +15,68 @@ http:
|
|||||||
value: "19758"
|
value: "19758"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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]
|
||||||
|
<table>
|
||||||
|
<tr><th>Partecipante</th><th>Importo (EUR)</th></tr>
|
||||||
|
[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]
|
||||||
|
<tr><td>[VALUE_OF varname="ripartizioneNominativo" /]</td><td>[VALUE_OF varname="ripartizioneImporto" /]</td></tr>
|
||||||
|
[/FOR]
|
||||||
|
|
||||||
[VAR name=\"newLine\" type=\"string\"][VALUE_OF varname=\"crlf\" /][/VAR]\r
|
[!--
|
||||||
|
[WHILE threshold="99"]
|
||||||
[VAR name=\"ripartizioniNominativiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0005,ID_OBJECT,,#[/TAG][/VAR]\r
|
[CONDITION][% ripartizioneIdx < ripartizioniCount %][/CONDITION]
|
||||||
|
[DO]
|
||||||
[VAR name=\"ripartizioniImportiWithSep\" type=\"string\"][TAG]SCHEMAID,538,COL0002,ID_OBJECT,,#[/TAG][/VAR]\r
|
[VAR name="ripartizioneNominativoFull" type="string"][VALUE_OF varname="ripartizioniNominativiIterable" index="ripartizioneIdx" /][/VAR]
|
||||||
|
[VAR name="ripartizioneImporto" type="string"][VALUE_OF varname="ripartizioniImportiIterable" index="ripartizioneIdx" /][/VAR]
|
||||||
<table>\r
|
[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]
|
||||||
<tr><th>Partecipante</th><th>Importo (EUR)</th></tr>\r
|
[% ripartizioneIdx = ripartizioneIdx + 1; %]
|
||||||
|
[VAR name="ripartizioneKeyIterable" type="iterable"][SPLIT regex="\."][% ripartizioneIdx + "" %][/SPLIT][/VAR]
|
||||||
[IF][CONDITION][IS_NOT_EMPTY varname=\"ripartizioniNominativiWithSep\" /][/CONDITION][THEN]\r
|
[VAR name="ripartizioneKey" type="string"][VALUE_OF varname="ripartizioneKeyIterable" index="firstItem" /][/VAR]
|
||||||
|
<tr><td>[VALUE_OF varname="ripartizioneNominativo" /]</td><td>[VALUE_OF varname="ripartizioneImporto" /]</td></tr>
|
||||||
\ [VAR name=\"ripartizioniNominativiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniNominativiWithSep\" /][/SPLIT][/VAR]\r
|
[/DO]
|
||||||
|
[/WHILE]
|
||||||
\ [VAR name=\"ripartizioniImportiIterable\" type=\"iterable\"][SPLIT regex=\"#\"][VALUE_OF varname=\"ripartizioniImportiWithSep\" /][/SPLIT][/VAR]\r
|
--]
|
||||||
|
[/THEN][/IF]
|
||||||
\ [VAR name=\"ripartizioniCount\" type=\"number\"][SIZE_OF varname=\"ripartizioniNominativiIterable\" /][/VAR]\r
|
</table>
|
||||||
|
[/EFTL]
|
||||||
\ [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
|
|
||||||
|
|
||||||
\ <tr><td>[VALUE_OF varname=\"ripartizioneNominativo\" /]</td><td>[VALUE_OF varname=\"ripartizioneImporto\" /]</td></tr>\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
|
|
||||||
|
|
||||||
<tr><td>[VALUE_OF varname=\"ripartizioneNominativo\" /]</td><td>[VALUE_OF varname=\"ripartizioneImporto\" /]</td></tr>\r
|
|
||||||
|
|
||||||
\ [/DO]\r
|
|
||||||
|
|
||||||
\ [/WHILE]\r
|
|
||||||
|
|
||||||
\ --]\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
</table>\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+49
-94
@@ -13,115 +13,70 @@ http:
|
|||||||
value: "{{elixFormsWsAuthenticationToken}}"
|
value: "{{elixFormsWsAuthenticationToken}}"
|
||||||
- name: x-ef-request-id
|
- name: x-ef-request-id
|
||||||
value: "19758"
|
value: "19758"
|
||||||
|
disabled: true
|
||||||
|
- name: x-ef-request-id
|
||||||
|
value: "23629"
|
||||||
|
disabled: true
|
||||||
|
- name: x-ef-request-id
|
||||||
|
value: "23761"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= "<table><tr><th>Partecipante</th><th>Importo (EUR)</th></tr>" %]
|
||||||
|
|
||||||
[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 = \"<table><tr><th>Partecipante</th><th>Importo (EUR)</th></tr>\"; %][/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
|
[%= "<tr><td>" + ripartizioneNominativo + "</td><td>" %][FORMAT type="number" pattern="#,##0.00"][% ripartizioneImporto %][/FORMAT][%= "</td></tr>" %]
|
||||||
|
[/DO]
|
||||||
|
[/WHILE]
|
||||||
|
[/THEN][/IF]
|
||||||
|
|
||||||
[IF][CONDITION][IS_NOT_EMPTY varname=\"ripartizioniNominativiWithSep\" /][/CONDITION][THEN]\r
|
[%= "</table>" %]
|
||||||
|
[/EFTL]
|
||||||
\ [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 + \"<tr><td>\" + ripartizioneNominativo + \"</td><td>\" + ripartizioneImporto + \"</td></tr>\"; %]\r
|
|
||||||
|
|
||||||
\ [/DO]\r
|
|
||||||
|
|
||||||
\ [/WHILE]\r
|
|
||||||
|
|
||||||
[/THEN][/IF]\r
|
|
||||||
|
|
||||||
[% tabellaRipartizioni = tabellaRipartizioni + \"</table>\"; %]\r
|
|
||||||
|
|
||||||
[%= tabellaRipartizioni %]\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+38
-76
@@ -15,87 +15,49 @@ http:
|
|||||||
value: "19375"
|
value: "19375"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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 (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
[VAR name="elencoPartecipantiDebug" type="string"][% elencoPartecipantiDebug = ""; %][/VAR]
|
||||||
[VAR name=\"elencoPartecipantiDebug\" type=\"string\"][% elencoPartecipantiDebug = \"\"; %][/VAR]\r
|
[VAR name="elencoPartecipantiCompleto" type="string"][% elencoContraentiCompleto = ""; %][/VAR]
|
||||||
|
[VAR name="partecipanti" type="string"][TRIM][TAG]SCHEMAID,542,COL0018,IUQOID, , [/TAG][/TRIM][/VAR]
|
||||||
[VAR name=\"elencoPartecipantiCompleto\" type=\"string\"][% elencoContraentiCompleto = \"\"; %][/VAR]\r
|
[%= "" %]
|
||||||
|
[IF][CONDITION][IS_NOT_EMPTY varname="partecipanti" /][/CONDITION][THEN]
|
||||||
[VAR name=\"partecipanti\" type=\"string\"][TRIM][TAG]SCHEMAID,542,COL0018,IUQOID, , [/TAG][/TRIM][/VAR]\r
|
[VAR name="partecipantiSplit" type="iterable"][SPLIT regex="\n"][VALUE_OF varname="partecipanti" /][/SPLIT][/VAR]
|
||||||
|
[VAR name="partecipantiCount" type="number"][SIZE_OF varname="partecipantiSplit" /][/VAR]
|
||||||
[%= \"\" %]\r
|
[VAR name="partecipanteIdx" type="number"][% partecipanteIdx = 0; %][/VAR]
|
||||||
|
[VAR name="partecipanteNominativoIdx" type="number"][% partecipanteNominativoIdx = 0; %][/VAR]
|
||||||
[IF][CONDITION][IS_NOT_EMPTY varname=\"partecipanti\" /][/CONDITION][THEN]\r
|
[VAR name="partecipanteRestoIdx" type="number"][% partecipanteRestoIdx = 1; %][/VAR]
|
||||||
|
[WHILE threshold="99"][CONDITION][% partecipanteIdx < partecipantiCount %][/CONDITION][DO]
|
||||||
[VAR name=\"partecipantiSplit\" type=\"iterable\"][SPLIT regex=\"\\n\"][VALUE_OF varname=\"partecipanti\" /][/SPLIT][/VAR]\r
|
[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]
|
||||||
[VAR name=\"partecipantiCount\" type=\"number\"][SIZE_OF varname=\"partecipantiSplit\" /][/VAR]\r
|
[!-- Recupera il nominativo --]
|
||||||
|
[VAR name="partecipanteNominativo" type="string"][VALUE_OF varname="partecipanteSplit" index="partecipanteNominativoIdx" /][/VAR]
|
||||||
[VAR name=\"partecipanteIdx\" type=\"number\"][% partecipanteIdx = 0; %][/VAR]\r
|
[!-- Recupera il codice fiscale --]
|
||||||
|
[VAR name="partecipanteResto" type="string"][VALUE_OF varname="partecipanteSplit" index="partecipanteRestoIdx" /][/VAR]
|
||||||
[VAR name=\"partecipanteNominativoIdx\" type=\"number\"][% partecipanteNominativoIdx = 0; %][/VAR]\r
|
[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]
|
||||||
[VAR name=\"partecipanteRestoIdx\" type=\"number\"][% partecipanteRestoIdx = 1; %][/VAR]\r
|
[%= "[" %][FORMAT type="number" pattern="integer"][% partecipanteIdx + 1 %][/FORMAT][%= "] " + partecipanteNominativo + " (CF: " + partecipanteCodiceFiscale + ")" %]
|
||||||
|
[% partecipanteIdx = partecipanteIdx + 1; %]
|
||||||
[WHILE threshold=\"99\"][CONDITION][% partecipanteIdx < partecipantiCount %][/CONDITION][DO]\r
|
[/DO][/WHILE]
|
||||||
|
[/THEN][/IF]
|
||||||
[VAR name=\"partecipanteFull\" type=\"string\"][VALUE_OF varname=\"partecipantiSplit\" index=\"partecipanteIdx\" /][/VAR]\r
|
[/EFTL]
|
||||||
|
`);
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+50
@@ -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
|
||||||
+100
@@ -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" /]
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||||
|
<style>
|
||||||
|
.intestazione { padding: 0 0 10px 0; margin: 0; font-family: Arial, Sans-serif; font-size: 16px; font-weight: bold; color: #222; }
|
||||||
|
.warning { padding: 15px; border: 1px solid transparent; border-radius: 4px; background-position: 15px 15px; color: #8A6D3B; background-color: #FCF8E3; border-color: #FAEBCC; }
|
||||||
|
.riepilogo { width: 100%; font-family: Arial, Sans-serif; border: 1px solid #ccc; border-width: 1px; background-color: #fff; }
|
||||||
|
.etichetta { padding: 0 1em 10px 0; font-family: Arial, Sans-serif; font-size: 13px; font-style: normal; color: #888; white-space: nowrap; vertical-align: top; }
|
||||||
|
.valore { padding-bottom: 10px; font-family: Arial, Sans-serif; font-size: 13px; color: #222; vertical-align: top; }
|
||||||
|
.footer { background-color: #f6f6f6; color: #888; border-top: 1px solid #ccc; font-family: Arial, Sans-serif; font-size: 11px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table cellspacing="0" cellpadding="8" border="0" summary="" class="riepilogo"><tbody><tr><td><div style="padding: 2px;">
|
||||||
|
|
||||||
|
<h3 class="intestazione">Notifica domanda inoltrata di Proposta Ripartizione Utili / Compensi</h3>
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0"><tbody>
|
||||||
|
<tr><td colspan="2" class="valore">
|
||||||
|
<div class="warning">È necessario compilare la DSAN collegata all'istanza del modulo "Ripartizione Utili / Compensi - Presentazione Proposta" i cui dati sono riportati nel seguito!</div>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td colspan="2" class="valore">Riepilogo dei dati della Proposta</td></tr>
|
||||||
|
<tr><td colspan="2" class="valore"></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Domanda n.</div></td>
|
||||||
|
<td class="valore">[%= requestId %]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Numero ricevuta</div></td>
|
||||||
|
<td class="valore">[TAG]SCHEMAID,17,COL0027,IUQOID, , [/TAG]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Responsabile Scientifico proponente</div></td>
|
||||||
|
<td class="valore">[TAG]GETVALUEBYTAG,RSP_TITOLO,REQUEST,ID_OBJECT[/TAG] [TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,ID_OBJECT[/TAG] [TAG]GETVALUEBYTAG,RSP_NOME,REQUEST,ID_OBJECT[/TAG]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Codice contratto</div></td>
|
||||||
|
<td class="valore">[TAG]GETVALUEBYTAG,ID_CONTRATTO,REQUEST,ID_OBJECT[/TAG]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Data di inoltro</div></td>
|
||||||
|
<td class="valore">[TAG]SCHEMAID,17,COL0013,IUQOID, , [/TAG]</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="etichetta"><div>Modulo</div></td>
|
||||||
|
<td class="valore">Ripartizione Utili / Compensi - Presentazione Proposta</td>
|
||||||
|
</tr>
|
||||||
|
<tr><td colspan="2" class="valore"><br/>Collegati al modulo <a href="https://procedure.unipr.it/rwe2/module_preview.jsp?MODULE_TAG=RIPARTIZIONE_CCT_DSAN">Ripartizione Utili / Compensi - DSAN</a> per compilare e inoltrare la domanda.</td></tr>
|
||||||
|
</tbody></table>
|
||||||
|
|
||||||
|
</div></td></tr></tbody></table>
|
||||||
|
<table cellspacing="0" cellpadding="8" border="0" summary="" class="riepilogo"><tbody><tr><td class="footer">
|
||||||
|
Questo messaggio è stato inoltrato automaticamente dal sistema elixForms. Si prega di <span style="text-decoration: underline">non rispondere via email</span>.
|
||||||
|
<br>
|
||||||
|
Per eventuali richieste di supporto, collegarsi all'area utente e utilizzare il servizio di " contatta il supporto".
|
||||||
|
</td></tr></tbody></table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
[/EFTL]
|
||||||
|
`);
|
||||||
|
|
||||||
|
settings:
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
followRedirects: true
|
||||||
|
maxRedirects: 5
|
||||||
+44
@@ -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
|
||||||
+3
-6
@@ -32,8 +32,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="newline"][% newline = ""; %][/VAR]
|
[VAR name="newline"][% newline = ""; %][/VAR]
|
||||||
[VAR name="codiceFiscaleProponente"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
[VAR name="codiceFiscaleProponente"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
@@ -54,11 +55,7 @@ runtime:
|
|||||||
[%= newline %]
|
[%= newline %]
|
||||||
[%= ripartizioniCount %]
|
[%= ripartizioniCount %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+23
-37
@@ -13,51 +13,37 @@ http:
|
|||||||
value: "{{elixFormsWsAuthenticationToken}}"
|
value: "{{elixFormsWsAuthenticationToken}}"
|
||||||
- name: x-ef-request-id
|
- name: x-ef-request-id
|
||||||
value: "19758"
|
value: "19758"
|
||||||
|
disabled: true
|
||||||
|
- name: x-ef-request-id
|
||||||
|
value: "23761"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= ripartizioniCount %]
|
||||||
|
[%= crlf %]
|
||||||
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
|
[%= ripartizioniIterable %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+68
@@ -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
|
||||||
+3
-6
@@ -30,8 +30,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[!-- Must be defined in EftlSolver attribute! --]
|
[!-- Must be defined in EftlSolver attribute! --]
|
||||||
[VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR]
|
[VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR]
|
||||||
@@ -75,11 +76,7 @@ runtime:
|
|||||||
[%= newLine %]
|
[%= newLine %]
|
||||||
[%= responsabiliScientifici + newLine + partecipanti %]
|
[%= responsabiliScientifici + newLine + partecipanti %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+19
-38
@@ -15,49 +15,30 @@ http:
|
|||||||
value: "19758"
|
value: "19758"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"crlf": "\r\n"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"crlf\": \"\\r\\n\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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 (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
[VAR name="rspTitolo" type="string"][TAG]GETVALUEBYTAG,RSP_TITOLO,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
[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]
|
||||||
|
[VAR name="rspNome" type="string"][TAG]GETVALUEBYTAG,RSP_NOME,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
[VAR name=\"rspCognome\" type=\"string\"][TAG]GETVALUEBYTAG,RSP_COGNOME,REQUEST,IUQOID[/TAG][/VAR]\r
|
[%= rspTitolo + " " + rspCognome + " " rspNome %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+6
-2
@@ -19,6 +19,9 @@ http:
|
|||||||
disabled: true
|
disabled: true
|
||||||
- name: x-ef-request-id
|
- name: x-ef-request-id
|
||||||
value: "23663"
|
value: "23663"
|
||||||
|
disabled: true
|
||||||
|
- name: x-ef-request-id
|
||||||
|
value: "23698"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: |-
|
data: |-
|
||||||
@@ -36,8 +39,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
|
||||||
[VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
[VAR name="codiceFiscaleRichiedente" type="string"][TAG]GETVALUEBYTAG,RICHIEDENTE_CODFIS,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
@@ -60,7 +64,7 @@ runtime:
|
|||||||
|
|
||||||
[%= importoRichiedente %]
|
[%= importoRichiedente %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`));
|
`);
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+3
-2
@@ -35,8 +35,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
|
|
||||||
[VAR name="lastUpdatedNominativo" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR]
|
[VAR name="lastUpdatedNominativo" type="string"][TAG]GETVALUEBYTAG,PARTECIPANTE,REQUEST,IUQOID,UPDATED_LAST[/TAG][/VAR]
|
||||||
@@ -51,7 +52,7 @@ runtime:
|
|||||||
|
|
||||||
[%= lastUpdatedNominativoCF + ":" + lastUpdatedImporto %]
|
[%= lastUpdatedNominativoCF + ":" + lastUpdatedImporto %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`));
|
`);
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+3
-6
@@ -36,8 +36,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[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_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]
|
[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]
|
[FORMAT type="number" pattern="#,##0.00"][% QuotaAteneo %][/FORMAT]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+3
-6
@@ -42,8 +42,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="ceiling" type="string"][TAG]GETVALUEBYTAG,CORRISPETTIVO_CEILING,REQUEST,IUQOID[/TAG][/VAR]
|
[VAR name="ceiling" type="string"][TAG]GETVALUEBYTAG,CORRISPETTIVO_CEILING,REQUEST,IUQOID[/TAG][/VAR]
|
||||||
[!-- HACK per numeri corretti!!!1! --]
|
[!-- HACK per numeri corretti!!!1! --]
|
||||||
@@ -79,11 +80,7 @@ runtime:
|
|||||||
|
|
||||||
[%= ritenuta2maxMessage %]
|
[%= ritenuta2maxMessage %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+48
-65
@@ -15,119 +15,102 @@ http:
|
|||||||
value: "16204"
|
value: "16204"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"itemCodiceContratto": "CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01"
|
||||||
\ \"lang\": \"IT\",\r
|
}
|
||||||
|
}
|
||||||
\ \"itemCodiceContratto\": \"CRIS_G_25_CCS_IST_RA_UNIVERSITÀPOLITECNICADELL_01\"\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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]
|
||||||
|
|
||||||
<html>\r
|
|
||||||
|
|
||||||
<ul>\r
|
<html>
|
||||||
|
|
||||||
<li>[%= codiceContratto %]</li>\r
|
<ul>
|
||||||
|
|
||||||
<li>[%= codiceContrattoSplit %]</li>\r
|
<li>[%= codiceContratto %]</li>
|
||||||
|
|
||||||
<li>[%= debug %]</li>\r
|
<li>[%= codiceContrattoSplit %]</li>
|
||||||
|
|
||||||
</ul>\r
|
<li>[%= debug %]</li>
|
||||||
|
|
||||||
</html>\r
|
</ul>
|
||||||
|
|
||||||
[/EFTL]\r
|
</html>
|
||||||
|
|
||||||
`;\r
|
[/EFTL]
|
||||||
|
|
||||||
\r
|
`);"
|
||||||
|
|
||||||
console.log(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+81
-164
@@ -15,177 +15,94 @@ http:
|
|||||||
value: "8463"
|
value: "8463"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"docs": [
|
||||||
\ \"lang\": \"IT\",\r
|
{
|
||||||
|
"name": "doc1",
|
||||||
\ \"docs\": [\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc1\",\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"quantity\": 3,\r
|
"price": 213.3
|
||||||
|
},
|
||||||
\ \"price\": 123.3\r
|
{
|
||||||
|
"name": "doc3",
|
||||||
\ },\r
|
"quantity": 10,
|
||||||
|
"price": 321.3
|
||||||
\ {\r
|
}
|
||||||
|
],
|
||||||
\ \"name\": \"doc2\",\r
|
"docsAsEntities": [
|
||||||
|
{
|
||||||
\ \"quantity\": 5,\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"price\": 213.3\r
|
"name": "doc1",
|
||||||
|
"quantity": 3,
|
||||||
\ },\r
|
"price": 123.3
|
||||||
|
}
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc3\",\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"quantity\": 10,\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"price\": 321.3\r
|
"price": 213.3
|
||||||
|
}
|
||||||
\ }\r
|
},
|
||||||
|
{
|
||||||
\ ],\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"docsAsEntities\": [\r
|
"name": "doc3",
|
||||||
|
"quantity": 10,
|
||||||
\ {\r
|
"price": 321.3
|
||||||
|
}
|
||||||
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
|
}
|
||||||
|
],
|
||||||
\ \"eftlEntity\": {\r
|
"singleEntity": {
|
||||||
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
\ \"name\": \"doc1\",\r
|
"eftlEntity": {
|
||||||
|
"name": "doc1",
|
||||||
\ \"quantity\": 3,\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ \"price\": 123.3\r
|
}
|
||||||
|
},
|
||||||
\ }\r
|
"simpleList": [
|
||||||
|
"s1",
|
||||||
\ },\r
|
"s2",
|
||||||
|
"s3"
|
||||||
\ {\r
|
],
|
||||||
|
"docsSize": 3
|
||||||
\ \"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
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- 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
|
[%= isEconomico %]
|
||||||
|
[/EFTL]
|
||||||
[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);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
+3
-6
@@ -42,8 +42,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="C_B3" type="number"][TAG]GETVALUEBYTAG,C_B3,REQUEST,IUQOID[/TAG][/VAR]
|
[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]
|
[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]
|
[FORMAT type="number" pattern="#,##0.00"][% D2 %][/FORMAT]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`)
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -15,333 +15,172 @@ http:
|
|||||||
value: "7792"
|
value: "7792"
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
|
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
|
||||||
|
"userContext": {
|
||||||
\ \"userContext\": {\r
|
"lang": "IT",
|
||||||
|
"docs": [
|
||||||
\ \"lang\": \"IT\",\r
|
{
|
||||||
|
"name": "doc1",
|
||||||
\ \"docs\": [\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc1\",\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"quantity\": 3,\r
|
"price": 213.3
|
||||||
|
},
|
||||||
\ \"price\": 123.3\r
|
{
|
||||||
|
"name": "doc3",
|
||||||
\ },\r
|
"quantity": 10,
|
||||||
|
"price": 321.3
|
||||||
\ {\r
|
}
|
||||||
|
],
|
||||||
\ \"name\": \"doc2\",\r
|
"docsAsEntities": [
|
||||||
|
{
|
||||||
\ \"quantity\": 5,\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"price\": 213.3\r
|
"name": "doc1",
|
||||||
|
"quantity": 3,
|
||||||
\ },\r
|
"price": 123.3
|
||||||
|
}
|
||||||
\ {\r
|
},
|
||||||
|
{
|
||||||
\ \"name\": \"doc3\",\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"quantity\": 10,\r
|
"name": "doc2",
|
||||||
|
"quantity": 5,
|
||||||
\ \"price\": 321.3\r
|
"price": 213.3
|
||||||
|
}
|
||||||
\ }\r
|
},
|
||||||
|
{
|
||||||
\ ],\r
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
|
"eftlEntity": {
|
||||||
\ \"docsAsEntities\": [\r
|
"name": "doc3",
|
||||||
|
"quantity": 10,
|
||||||
\ {\r
|
"price": 321.3
|
||||||
|
}
|
||||||
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
|
}
|
||||||
|
],
|
||||||
\ \"eftlEntity\": {\r
|
"singleEntity": {
|
||||||
|
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
|
||||||
\ \"name\": \"doc1\",\r
|
"eftlEntity": {
|
||||||
|
"name": "doc1",
|
||||||
\ \"quantity\": 3,\r
|
"quantity": 3,
|
||||||
|
"price": 123.3
|
||||||
\ \"price\": 123.3\r
|
}
|
||||||
|
},
|
||||||
\ }\r
|
"simpleList": [
|
||||||
|
"s1",
|
||||||
\ },\r
|
"s2",
|
||||||
|
"s3"
|
||||||
\ {\r
|
],
|
||||||
|
"docsSize": 3
|
||||||
\ \"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
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
var eftlDocumentToBeProcessed = `\r
|
// Copy-pasta your EFTL document below inside the template literals (`)
|
||||||
|
prepareEftlDocument(String.raw`
|
||||||
<html>\r
|
<html>
|
||||||
|
<!-- codice NON processato da EFTL -->
|
||||||
<!-- codice NON processato da EFTL -->\r
|
<head>
|
||||||
|
</head>
|
||||||
<head>\r
|
<body style="font-family: Tahoma, Verdana, Segoe, sans-serif; font-size: 12px; fontstyle: normal; line-height: 19.6px;">
|
||||||
|
<p style="text-align: center; font-size: 13pt; padding-top: 5pt;">
|
||||||
</head>\r
|
<a href="#ITALIANO">VERSIONE ITALIANA</a></p>
|
||||||
|
<p style="padding-bottom: 5pt;"> </p>
|
||||||
<body style=\"font-family: Tahoma, Verdana, Segoe, sans-serif; font-size: 12px; fontstyle: normal; line-height: 19.6px;\">\r
|
<h2 align="center"><strong>[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]</strong></h2>
|
||||||
|
<p style="text-align: center; font-size: 14pt; padding-top: 25pt;">Tipologia: <strong>[TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]</strong></p>
|
||||||
<p style=\"text-align: center; font-size: 13pt; padding-top: 5pt;\">\r
|
<p style="text-align: center; font-size: 14pt; padding-top: 25pt;">Corrispettivo: <strong>[TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]</strong></p>
|
||||||
|
<p style="text-align: center; font-size: 14pt; padding-top: 5pt;">Decreto del Rettore</p>
|
||||||
<a href=\"#ITALIANO\">VERSIONE ITALIANA</a></p>\r
|
<hr />
|
||||||
|
|
||||||
<p style=\"padding-bottom: 5pt;\"> </p>\r
|
<!-- Questo invece è processato -->
|
||||||
|
[EFTL]
|
||||||
<h2 align=\"center\"><strong>[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]</strong></h2>\r
|
<h2 align="center"><strong>[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]</strong></h2>
|
||||||
|
<p style="text-align: center; font-size: 14pt; padding-top: 25pt;">Tipologia: <strong>[TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]</strong></p>
|
||||||
<p style=\"text-align: center; font-size: 14pt; padding-top: 25pt;\">Tipologia: <strong>[TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]</strong></p>\r
|
<p style="text-align: center; font-size: 14pt; padding-top: 25pt;">Corrispettivo: <strong>[TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]</strong></p>
|
||||||
|
[/EFTL]
|
||||||
<p style=\"text-align: center; font-size: 14pt; padding-top: 25pt;\">Corrispettivo: <strong>[TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]</strong></p>\r
|
|
||||||
|
...
|
||||||
<p style=\"text-align: center; font-size: 14pt; padding-top: 5pt;\">Decreto del Rettore</p>\r
|
|
||||||
|
[eftl] [!-- Inizio blocco EFTL --]
|
||||||
<hr />\r
|
[!-- Blocco di codice riportato in output come scrittura non EFTL --]
|
||||||
|
<tag>testo tra tag html</tag> [!-- Blocco di codice riportato in output come scrittura non EFTL --]
|
||||||
\r
|
testo senza tags
|
||||||
|
[VAR name="i" type="number"] [!-- Inizio blocco VAR per la definizione di una variabile --]
|
||||||
<!-- Questo invece è processato -->\r
|
[% i = 0; %] [!-- Blocco di assegnazione valore ad una variabile --]
|
||||||
|
[/VAR]
|
||||||
[EFTL]\r
|
<p>un po' di testo che verrà riportato</p> [!-- Blocco di codice riportato in output come scrittura non EFTL --]
|
||||||
|
[!-- Inizio blocco if/then/elese --]
|
||||||
<h2 align=\"center\"><strong>[TAG]SCHEMAID,341,COL0005,IUQOID, , [/TAG]</strong></h2>\r
|
[IF]
|
||||||
|
[CONDITION] [!-- Condizione del blocco IF da valutare: risultato aspettato di tipo booleano --]
|
||||||
<p style=\"text-align: center; font-size: 14pt; padding-top: 25pt;\">Tipologia: <strong>[TAG]SCHEMAID,341,COL0003,IUQOID, , [/TAG]</strong></p>\r
|
[% lang == "IT" %]
|
||||||
|
[/CONDITION]
|
||||||
<p style=\"text-align: center; font-size: 14pt; padding-top: 25pt;\">Corrispettivo: <strong>[TAG]SCHEMAID,341,COL0009,IUQOID, , [/TAG]</strong></p>\r
|
[THEN] [!-- Se blocco condizione true --]
|
||||||
|
|
||||||
[/EFTL]\r
|
[FOR varName="doc" iterable="docs"]
|
||||||
|
doc: [%= doc %]
|
||||||
\r
|
[/FOR]
|
||||||
|
|
||||||
...\r
|
[!-- Condizione Blocco while --]
|
||||||
|
[WHILE]
|
||||||
\r
|
[CONDITION] [% docs != null && i < docsSize %] [/CONDITION]
|
||||||
|
[DO] [!-- Blocco while da eseguire se condizione è "true" --]
|
||||||
[eftl] [!-- Inizio blocco EFTL --]\r
|
<p> value of var "i" is: [%= i %]</p>
|
||||||
|
[FOR varName="doc" iterable="docs"] [!-- Blocco FOR di iterazione --]
|
||||||
[!-- Blocco di codice riportato in output come scrittura non EFTL --]\r
|
doc corrente: [%= doc %] [!-- Blocco esposizione del valore della variabile --]
|
||||||
|
<strong> Sto ciclando sul documento con nome e prezzo </strong>
|
||||||
<tag>testo tra tag html</tag> [!-- Blocco di codice riportato in output come scrittura non EFTL --]\r
|
|
||||||
|
[/FOR]
|
||||||
testo senza tags\r
|
[% i = i + 1; %] [!-- Blocco di assegnazione valore ad una variabile --]
|
||||||
|
<p> value of var "i" after increment is: [%= i %]</p>
|
||||||
[VAR name=\"i\" type=\"number\"] [!-- Inizio blocco VAR per la definizione di una variabile --]\r
|
[/DO]
|
||||||
|
[/WHILE]
|
||||||
[% i = 0; %] [!-- Blocco di assegnazione valore ad una variabile --]\r
|
[/THEN]
|
||||||
|
[ELSE] [!-- Se blocco condizione false --]
|
||||||
[/VAR]\r
|
<strong>fixed-time RESEARCH ASSISTANT CONTRACT/S for COLLABORATION at RESEARCH ACTIVITY</strong>
|
||||||
|
[/ELSE]
|
||||||
<p>un po' di testo che verrà riportato</p> [!-- Blocco di codice riportato in output come scrittura non EFTL --]\r
|
[/IF]
|
||||||
|
[!-- Fine blocco EFTL --]
|
||||||
[!-- Inizio blocco if/then/elese --]\r
|
[/EFTL]
|
||||||
|
<!-- codice NON processato da EFTL -->
|
||||||
[IF]\r
|
|
||||||
|
...
|
||||||
[CONDITION] [!-- Condizione del blocco IF da valutare: risultato aspettato di tipo booleano --]\r
|
|
||||||
|
<p>testo tra un documento blocco EFTL© e l'altro</p>
|
||||||
[% lang == \"IT\" %]\r
|
|
||||||
|
...
|
||||||
[/CONDITION]\r
|
|
||||||
|
[EFTL] [!-- Inizio 2° blocco EFTL --]
|
||||||
[THEN] [!-- Se blocco condizione true --]\r
|
<ol>
|
||||||
|
<li>
|
||||||
\r
|
Decreto del rettore del [TAG]SCHEMAID,202,COL0030,ID_OBJECT, , [/TAG] nr. [TAG]SCHEMAID,202,COL0022,ID_OBJECT, , [/TAG]
|
||||||
|
</li>
|
||||||
[FOR varName=\"doc\" iterable=\"docs\"]\r
|
<li>
|
||||||
|
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]
|
||||||
doc: [%= doc %]\r
|
</li>
|
||||||
|
</ol>
|
||||||
[/FOR]\r
|
<tag>altro tag</tag>
|
||||||
|
[!-- Fine 2° blocco EFTL --]
|
||||||
\r
|
[/EFTL]
|
||||||
|
<!-- codice NON processato da EFTL -->
|
||||||
[!-- Condizione Blocco while --]\r
|
<p align="center">
|
||||||
|
<em>Resto del documento...</em>
|
||||||
[WHILE]\r
|
</p>
|
||||||
|
<p> </p>
|
||||||
[CONDITION] [% docs != null && i < docsSize %] [/CONDITION]\r
|
<p>The Rector</p>
|
||||||
|
<p>Digitally signed</p>
|
||||||
[DO] [!-- Blocco while da eseguire se condizione è \"true\" --]\r
|
</body>
|
||||||
|
</html>
|
||||||
<p> value of var \"i\" is: [%= i %]</p>\r
|
`);
|
||||||
|
|
||||||
[FOR varName=\"doc\" iterable=\"docs\"] [!-- Blocco FOR di iterazione --]\r
|
|
||||||
|
|
||||||
doc corrente: [%= doc %] [!-- Blocco esposizione del valore della variabile --]\r
|
|
||||||
|
|
||||||
<strong> Sto ciclando sul documento con nome e prezzo </strong>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[/FOR]\r
|
|
||||||
|
|
||||||
[% i = i + 1; %] [!-- Blocco di assegnazione valore ad una variabile --]\r
|
|
||||||
|
|
||||||
<p> value of var \"i\" after increment is: [%= i %]</p>\r
|
|
||||||
|
|
||||||
[/DO]\r
|
|
||||||
|
|
||||||
[/WHILE]\r
|
|
||||||
|
|
||||||
[/THEN]\r
|
|
||||||
|
|
||||||
[ELSE] [!-- Se blocco condizione false --]\r
|
|
||||||
|
|
||||||
<strong>fixed-time RESEARCH ASSISTANT CONTRACT/S for COLLABORATION at RESEARCH ACTIVITY</strong>\r
|
|
||||||
|
|
||||||
[/ELSE]\r
|
|
||||||
|
|
||||||
[/IF]\r
|
|
||||||
|
|
||||||
[!-- Fine blocco EFTL --]\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
<!-- codice NON processato da EFTL -->\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
...\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
<p>testo tra un documento blocco EFTL© e l'altro</p>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
...\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
[EFTL] [!-- Inizio 2° blocco EFTL --]\r
|
|
||||||
|
|
||||||
<ol>\r
|
|
||||||
|
|
||||||
<li>\r
|
|
||||||
|
|
||||||
Decreto del rettore del [TAG]SCHEMAID,202,COL0030,ID_OBJECT, , [/TAG] nr. [TAG]SCHEMAID,202,COL0022,ID_OBJECT, , [/TAG]\r
|
|
||||||
|
|
||||||
</li>\r
|
|
||||||
|
|
||||||
<li>\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
|
|
||||||
|
|
||||||
</li>\r
|
|
||||||
|
|
||||||
</ol>\r
|
|
||||||
|
|
||||||
<tag>altro tag</tag>\r
|
|
||||||
|
|
||||||
[!-- Fine 2° blocco EFTL --]\r
|
|
||||||
|
|
||||||
[/EFTL]\r
|
|
||||||
|
|
||||||
<!-- codice NON processato da EFTL -->\r
|
|
||||||
|
|
||||||
<p align=\"center\">\r
|
|
||||||
|
|
||||||
<em>Resto del documento...</em>\r
|
|
||||||
|
|
||||||
</p>\r
|
|
||||||
|
|
||||||
<p> </p>\r
|
|
||||||
|
|
||||||
<p>The Rector</p>\r
|
|
||||||
|
|
||||||
<p>Digitally signed</p>\r
|
|
||||||
|
|
||||||
</body>\r
|
|
||||||
|
|
||||||
</html>\r
|
|
||||||
|
|
||||||
`;\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="json" type="string"][% json = ""; %][/VAR]
|
[VAR name="json" type="string"][% json = ""; %][/VAR]
|
||||||
|
|
||||||
@@ -48,11 +49,7 @@ runtime:
|
|||||||
|
|
||||||
[%= json %]
|
[%= json %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -48,8 +48,9 @@ runtime:
|
|||||||
scripts:
|
scripts:
|
||||||
- type: before-request
|
- type: before-request
|
||||||
code: |-
|
code: |-
|
||||||
|
const { prepareEftlDocument } = require("./elixFormsJs.js")
|
||||||
// Copy-pasta your EFTL document below inside the template literals (`)
|
// 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" /]
|
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
|
||||||
[VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR]
|
[VAR name="newLine" type="string"][VALUE_OF varname="crlf" /][/VAR]
|
||||||
[VAR name="stringSeparated" type="string"][% stringSeparated = "xyz#abc#def"; %][/VAR]
|
[VAR name="stringSeparated" type="string"][% stringSeparated = "xyz#abc#def"; %][/VAR]
|
||||||
@@ -76,11 +77,7 @@ runtime:
|
|||||||
[%= newLine %]
|
[%= newLine %]
|
||||||
[%= complex %]
|
[%= complex %]
|
||||||
[/EFTL]
|
[/EFTL]
|
||||||
`;
|
`);
|
||||||
|
|
||||||
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);
|
|
||||||
|
|
||||||
bru.setVar("elixBase64EftlDocument", base64EncodedDocument);
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
info:
|
info:
|
||||||
name: EFTL processing
|
name: EFTL processing
|
||||||
type: folder
|
type: folder
|
||||||
seq: 10
|
seq: 1
|
||||||
|
|
||||||
request:
|
request:
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|||||||
@@ -49,53 +49,31 @@ http:
|
|||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- type: after-response
|
||||||
code: "var template = `\r
|
code: |-
|
||||||
|
var template = `
|
||||||
|
<style type="text/css">
|
||||||
|
.code {
|
||||||
|
font-size:14px;
|
||||||
|
background-color:#ffffff;
|
||||||
|
color:#333333;
|
||||||
|
width:100%;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<style type=\"text/css\">\r
|
<pre class="code">
|
||||||
|
{{response.decodedDocument}}
|
||||||
|
</pre>
|
||||||
|
`;
|
||||||
|
|
||||||
\ .code {\r
|
function constructVisualizerPayload() {
|
||||||
|
var response = res.getBody();
|
||||||
|
var decodedDocument = atob(response.value.requestDocument.documentBase64);
|
||||||
|
response.decodedDocument = decodedDocument;
|
||||||
|
return { response: response };
|
||||||
|
}
|
||||||
|
|
||||||
\ font-size:14px;\r
|
// pm.visualizer.set(template, constructVisualizerPayload());
|
||||||
|
|
||||||
\ background-color:#ffffff;\r
|
|
||||||
|
|
||||||
\ color:#333333;\r
|
|
||||||
|
|
||||||
\ width:100%;\r
|
|
||||||
|
|
||||||
\ padding: 1em;\r
|
|
||||||
|
|
||||||
\ }\r
|
|
||||||
|
|
||||||
</style>\r
|
|
||||||
|
|
||||||
\r
|
|
||||||
|
|
||||||
<pre class=\"code\">\r
|
|
||||||
|
|
||||||
{{response.decodedDocument}}\r
|
|
||||||
|
|
||||||
</pre>\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());"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -27,73 +27,41 @@ http:
|
|||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- 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
|
// Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)
|
||||||
|
if (binaryColumns.length > 0) {
|
||||||
\ });\r
|
console.warn("Allegati trovati:", binaryColumns);
|
||||||
|
}
|
||||||
\ } 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
|
|
||||||
|
|
||||||
}"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -27,78 +27,49 @@ http:
|
|||||||
type: path
|
type: path
|
||||||
body:
|
body:
|
||||||
type: form-urlencoded
|
type: form-urlencoded
|
||||||
|
data:
|
||||||
|
- name: ""
|
||||||
|
value: ""
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- 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
|
// Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)
|
||||||
|
if (binaryColumns.length > 0) {
|
||||||
\ });\r
|
console.warn("Allegati trovati:", binaryColumns);
|
||||||
|
}
|
||||||
\ } 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
|
|
||||||
|
|
||||||
}"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -32,73 +32,41 @@ http:
|
|||||||
runtime:
|
runtime:
|
||||||
scripts:
|
scripts:
|
||||||
- type: after-response
|
- 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
|
// Stampa i risultati solo se ne abbiamo trovati (bisogna abilitare la visualizzazione dei Warning nella console Postman)
|
||||||
|
if (binaryColumns.length > 0) {
|
||||||
\ });\r
|
console.warn("Allegati trovati:", binaryColumns);
|
||||||
|
}
|
||||||
\ } 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
|
|
||||||
|
|
||||||
}"
|
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
encodeUrl: true
|
encodeUrl: true
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ http:
|
|||||||
description: id dell'istanza eF
|
description: id dell'istanza eF
|
||||||
body:
|
body:
|
||||||
type: form-urlencoded
|
type: form-urlencoded
|
||||||
|
data:
|
||||||
|
- name: ""
|
||||||
|
value: ""
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
|||||||
@@ -13,29 +13,19 @@ http:
|
|||||||
value: XMLHttpRequest
|
value: XMLHttpRequest
|
||||||
body:
|
body:
|
||||||
type: json
|
type: json
|
||||||
data: "{\r
|
data: |-
|
||||||
|
{
|
||||||
\ \"iss\": \"servizio-cittadino-attivo\",\r
|
"iss": "servizio-cittadino-attivo",
|
||||||
|
"sub": "mariorossi",
|
||||||
\ \"sub\": \"mariorossi\",\r
|
"info": {
|
||||||
|
"https://www.elixforms.it/name": "Mario",
|
||||||
\ \"info\": {\r
|
"https://www.elixforms.it/surname": "Rossi",
|
||||||
|
"https://www.elixforms.it/email": "mario.rossi@example.org",
|
||||||
\ \"https://www.elixforms.it/name\": \"Mario\",\r
|
"https://www.elixforms.it/fiscal_code": "XXX",
|
||||||
|
"https://www.elixforms.it/login_date": "2023-08-09T11:31:30Z[UTC]",
|
||||||
\ \"https://www.elixforms.it/surname\": \"Rossi\",\r
|
"https://www.elixforms.it/login_receipt": "SPIDlogin 0101001029"
|
||||||
|
}
|
||||||
\ \"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
|
|
||||||
|
|
||||||
}"
|
|
||||||
auth:
|
auth:
|
||||||
type: apikey
|
type: apikey
|
||||||
key: x-api-key
|
key: x-api-key
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ function visualize(res) {
|
|||||||
console.log(response.decodedDocument);
|
console.log(response.decodedDocument);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function prepareEftlDocument(doc) {
|
||||||
|
bru.setVar("elixBase64EftlDocument", btoa(doc));
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
visualize
|
visualize,
|
||||||
|
prepareEftlDocument
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user