Interfacce utente

Autenticazione

Method

URL

DM1104

DPR462

DPR162

POST

/api/Actors/auth

Descrizione

Questa interfaccia, in caso di successo, avvia la sessione identificata da un token che sarà da restituire per tutte le successive chiamate richiedenti autenticazione. Restituisce anche le informazioni di base dell’utente loggato.

Parametri in input

Field Name

Required

Descrizione

Type

email

Si

Email utente

string

password

Si

Password utente

string

appSystem

Si

Nome applicativo client

string

appVersionCode

Si

Codice versione applicativa client

string

Esempio di risposta positiva

{
    "status": 0,
    "errorCode": null,
    "errorMessage": [],
    "response": {
        "actor": {
            "id": 45,
            "companyName": "ing. Paolo Lauri",
            "piva": "07531111008",
            "cf": "LRAPLA72P29H501C",
            "iban": "",
            "address": "Viale Tito Boccuccia, 12/A",
            "zipcode": "00033",
            "cityId": 2072,
            "provinceId": 42,
            "condo": 0,
            "trader": 0,
            "customer": 0,
            "website": "http://www.ipisrl.it",
            "email": "paolo.lauri@ipisrl.it",
            "pec": "paolo.lauri@pec.ording.roma.it",
            "tel": "3203457940",
            "fax": "069574171",
            "lrName": "",
            "lrSurname": "",
            "lrBorAt": null,
            "lrBornCity": "",
            "lrAddress": "",
            "lrCity": "",
            "lrZipcode": "",
            "lrProvince": "",
            "lrEmail": "",
            "lrTel": "",
            "contactTraderId": null,
            "functionalTraderId": null,
            "actorType": "",
            "businessUnitId": 1,
            "customerRevenue": 0,
            "creditbackRevenue": 0,
            "machineRevenue": 0,
            "note": null,
            "billingThirdParty": 1,
            "paymentType": 0,
            "grossMarginPercentage": 0,
            "attachmentId": null,
            "state": 1,
            "admin": 0,
            "noteRatifica": null,
            "regionId": 9,
            "numTotSc": null,
            "numTotSp": null,
            "numTotGvr": null,
            "slRegionId": null,
            "slProvinceId": null,
            "slCityId": null,
            "slZipcode": "",
            "slAddress": "",
            "idOdoo": null
        },
        "authorization": {
            "id": "0GEpkO8IqM3nwyebWydrEG8r89BuCOPE0CHCmHfLLPKCBbKxbqBHVVqdqW6xKgmV",
            "ttl": 1209600,
            "created": "2017-05-10T09:42:44.455Z",
            "userId": 45
        }
    }
}

Creazione cliente

Method

URL

DM1104

DPR462

DPR162

POST

/api/customers

Descrizione

Questa interfaccia crea un nuovo cliente, impostandolo in stato attesa contratto.

Json di input

{
    "actor": {
        "idOdoo": 0,
        "slOdooId": "number",
        "companyName": "string",
        "piva": "string",
        "cf": "string",
        "iban": "string",
        "address": "string",
        "zipcode": "string",
        "cityId": 0,
        "provinceId": 0,
        "condo": 0,
        "website": "string",
        "email": "string",
        "pec": "string",
        "tel": "string",
        "fax": "string",
        "note": "string",
        "regionId": 0,
        "numTotSc": 0,
        "numTotSp": 0,
        "numTotGvr": 0,
        "slRegionId": 0,
        "slProvinceId": 0,
        "slCityId": 0,
        "slZipcode": "string",
        "slAddress": "string",
        "traderId": 16,
        "contactTraderId": 16,
        "targetAudience": "string"
    },
    "user": {
        "name": "string",
        "surname": "string",
        "email": "string",
        "mobilePhone": "string",
        "officePhone": "string",
        "gender": "string",
        "workingPosition": "string",
        "password": "string"
    },
    "sdiCodes": [
      {
        "id": 0,
        "code": "string",
        "description": "string"
      }
    ],
    "contract": {
        "discountApplied": 0,
        "paymentTermId": "string"
    },
    "attachments": [
        {
            "name": "string",
            "url": "string"
        }
    ]
}

Descrizione campi Actor

Field Name

Required

Descrizione

Type

idOdoo

Si

Identificativo univoco sede amministrativa

integer

slOdooId

No

Identificativo univoco sede legale

integer

companyName

Si

Nome cliente

string

piva

Si

Partita iva

string

cf

Si

Codice fiscale

string

iban

No

Iban

string

pec

No

Posta elettronica certificata

string

email

Si

indirizzo email

string

tel

No

numero di telefono

string

fax

No

numero di fax

string

website

No

sito internet

string

slRegionId

Si

ID regione sede legale

integer

slProvinceId

Si

ID provincia sede legale

integer

slCityId

Si

ID comune sede legale

integer

slAddress

Si

Indirizzo sede legale

string

slZipcode

Si

CAP sede legale

string

regionId

Si

ID regione sede operativa

integer

provinceId

Si

ID provincia sede operativa

integer

cityId

Si

ID comune sede operativa

integer

address

Si

Indirizzo sede operativa

string

zipcode

Si

CAP sede operativa

string

condo

Si

Condominio

boolean

numTotSc

No

Numero totale attrezzature Sollevamento cose

integer

numTotSp

No

Numero totale attrezzature Sollevamento persone

integer

numTotGvr

No

Numero totale attrezzature Gas vapore riscaldamento

integer

note

No

Appunti sul cliente

string

traderId

Si

ID commerciale di riferimento

integer

contractTraderId

No

ID segnalatore commerciale

integer

targetAudience

No

Mercato di riferimento

Map<String>

Descrizione campi User

Field Name

Required

Descrizione

Type

name

Si

Nome referente cliente

string

surname

Si

Cognome referente cliente

string

email

Si

Email referente cliente

string

mobilePhone

Si

Numero telefono cellulare referente cliente

string

officePhone

Si

Numero telefono ufficio referente cliente

string

gender

Si

Sesso. Valori possibili ‘M’ o ‘F’

char

workingPosition

No

Funzione referente cliente

string

password

Si

Password referente cliente

string

Descrizione campi SdiCode

Lo SdiCode è presente all’interno dell’array sdiCodes

Field Name

Require

Descrizione

Type

id

Si

Identificativo codice SDI

integer

code

Si

Codice SdI (Sistema d’Intercambio) è il codice destinatario per le fatture elettroniche utilizzato dall’Agenzia delle Entrate

string

description

No

Campo descrizione

string

Descrizione campi Contract

Field Name

Required

Descrizione

Type

discountApplied

Si

Sconto applicato al servizio del contratto

integer

paymentTermId

Si

Termini di pagamento del Customer

string

Descrizione campi Attachments

Il campo attachments è un array contenente una lista di oggetti.

  • Ogni oggetto della lista corrisponde ad un allegato.

  • Ogni allegato presenta i seguenti campi:

Field Name

Required

Descrizione

Type

name

No

Nome dell’allegato

string

url

No

Url di odoo per scaricare l’allegato

string

Esempio risposta positiva

{
    "status": 0,
    "errorCode": null,
    "errorMessage": [],
    "response": {
        "customer": {
            "id": 1
        }
    }
}

Modifica cliente

Method

URL

DM1104

DPR462

DPR162

PUT

/api/Customers/{id}

Descrizione

Questa interfaccia modifica le informazioni di un cliente.

Json di input

{
    "actor": {
        "idOdoo": 0,
        "slOdooId": "number",
        "companyName": "string",
        "piva": "string",
        "cf": "string",
        "iban": "string",
        "address": "string",
        "zipcode": "string",
        "cityId": 0,
        "provinceId": 0,
        "condo": 0,
        "website": "string",
        "email": "string",
        "pec": "string",
        "tel": "string",
        "fax": "string",
        "note": "string",
        "regionId": 0,
        "numTotSc": 0,
        "numTotSp": 0,
        "numTotGvr": 0,
        "slRegionId": 0,
        "slProvinceId": 0,
        "slCityId": 0,
        "slZipcode": "string",
        "slAddress": "string",
        "targetAudience": "string"
    },
    "user": {
        "name": "string",
        "surname": "string",
        "email": "string",
        "mobilePhone": "string",
        "officePhone": "string",
        "gender": "string",
        "workingPosition": "string",
        "password": "string"
    },
    "sdiCodes": [
      {
        "id": 0,
        "code": "string",
        "description": "string"
      }
    ],
    "contract": {
        "discountApplied": 0,
        "paymentTermId": "string"
    },
    "attachments": [
        {
            "name": "string",
            "url": "string"
        }
    ],
    "replaceContract": "boolean"
  }

Descrizione campi

Field Name

Require

Descrizione

Type

id

Si

Identificativo specifico del CRM per il cliente da modificare

querystring

replaceContract

No

false => ignora modifiche contrattuali (default) true => sostituisce gli attuali contratti attivi con le informazioni nel campo contract

boolean

Descrizione campi Actor

Field Name

Require

Descrizione

Type

idOdoo

Si

Identificativo univoco sede amministrativa

integer

slOdooId

No

Identificativo univoco sede legale

integer

companyName

Si

Nome cliente

string

piva

Si

Partita IVA

string

cf

Si

Codice fiscale

string

iban

No

Iban

string

pec

No

Posta elettronica certificata

string

email

Si

indirizzo email

string

tel

No

Numero di telefono

string

fax

No

Numero di fax

string

website

No

Sito internet

string

slRegionId

Si

ID regione sede legale

integer

slProvinceId

Si

ID provincia sede legale

integer

slCityId

Si

ID comune sede legale

integer

slAddress

Si

Indirizzo sede legale

string

slZipcode

Si

CAP sede legale

string

regionId

Si

ID regione sede operativa

integer

provinceId

Si

ID provincia sede operativa

integer

cityId

Si

ID comune sede operativa

integer

address

Si

Indirizzo sede operativa

string

zipcode

Si

CAP sede operativa

string

condo

Si

Condominio

boolean

numTotSc

No

Numero totale attrezzature Sollevamento cose

integer

numTotSp

No

Numero totale attrezzature Sollevamento persone

integer

numTotGvr

No

Numero totale attrezzature Gas vapore riscaldamento

integer

note

No

Appunti sul cliente

string

targetAudience

No

Mercato di riferimento

Map<String>

Descrizione campi User

Field Name

Require

Descrizione

Type

name

Si

Nome referente cliente

string

surname

Si

Cognome referente cliente

string

email

Si

Email referente cliente

string

mobilePhone

Si

Numero telefono cellulare referente cliente

string

officePhone

Si

Numero telefono ufficio referente cliente

string

gender

Si

Sesso. Valori possibili ‘M’ o ‘F’

char

workingPosition

No

Funzione referente cliente

string

password

Si

Password referente cliente

string

Descrizione campi SdiCode

Lo SdiCode è presente all’interno dell’array sdiCodes

Field Name

Require

Descrizione

Type

id

Si

Identificativo codice SDI

integer

code

Si

Codice SdI (Sistema d’Intercambio) è il codice destinatario per le fatture elettroniche utilizzato dall’Agenzia delle Entrate

string

description

No

Campo descrizione

string

Descrizione campi Contract

Field Name

Required

Descrizione

Type

discountApplied

Si

Sconto applicato al servizio del contratto

integer

paymentTermId

Si

Termini di pagamento del Customer

string

Descrizione campi Attachments

Il campo attachments è un array contenente una lista di oggetti.

  • Ogni oggetto della lista corrisponde ad un allegato.

  • Ogni allegato presenta i seguenti campi:

Field Name

Required

Descrizione

Type

name

No

Nome dell’allegato

string

url

No

Url di odoo per scaricare l’allegato

string

Esempio di risposta positiva

{
    "status": 0,
    "errorCode": null,
    "errorMessage": [],
    "response": {
        "customer": {
            "id": 1
        }
    }
}

Cambio associazione commerciale

Method

URL

DM1104

DPR462

DPR162

PUT

/api/Customers/{id}/traders

Descrizione

Sostituisce il commerciale associato al cliente ed i relativi task aperti.

Parametri in input

Field Name

Required

Descrizione

Type

id

Si

Identificativo del cliente a cui cambiare l’associazione commerciale

integer

functionalTrader

Si

Identificativo del nuovo commerciale a cui associare il cliente

integer

Esempio di risposta positiva

{
    "status": 0,
    "errorCode": null,
    "errorMessage": [],
    "response": {}
}

Cambio associazione segnalatore commerciale

Method

URL

DM1104

DPR462

DPR162

PUT

/api/Customers/{id}/traderDetectors

Descrizione

Sostituisce il segnalatore commerciale associato al cliente

Parametri in input

Field Name

Required

Descrizione

Type

id

Si

Identificativo del cliente a cui cambiare l’associazione commerciale

integer

traderDetectorId

Si

Identificativo del nuovo segnalatore commerciale a cui associare il cliente

integer

Esempio di risposta positiva

{
    "status": 0,
    "errorCode": null,
    "errorMessage": [],
    "response": {}
}

Archiviazione commerciali

Method

URL

DM1104

DPR462

DPR162

PUT

/api/Traders/{id}/archive

Descrizione

Permette di l’archiviazione del ruolo commerciale per l’id utente passato in input. Nel caso in cui ci siano problemi di dipendenze per cui non è possibile disattivare tale ruolo la chiamata andrà in KO restituendo la descrizione dell’errore qualora sia possibile

Parametri in input

Field Name

Require

Descrizione

Type

id

Si

Identificativo dell’utente da archiviare

querystring

Esempio di risposta positiva

{
  "status": 0,
  "errorCode": null,
  "errorMessage": [],
  "response": {}
}

Esempio di risposta negativa

Nel caso in cui il commerciale non è archiviabile, verrà restituita la lista delle dipendenze del commerciale:

{
  "status": 1,
  "errorCode": "WARN::CANNOT_ARCHIVE_TRADER",
  "errorMessage": [],
  "response": {
    "customers": [
      97,
      126,
      139
    ]
  }
}

Nel caso in cui il commerciale risulta già archiviato

{
  "status": 1,
  "errorCode": "WARN::TRADER_ALREADY_ARCHIVED",
  "errorMessage": [],
  "response": {}
}

Codici di errore

Codice

Descrizione

WARN::TRADER_ALREADY_ARCHIVED

Commerciale già archiviato

WARN::NO_TRADER_ARCHIVED

Errore nella modifica del ruolo

WARN::CANNOT_ARCHIVE_TRADER

Errore nella modifica dei clienti del commerciale

ERR::TRADER_NOT_EXIST#003

ID commerciale non trovato

ERR::PERMISSION_DENIED

Utente non valido per l’operazione

Archiviazione clienti

Method

URL

DM1104

DPR462

DPR162

PUT

/api/Customers/bulkArchive

Descrizione

Permette l’archiviazione dei clienti per gli ID passati in input. L’operazione, per ogni cliente, verificherà che siano presenti attrezzature caricate e, nel caso positivo, si occuperà di archiviare le attività di verifica pendenti. Nel caso in cui ci siano attività di verifica bloccanti (stato “Verificatore assegnato”), l’operazione verrà bloccata annullando tutte le operazioni eseguite e restituendo gli errori.

Parametri in input

Field Name

Require

Descrizione

Type

ids

Si

Array degli ID dei clienti

Array<Integer>

Esempio di risposta positiva

{
  "status": 0,
  "errorCode": null,
  "errorMessage": [],
  "response": {}
}

Esempio di risposta negativa

Nel caso in cui il cliente non è archiviabile, verrà restituita la lista delle dipendenze del cliente

{
  "status": -1,
  "errorCode": "GENERIC_ERROR",
  "errorMessage": [],
  "response": [
    {
      "customer": {
        "id": 18,
        "errorCode": "ERR::CUSTOMER_ARCHIVE_FAIL#004",
        "errorMessage": [
          {
            "message": "Unable to archive customer with id 18"
          }
        ],
        "response": [
          {
            "machine": {
              "id": 10588,
              "errorCode": "ERR::NO_MACHINE_ARCHIVED#001",
              "errorMessage": [
                {
                  "message": "Cannot archive CustomerMachines with audit in state 'VERIFICATORE_ASSOCIATO'"
                }
              ],
              "response": {
                "audits": []
              }
            }
          },
          {
            "machine": {
              "id": 15594,
              "errorCode": "ERR::NO_MACHINE_ARCHIVED#001",
              "errorMessage": [
                {
                  "message": "Cannot archive CustomerMachines with audit in state 'VERIFICATORE_ASSOCIATO'"
                }
              ],
              "response": {
                "audits": []
              }
            }
          },
          {
            "machine": {
              "id": 15802,
              "errorCode": "ERR::NO_MACHINE_ARCHIVED#001",
              "errorMessage": [
                {
                  "message": "Cannot archive CustomerMachines with audit in state 'VERIFICATORE_ASSOCIATO'"
                }
              ],
              "response": {
                "audits": []
              }
            }
          },
          {
            "machine": {
              "id": 15803,
              "errorCode": "ERR::NO_MACHINE_ARCHIVED#001",
              "errorMessage": [
                {
                  "message": "Cannot archive CustomerMachines with audit in state 'VERIFICATORE_ASSOCIATO'"
                }
              ],
              "response": {
                "audits": []
              }
            }
          },
          {
            "machine": {
              "id": 19843,
              "errorCode": "ERR::NO_MACHINE_ARCHIVED#001",
              "errorMessage": [
                {
                  "message": "Cannot archive CustomerMachines with audit in state 'VERIFICATORE_ASSOCIATO'"
                }
              ],
              "response": {
                "audits": []
              }
            }
          }
        ]
      }
    }
  ]
}

Nel caso in cui il cliente risulti già archiviato

{
  "status": -1,
  "errorCode": "ERR::CUSTOMERS_BULK_ARCHIVE_FAIL#001",
  "errorMessage": [],
  "response": [
    {
      "customer": {
        "id": 51,
        "errorCode": "WARN::CUSTOMER_ALREADY_ARCHIVED",
        "errorMessage": [],
        "response": {}
      }
    },
    {
      "customer": {
        "id": 97,
        "errorCode": "WARN::CUSTOMER_ALREADY_ARCHIVED",
        "errorMessage": [],
        "response": {}
      }
    }
  ]
}