Files
api-collections/collections/elixForms API v2/EFTL processing/CCT - Liquidazione Compensi/Proposta/Elenco contraenti formattati.yml
T

134 lines
5.1 KiB
YAML

info:
name: Elenco contraenti formattati
type: http
seq: 13
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: "8760"
body:
type: json
data: |-
{
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
"userContext": {
"lang": "IT",
"docs": [
{
"name": "doc1",
"quantity": 3,
"price": 123.3
},
{
"name": "doc2",
"quantity": 5,
"price": 213.3
},
{
"name": "doc3",
"quantity": 10,
"price": 321.3
}
],
"docsAsEntities": [
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc2",
"quantity": 5,
"price": 213.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc3",
"quantity": 10,
"price": 321.3
}
}
],
"singleEntity": {
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
"simpleList": [
"s1",
"s2",
"s3"
],
"docsSize": 3
}
}
auth: inherit
runtime:
scripts:
- type: before-request
code: |-
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 name="elencoContraentiCompleto" type="string"][% elencoContraentiCompleto = ""; %][/VAR]
[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]
[!-- 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; %]
[!-- 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="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]
[%= elencoContraentiCompleto %]
[/EFTL]
`);
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5