Le REST API di Cometa mettono a disposizione diverse funzionalità che sono raggruppate nelle voci di menù di questa pagina.
Il token di autenticazione viene restituito dal metodo di login ed ha una sua validità temporale.
Il token deve essere passato generalmente nell'header della richiesta col nome: "token". E' richiesto per tutti i metodi eccetto login
Alternativamente il token può essere passato anche come parametro "token" nell'url della richiesta, utile quando non si può passare nessun header alla richiesta.
Si può verificare la validità del token con il metodo checktoken.
Se il token è scaduto occorre recuperarne un'altro semplicemente effettuando il login.
Si seguito sarà indicato con UT l'utente Cometa e con CL il Cliente.
In qualsiasi metodo in prametro id può essere specificato anche nel path dell'URL con la solita notazione [metodo]/[valore parametro id]?...
Metodi presenti un questa sezione:
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| login | POST, GET |
xx-www-form-urlencoded
application/json
{
"username":"",
"password":"",
"id": ""
}
|
Il metodo ritorna il seguente oggetto JSON:
{
"token": "541bee22-edf2-4c04-98a1-66222b55d759",
"passwordDaCambiare": false,
"nominativo": "ACCENTURE",
"clienteCometa": "OCN",
"cliente": true,
"utente": false,
"capoProgetto": true,
"responsabileDiStruttura": true,
"approvatoreGiustificativi": true,
"moduliAbilitati": [
"TASKS"
],
"permessi": [
{
"nome": "Cometa Cliente",
"descrizione": "Accesso come Cliente",
"inserimento": true,
"lettura": true,
"modifica": true,
"eliminazione": true,
"esecuzione": true
}
]
}
|
||||||||||||||||
| login/resetPassword | POST, GET |
Invia un mail all'utente con il link da cliccare per resettare la password xx-www-form-urlencoded
application/json
{
"username":"",
"id": ""
}
|
Il metodo ritorna il seguente oggetto JSON:
{
"successo": true,
"messaggio": null
}
|
||||||||||||||||
| checkToken | POST, GET |
Il metodo ritorna il seguente oggetto JSON:
{
"valido": true,
"nominativo": "Parenti Emanuele",
"clienteCometa": "OCN",
"cliente": false,
"utente": false,
"capoProgetto": true,
"responsabileDiStruttura": true,
"approvatoreGiustificativi": true,
"moduliAbilitati": [
"TASKS"
],
"permessi": [
{
"nome": "Documenti",
"descrizione": "",
"inserimento": true,
"lettura": true,
"modifica": true,
"eliminazione": true,
"esecuzione": true
},
{
"nome": "Giustificativi",
"descrizione": "",
"inserimento": false,
"lettura": false,
"modifica": false,
"eliminazione": false,
"esecuzione": true
},
{
"nome": "Inserimento ore",
"descrizione": "",
"inserimento": true,
"lettura": true,
"modifica": true,
"eliminazione": true,
"esecuzione": true
},
{
"nome": "Rubrica",
"descrizione": "",
"inserimento": false,
"lettura": false,
"modifica": false,
"eliminazione": false,
"esecuzione": false
}
]
}
|
|||||||||||||||||
| cambioPassword | POST, GET |
xx-www-form-urlencoded
application/json
{
"username":"",
"password":"",
"oldPassword": ""
}
|
Il metodo ritorna il seguente oggetto JSON:
{
"successo": true,
"messaggio": null
}
|
||||||||||||||||
| contratto | POST, GET |
Il metodo ritorna il seguente oggetto JSON:
{
"oreGiornaliere": "08:00:00"
}
|
|||||||||||||||||
| deleteToken | POST, GET | true o false |
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| notifiche | POST |
Interrogazione notifiche. I record vengono ritornati in ordine di data descrescente. application/json Viene richiesto un oggetto JSON anche parziale del seguente tipo:
{
"pagina": 1,
"recordPerPagina": 100,
"filtri": {
"tipi": [
"SCADENZIARIO",
"TIMESHEET"
],
"cestinata": false,
"letta": null,
"testo": null,
"dataInizio": "2017-01-01T00:00:00",
"dataFine": null
}
}
La data è nel fomato ISO yyyy-mm-ddTHH:mm:ss Date valide possono essere:
Le tipologie di notifiche possono essere:
|
Ritorna un oggetto json del tipo:
{
"totaleRecord": 999,
"parametriDiRicerca": {
"pagina": 1,
"recordPerPagina": 100,
"filtri": {
"tipi": [
"SCADENZIARIO"
],
"cestinata": false,
"letta": null,
"testo": null,
"dataInizio": "2017-01-01T00:00:00",
"dataFine": null
}
},
"notifiche": [
{
"priorita": 1,
"id": "ftwD0zJXIlLrilhNmarilw%3d%3d",
"oggetto": "SCADENZIARIO YYY",
"tipologia": "SCADENZIARIO",
"testo": "Tipo notifica: SCADENZIARIO n° 101",
"data": "2017-09-11T16:55:23.257",
"letta": false,
"cancellata": false,
"allegati": []
},
{
"priorita": 3,
"id": "EG8Ls6JR3w0Kkk1kWV0Mtg%3d%3d",
"oggetto": "SCADENZIARIO XXX",
"tipologia": "SCADENZIARIO",
"testo": "Tipo notifica: SCADENZIARIO n° 99",
"data": "2017-09-11T16:55:23.257",
"letta": false,
"cancellata": false,
"allegati": []
},
....
]
}
Nel risultato vengono riportati i parametri di ricerca utilizzati, il totale dei record che corrispondo alla ricerca e il le notifiche trovate in base al numero di pagina e ai record per pagina.
Il campo priorità della notifica è a importanza crescente. 1 = poco importante, 10 = molto importante. |
||||||||||||||||||||||||||||||||||||
| PUT |
Modifica lo stato di una notifica xx-www-form-urlencoded
application/json
{
"id": "",
"letta": "",
"cestinata": ""
}
|
Il metodo ritorna il seguente oggetto JSON:
{
"successo": true,
"messaggio": null
}
|
|||||||||||||||||||||||||||||||||||||
| DELETE |
Elimina la notifica definitivamente per l'utente xx-www-form-urlencoded
application/json
{
"id": "",
}
|
Il metodo ritorna il seguente oggetto JSON:
{
"successo": true,
"messaggio": null
}
|
In questa sezione sono raggruppati i metodi per la gestione del timesheet.
Attenzione che se il giorno è bloccato, si possono solo visualizzare i dati sia per quanto riguarda le ore che le note spese.
Metodi presenti un questa sezione:
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| timesheet/commesse | POST |
Recupera le commesse dell'utente disponibili per l'inserimento delle ore in un determinato periodo temporale
xx-www-form-urlencoded
application/json
{
"dataInizio": "yyyy-mm-dd",
"dataFine": "yyyy-mm-dd"
}
Per ogni commessa vengono elencate le tipologie di ore che l'utente può inserire.Le tipologie di ore ammesse possono essere:
|
Il metodo ritorna il seguente risultato JSON:
[
{
"id": "n6Rt92Lfp1W3hNn76EK2ig%3d%3d",
"descrizione": "Rinnovo annuale ...",
"cliente": "BNL",
"idCliente": "xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"settore": "Finance & bankingtt",
"codice": 759,
"tipologieOreAmmesse": [
"ORE_ORDINARIE",
"ORE_REPERIBILITA",
"ORE_INTERVENTO_REPERIBILITA",
"ORE_INTERVENTO_REPERIBILITA_NOTTURNE",
"ORE_STRAORDINARIO",
"ORE_STRAORDINARIO_NOTTURNO",
"RIPOSO_COMPENSATIVO"
],
"attivita": [
{
"id": "PUPj%2bMdnFse7YPYamYiNeA%3d%3d",
"descrizione": "Rinnovo annuale..."
},
{
"id": "VNGzkOTegrEK1OicyHWquw%3d%3d",
"descrizione": "attività 2"
}
]
},
{
"id": "ZVPbzPA0Csl%2fJds9NC%2fxbQ%3d%3d",
"descrizione": "offera test",
"cliente": "AAA",
"idCliente": "xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"settore": "Insurance",
"codice": 775,
"tipologieOreAmmesse": [
"ORE_ORDINARIE",
"ORE_REPERIBILITA",
"ORE_INTERVENTO_REPERIBILITA",
"ORE_INTERVENTO_REPERIBILITA_NOTTURNE",
"ORE_STRAORDINARIO",
"ORE_STRAORDINARIO_NOTTURNO",
"RIPOSO_COMPENSATIVO"
],
"attivita": [
{
"id": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"descrizione": "aaaa"
}
]
}
]
|
||||||||||||||||||||||||||||
| timesheet/riepilogo | POST |
Recupera il riepilogo delle attività svolte dalla risorsa in un determinato giorno
xx-www-form-urlencoded
application/json
{
"giorno": "yyyy-mm-dd"
}
|
Il metodo ritorna il seguente risultato JSON:
{
"bloccato": "false",
"attivita": [
{
"id": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"commessa": "offera test",
"codiceCommessa": "775",
"idCommessa": "ZVPqzPA0lsl%2fJds9NC%2fxbQ%3d%3d",
"descrizioneAttivita": "aaaa",
"daFatturare": false,
"trasferta": false,
"cliente": "AAA",
"idCliente": "xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"tipoAttivita": "Insurance",
"note": "",
"totaleOre": "04:00:00",
"oreOrdinarie": "04:00:00",
"oreDaRecuperare": "00:00:00",
"oreStraordinario": "00:00:00",
"totaleOreStraordinarioFestivo": "00:00:00",
"oreStraordinarioFestivoDiurno": "00:00:00",
"oreStraordinarioFestivoNotturno": "00:00:00",
"oreReperibilitaFestiva": "00:00:00",
"totaleOreInterventoReperibilitaFestiva": "00:00:00",
"oreInterventoReperibilitaFestivaDiurne": "00:00:00",
"oreInterventoReperibilitaFestivaNotturne": "00:00:00",
"oreReperibilita": "00:00:00",
"oreStraordinarioNotturno": "00:00:00",
"oreInterventoReperibilita": "00:00:00",
"oreInterventoReperibilitaNotturne": "00:00:00"
},
{
"id": "VNGzkOTegrEK1OicyHWquw%3d%3d",
"commessa": "Rinnovo annuale manutenzione licenze prodotti Adobe (ex Jetform)",
"codiceCommessa": "795",
"idCommessa": "ZVPbzPA0Csl%2fJds9NC%2fxbQ%3d%3d",
"descrizioneAttivita": "attività 2",
"daFatturare": false,
"trasferta": false,
"cliente": "BNL",
"tipoAttivita": "Finance & bankingtt",
"note": "",
"totaleOre": "01:00:00",
"oreOrdinarie": "01:00:00",
"oreDaRecuperare": "00:00:00",
"oreStraordinario": "00:00:00",
"totaleOreStraordinarioFestivo": "00:00:00",
"oreStraordinarioFestivoDiurno": "00:00:00",
"oreStraordinarioFestivoNotturno": "00:00:00",
"oreReperibilitaFestiva": "00:00:00",
"totaleOreInterventoReperibilitaFestiva": "00:00:00",
"oreInterventoReperibilitaFestivaDiurne": "00:00:00",
"oreInterventoReperibilitaFestivaNotturne": "00:00:00",
"oreReperibilita": "00:00:00",
"oreStraordinarioNotturno": "00:00:00",
"oreInterventoReperibilita": "00:00:00",
"oreInterventoReperibilitaNotturne": "00:00:00"
}
],
"giustificativi": [
{
"riposoCompensativo": false,
"descrizione": "Ferie",
"stato": "R",
"ore": "02:00:00"
},
{
"riposoCompensativo": false,
"descrizione": "Infortunio",
"stato": "A",
"ore": "01:00:00"
}
],
"tasks": [
{
"oreOrdinarie": "00:30:00",
"oreDaRecuperare": "00:00:00",
"oreStraordinario": "00:00:00",
"oreStraordinarioFestivoDiurno": "00:00:00",
"oreStraordinarioFestivoNotturno": "00:00:00",
"oreReperibilita": "00:00:00",
"oreReperibilitaFestiva": "00:00:00",
"oreInterventoReperibilita": "00:00:00",
"oreInterventoReperibilitaNotturne": "00:00:00",
"oreInterventoReperibilitaFestivaDiurne": "00:00:00",
"oreInterventoReperibilitaFestivaNotturne": "00:00:00",
"oreInterventoReperibilitaFestiva": "00:00:00",
"oreStraordinarioNotturno": "00:00:00",
"idCommessa": "v6xRKZueM380vgbG%2bwriew%3d%3d",
"idAttivita": "UCcxUOC9qr8sOvqKuQ9rlg%3d%3d",
"numero":43,
"id": "t2%2b81zYVmguR43bqt5Zvqg%3d%3d",
"titoloCompleto": "Task #6: cia bello (52 - La rustica)",
"titolo": "cia bello",
"cliente": "EDS",
"totaleOre": 128.0,
"commessa": "La rustica",
"descrizione": ""
}
...
],
"timbratura": {
"giustificativi": [],
"oreOrdinarie": "00:00:00",
"oreStraordinario": "00:00:00",
"oreGiustificate": "00:00:00",
"convalidato": false,
"presente": false,
"codiceTurnoOrdinario": null,
"codiceCausaleOrdinario": null,
"descrizioneCausaleOrdinario": null,
"descrizioneTurnoOrdinario": null,
"codiceTurnoStraOrdinario": null,
"codiceCausaleStraOrdinario": null,
"descrizioneCausaleStraOrdinario": null,
"descrizioneTurnoStraOrdinario": null,
"totaleOre": "00:00:00"
},
"data": "2017-10-03T00:00:00",
"oreGiustificateTimbrature": "00:00:00",
"totaleOreRecuperate": 0.0,
"totaleOre": 12.0,
"totaleOreGustificativi": 3.0,
"totaleOreGustificativiApprovateRichieste": 3.0,
"totaleOreLavorate": 9.0,
"totaleOreOrdinarie": 5.0,
"totaleOreTasks": 0.0,
"totaleOreDaRecuperare": 0.0,
"totaleOreStraordinario": 0.0,
"totaleOreStraordinarioFestivo": 0.0,
"totaleOreStraordinarioFestivoDiurno": 0.0,
"totaleOreStraordinarioFestivoNotturno": 0.0,
"totaleOreReperibilitaFestiva": 0.0,
"totaleOreInterventoReperibilitaNotturne": 0.0,
"totaleOreInterventoReperibilita": 0.0,
"totaleOreInterventoReperibilitaFestivaDiurne": 0.0,
"totaleOreInterventoReperibilitaFestivaNotturne": 0.0,
"totaleOreInterventoReperibilitaFestiva": 0.0,
"totaleOreReperibilita": 0.0,
"totaleOreStraordinarioNotturno": 0.0
}
|
||||||||||||||||||||||||||||
| timesheet/riepilogomensile | POST |
Recupera il riepilogo delle attività svolte dalla risorsa in un determinato mese
xx-www-form-urlencoded
application/json
{
"anno": "2017",
"mese": "10",
"attivitaInserite": "true",
"idCommessa": "n6Rt92Lfp1W3hNn76EK2ig%3d%3d",
}
|
Il metodo ritorna il seguente risultato JSON:
{
"giorni": [
{
"bloccato":"false",
"attivita": [],
"giustificativi": [],
"tasks": [
{
"oreOrdinarie": "00:30:00",
"oreDaRecuperare": "00:00:00",
"oreStraordinario": "00:00:00",
"oreStraordinarioFestivoDiurno": "00:00:00",
"oreStraordinarioFestivoNotturno": "00:00:00",
"oreReperibilita": "00:00:00",
"oreReperibilitaFestiva": "00:00:00",
"oreInterventoReperibilita": "00:00:00",
"oreInterventoReperibilitaNotturne": "00:00:00",
"oreInterventoReperibilitaFestivaDiurne": "00:00:00",
"oreInterventoReperibilitaFestivaNotturne": "00:00:00",
"oreInterventoReperibilitaFestiva": "00:00:00",
"oreStraordinarioNotturno": "00:00:00",
"idCommessa": "v6xRKZueM380vgbG%2bwriew%3d%3d",
"idAttivita": "UCcxUOC9qr8sOvqKuQ9rlg%3d%3d",
"numero":43,
"id": "t2%2b81zYVmguR43bqt5Zvqg%3d%3d",
"titoloCompleto": "Task #6: cia bello (52 - La rustica)",
"titolo": "cia bello",
"cliente": "EDS",
"totaleOre": 128.0,
"commessa": "La rustica",
"descrizione": ""
}
...
],
"timbratura": {
"giustificativi": [],
"oreOrdinarie": "00:00:00",
"oreStraordinario": "00:00:00",
"oreGiustificate": "00:00:00",
"convalidato": false,
"presente": false,
"codiceTurnoOrdinario": null,
"codiceCausaleOrdinario": null,
"descrizioneCausaleOrdinario": null,
"descrizioneTurnoOrdinario": null,
"codiceTurnoStraOrdinario": null,
"codiceCausaleStraOrdinario": null,
"descrizioneCausaleStraOrdinario": null,
"descrizioneTurnoStraOrdinario": null,
"totaleOre": "00:00:00"
},
"data": "2017-10-01T00:00:00",
"oreGiustificateTimbrature": "00:00:00",
"totaleOreRecuperate": 0.0,
"totaleOre": 0.0,
"totaleOreGustificativi": 0.0,
"totaleOreGustificativiApprovateRichieste": 0.0,
"totaleOreLavorate": 0.0,
"totaleOreOrdinarie": 0.0,
"totaleOreDaRecuperare": 0.0,
"totaleOreStraordinario": 0.0,
"totaleOreStraordinarioFestivo": 0.0,
"totaleOreStraordinarioFestivoDiurno": 0.0,
"totaleOreStraordinarioFestivoNotturno": 0.0,
"totaleOreReperibilitaFestiva": 0.0,
"totaleOreInterventoReperibilitaNotturne": 0.0,
"totaleOreInterventoReperibilita": 0.0,
"totaleOreInterventoReperibilitaFestivaDiurne": 0.0,
"totaleOreInterventoReperibilitaFestivaNotturne": 0.0,
"totaleOreInterventoReperibilitaFestiva": 0.0,
"totaleOreReperibilita": 0.0,
"totaleOreStraordinarioNotturno": 0.0
},
.... così per tutti i giorni del mese
],
"risorsa": "Parenti Emanuele",
"dataInzio": "2017-10-01T00:00:00",
"dataFine": "2017-10-31T00:00:00",
"timbratureAbilitate": false,
"oreDaRecuperare": "00:00:00",
"oreRecuperate": "00:00:00",
"oreDaRecuperareRimanenti": "00:00:00",
"totaleOre": 128.0,
"totaleOreTasks": 0.0,
"totaleOreOrdinarie": 93.0,
"totaleOreDaRecuperare": 0.0,
"totaleOreRecuperate": 0.0,
"totaleOreStraordinario": 0.0,
"totaleOreStraordinarioFestivo": 0.0,
"totaleOreInterventoReperibilitaFestiva": 0.0,
"totaleOreInterventoReperibilita": 0.0,
"totaleOreInterventoReperibilitaNotturne": 0.0,
"totaleOreReperibilita": 0.0,
"totaleOreReperibilitaFestiva": 0.0,
"totaleOreStraordinarioNotturno": 0.0,
"totaleOreLavorate": 113.0,
"totaleTrasferte": 0,
"totaleOreGiustificativi": 15.0,
"totaleDiarie": 0
}
|
||||||||||||||||||||||||||||
| timesheet | POST |
Si occupa dell'inserimento/modifica delle ore in un'attività.
xx-www-form-urlencoded
application/json
{
"idAttivita":"PUPj%2bMdnFse7YPYamYiNeA%3d%3d",
"giorno":"2017-10-10",
"note": "test inserimento da mobile",
"ore":"01:30:00",
"tipologiaOre":"ORE_ORDINARIE",
"trasferta":"true"
}
N.B nel campo ora i secondi devono sempre essere 00
Possono essere passate anche 00:00:00 ore per svuotare il campo.
Se nella giornata risultante per quell'attività le ore totali risulteranno a zero allora sarà eliminato il record dell'attività.
|
Il metodo ritorna il seguente risultato JSON:
{
"successo": true,
"messaggio": ""
}
In caso di errore
{
"successo": false,
"messaggio": "[Il tipo di errore]"
}
|
||||||||||||||||||||||||||||
| DELETE |
Elimina completamente un'attività dal timesheet
xx-www-form-urlencoded
application/json
{
"idAttivita":"PUPj%2bMdnFse7YPYamYiNeA%3d%3d",
"giorno":"2017-10-10"
}
|
Il metodo ritorna il seguente risultato JSON:
{
"successo": true,
"messaggio": ""
}
In caso di errore
{
"successo": false,
"messaggio": "[Il tipo di errore]"
}
|
|||||||||||||||||||||||||||||
| timesheet/firma | POST |
Firma del timesheet
xx-www-form-urlencoded
application/json
{
"anno":"2017",
"mese":"10"
}
Nel caso il risultato ritorni delle avvertenze deve essere visualizzata l'avvertenza e richiesto all'utente di confermare
la firma del timesheet, effettuando la stessa richiesta per la firma ma impostando il parametro "firmaConfermata":"true".
|
Il metodo ritorna il seguente risultato JSON in caso di successo:
{
"successo": true,
"errori": null,
"avvertenze": null
}
In caso di errore
{
"errori": [
{
"giorno": "2017-11-02T00:00:00",
"descrizione": "Nel giorno 02/11/2017 sono state segnate 6,50 ore in meno del dovuto."
},
{
"giorno": "2017-11-03T00:00:00",
"descrizione": "Nel giorno 03/11/2017 sono state segnate 6,50 ore in meno del dovuto."
}
....
],
"successo": false,
"avvertenze":null
}
In caso di avvertenze
{
"errori": null,
"avvertenze": [
"Il timesheet è incompleto, vuoi firmare ugualmente?"
],
"successo": false
}
|
Metodi presenti un questa sezione:
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| timesheet/tipologiaspese | POST |
{
"valuteAbilitate": true,
"tipologieDiSpesa": [
{
"id": 1,
"descrizione": "Pranzo (Trasf)",
"fissa": false,
"importo": 0.0,
"romborsoKm": false,
"indennitaKm": false,
"indennitaTrasferta": false
},
{
"id": 14,
"descrizione": "rimborso km",
"fissa": false,
"importo": 0.0,
"romborsoKm": true,
"indennitaKm": true,
"indennitaTrasferta": false
},
{
"id": 15,
"descrizione": "indennità trasferta",
"fissa": false,
"importo": 0.0,
"romborsoKm": false,
"indennitaKm": false,
"indennitaTrasferta": true
}
....
],
"valute": [
{
"id": "CZK",
"descrizione": "Corona Ceca",
"default": false
},
{
"id": "DKK",
"descrizione": "Corona Danese",
"default": false
}
....
],
"idClasseAutomobileUtente": 3,
"zone": [
{
"id": 2,
"descrizione": "Estero",
"importoRimborso": 100.0
},
{
"id": 1,
"descrizione": "Italia",
"importoRimborso": 10.0
}
],
"classiAutomobili": [
{
"id": 1,
"descrizione": "fino a 1000 cc",
"importoRimborso": 0.5
},
{
"id": 2,
"descrizione": "fino a 1600 cc",
"importoRimborso": 0.8
},
{
"id": 3,
"descrizione": "oltre 1600 cc",
"importoRimborso": 1.1
}
]
}
|
|||||||||||||||||
| timesheet/km | POST |
xx-www-form-urlencoded
{
"idCliente":"OCID3fsdyXDmMwS8aOnN3g%3d%3d"
}
|
Ritorna un numero reale secco che rappresenta la distanza (andata e ritorno) in Km es:
250.34 |
||||||||||||||||
| timesheet/spese/riepilogo | POST |
xx-www-form-urlencoded
{
"giorno" :"2017-10-02",
"idAttivita": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d"
}
|
Ritorna l'elenco delle note spese:
[
{
"id": "eqVBOUK87YBOtHBpuRpgaQ%3d%3d",
"idTipoSpesa": 15,
"codiceCommessa": 150,
"tipoSpesa": "a indennità trasferta",
"importoUnitario": 100.0,
"quantita": 1.0,
"idValuta": "EUR",
"idZona": 2,
"idClasseAutomobile": 0,
"aziendale": false,
"documentoFileName": "",
"documentoBase64FileData": null,
"note": "",
"data": "2017-10-02T00:00:00",
"totale": 100.0,
"cliente": "AAA",
"tipoAttivita": "Insurance",
"attivitaDescrizione": "aaaa",
"commessaDescrizione": "offera test",
"idAttivita": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"idCommessa": "ZVPbzPA0Csl%2fJds9NC%2fxbQ%3d%3d"
}
....
]
|
||||||||||||||||
| timesheet/spese/riepilogomensile | POST |
xx-www-form-urlencoded
{
"anno" :"2017",
"mese": "10"
}
|
Ritorna l'elenco delle note spese di tutto un mese:
{
"noteSpese": [
{
"id": "eqVBOUK87YBOtHBpuRpgaQ%3d%3d",
"idTipoSpesa": 15,
"codiceCommessa":"150",
"tipoSpesa": "a indennità trasferta",
"importoUnitario": 100.0,
"quantita": 1.0,
"idValuta": "EUR",
"idZona": 2,
"idClasseAutomobile": 0,
"aziendale": false,
"documentoFileName": "",
"documentoBase64FileData": null,
"note": "",
"data": "2017-10-02T00:00:00",
"totale": 100.0,
"cliente": "AAA",
"tipoAttivita": "Insurance",
"attivitaDescrizione": "aaaa",
"commessaDescrizione": "offera test",
"idAttivita": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"idCommessa": "ZVPbzPA0Csl%2fJds9NC%2fxbQ%3d%3d"
}
...
],
"totale": 261.48
}
|
||||||||||||||||
| timesheet/spese/nota | POST |
Inserimento di una nota spesa.
application/json
{
"giorno" :"2017-10-02",
"idAttivita": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"nota":{
"idTipoSpesa": "14",
"importoUnitario": "2.3",
"quantita": "15",
"idValuta":"",
"idZona":"",
"idClasseAutomobile":"",
"note":"",
"documentoFileName":"",
"documentoBase64FileData":" codifica base 64",
"aziendale":"true/false",
}
}
|
Un messaggio di risultato generico dell'operazione
{
"successo": true,
"messaggio": null
}
|
||||||||||||||||
| PUT |
Modifica di una nota spesa.
application/json
{
"idNota": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d",
"nota":{
"idTipoSpesa": "14",
"importoUnitario": "2.3",
"quantita": "15",
"idValuta":"",
"idZona":"",
"idClasseAutomobile":"",
"note":"",
"documentoFileName":"",
"documentoBase64FileData":" codifica base 64",
"aziendale":"true/false",
}
}
|
Un messaggio di risultato generico dell'operazione
{
"successo": true,
"messaggio": null
}
|
|||||||||||||||||
| DELETE |
Eliminazione di una nota spesa.
application/json
{
"idnota" :"iqDVaJ8sl5DeyNi5lMT0xg%3d%3d"
}
|
Un messaggio di risultato generico dell'operazione
{
"successo": true,
"messaggio": null
}
|
|||||||||||||||||
| timesheet/spese/nota/eliminaallegato | DELETE |
Elimina il documento allegato a una nota spesa.
application/json
{
"idNota": "Ts3JgRhcs%2bmugYGWKZGYXQ%3d%3d"
}
|
Un messaggio di risultato generico dell'operazione
{
"successo": true,
"messaggio": null
}
|
||||||||||||||||
| timesheet/spese/download | GET, POST |
xx-www-form-urlencoded
{
"idspesa":"0Xd8VTvbU4cJsO7d2d6JIg%3d%3d",
"mode":"inline"
}
|
Il file in binario in caso di successo. In caso di insuccesso
{
"successo": false,
"messaggio": "File non trovato"
}
|
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| giustificativi/ricerca | POST |
Interrogazione giustificativi. I record vengono ritornati in ordine di data richiesta descrescente. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"pagina": 1,
"recordPerPagina": 30,
"filtri": {
"stato":"R",
"dataDa":"2018-02-05",
"dataA":"2018-02-05",
"tipo":"PROPRI",
}
}
La data è nel fomato ISO yyyy-mm-ddTHH:mm:ss Date valide possono essere:
|
Ritorna un oggetto json del tipo:
{
"totaleRecord": 1,
"parametriDiRicerca": {
"filtri": {
"stato": "R",
"dataDa": "2018-02-05T00:00:00",
"dataA": "2018-02-05T00:00:00"
},
"pagina": 1,
"recordPerPagina": 30
},
"giustificativi": [
{
"id": "ZmuZW5WBmNaC%2frgen%2fZt%2fw%3d%3d",
"richiedente": "Abballe Silvia",
"approvatore": "Bestiani Sergio",
"idApprovatore": "RyBCQyd6drmPACbyWCzT3w%3d%3d",
"stato": "R",
"tipoGiustificativo": "Ferie",
"idTipoGiustificativo": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"giornoRichiestoDal": "2018-02-05T00:00:00",
"giornoRichiestoAl": "2018-02-05T00:00:00",
"giornoApprovatoDal": "2018-02-05T00:00:00",
"giornoApprovatoAl": "2018-02-05T00:00:00",
"oreRichieste": "04:00:00",
"oreApprovate": "04:00:00",
"orarioInizioMattino": "09:00:00",
"orarioInizioPomeriggio": null,
"orarioFineMattino": "13:00:00",
"orarioFinePomeriggio": null
},
...
]
}
Nel risultato vengono riportati i parametri di ricerca utilizzati, il totale dei record che corrispondo alla ricerca e i giustificativi trovati in base al numero di pagina e ai record per pagina.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| giustificativi/info | POST |
Recupera tutte le tipologie di giustificativi disponibili.
Tra gli approvatori disponibili quello che ha default a true deve essere preimpostato come default in fase di inserimento. Nei tipi di giustificativo i campi
|
Ritorna un oggetto json del tipo:
{
"tipiGiustificativo": [
{
"id": "CpZ52z2R1Et8%2fNruZomjyg%3d%3d",
"descrizione": "Allattamento",
"inserimentoOrarioConsentito": true,
"inserimentoOrarioObbligatorio": true,
"colore": "AntiqueWhite"
},
{
"id": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"descrizione": "Ferie",
"inserimentoOrarioConsentito": true,
"inserimentoOrarioObbligatorio": false,
"colore": "Sienna"
},
{
"id": "%2bhXASM3iGtVw2r47AAnfKg%3d%3d",
"descrizione": "Infortunio",
"inserimentoOrarioConsentito": false,
"inserimentoOrarioObbligatorio": false,
"colore": "RoyalBlue"
},
{
"id": "XmSpkUWxwAnNXIistdVoqA%3d%3d",
"descrizione": "Lavoro da casa",
"inserimentoOrarioConsentito": false,
"inserimentoOrarioObbligatorio": false,
"colore": "RoyalBlue"
},
{
"id": "%2frbtLtY0Da6gWhwBvkE9yg%3d%3d",
"descrizione": "Licenza Matrimoniale",
"inserimentoOrarioConsentito": false,
"inserimentoOrarioObbligatorio": false,
"colore": ""
},
{
"id": "t2%2b81zYVmguR43bqt5Zvqg%3d%3d",
"descrizione": "Lutto",
"inserimentoOrarioConsentito": false,
"inserimentoOrarioObbligatorio": false,
"colore": "RoyalBlue"
},
{
"id": "F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"descrizione": "Malattia",
"inserimentoOrarioConsentito": false,
"inserimentoOrarioObbligatorio": false,
"colore": "RoyalBlue"
},
...
],
"approvatori": [
{
"id": "nKI260lcS8T4AGEbI2%2bYag%3d%3d",
"nominativo": "adm Marangoni",
"default": false
},
{
"id": "kso%2fXxRWH7GGH1D1y6teWQ%3d%3d",
"nominativo": "Alagia Giancarlo",
"default": false
},
{
"id": "1bX1CftBga2FSSkSRKWZkQ%3d%3d",
"nominativo": "Alghisi Mariangela",
"default": true
},
...
]
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| giustificativi | POST |
Inserisce un nuovo giustificativo. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"IDTipoGiustificativo": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"IDApprovatore": "RyBCQyd6drmPACbyWCzT3w%3d%3d",
"GiornoInizio":"2018-02-08",
"GiornoFine":"2018-02-09",
"Ore":"08:00:00",
"Continuazione":"false",
"NumeroProtocollo":"XXX",
"OrarioInizioMattino":"09:00:00",
"OrarioFineMattino":"13:00:00",
"OrarioInizioPomeriggio":"14:00:00",
"OrarioFinePomeriggio":"18:00:00"
}
La data è nel fomato ISO yyyy-mm-dd Date valide possono essere:
|
Ritorna un oggetto json del tipo:
in caso di successo
{
"successo": "true",
"messaggio": ""
}
in caso di errore
{
"successo": "false",
"messaggio": "messaggio dell'errore"
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| PUT |
Aggiorna un giustificativo se si trova ancora in stato RICHIESTO. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"IDGiustificativo":"S1nVCmMJ0WxVFr3eqQnJ7A%3d%3d",
"IDTipoGiustificativo": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"IDApprovatore": "RyBCQyd6drmPACbyWCzT3w%3d%3d",
"GiornoInizio":"2018-02-08",
"GiornoFine":"2018-02-09",
"Ore":"08:00:00",
"Continuazione":"false",
"NumeroProtocollo":"XXX",
"OrarioInizioMattino":"09:00:00",
"OrarioFineMattino":"13:00:00",
"OrarioInizioPomeriggio":"14:00:00",
"OrarioFinePomeriggio":"18:00:00"
}
La data è nel fomato ISO yyyy-mm-dd Date valide possono essere:
|
Ritorna un oggetto json del tipo:
in caso di successo
{
"successo": "true",
"messaggio": ""
}
in caso di errore
{
"successo": "false",
"messaggio": "messaggio dell'errore"
}
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| giustificativi/approva | POST |
Approva un giustificativo. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"IDGiustificativo":"S1nVCmMJ0WxVFr3eqQnJ7A%3d%3d",
}
|
Ritorna un oggetto json del tipo:
in caso di successo
{
"successo": "true",
"messaggio": ""
}
in caso di errore
{
"successo": "false",
"messaggio": "messaggio dell'errore"
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| giustificativi/nega | POST |
Nega un giustificativo. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"IDGiustificativo":"S1nVCmMJ0WxVFr3eqQnJ7A%3d%3d",
}
|
Ritorna un oggetto json del tipo:
in caso di successo
{
"successo": "true",
"messaggio": ""
}
in caso di errore
{
"successo": "false",
"messaggio": "messaggio dell'errore"
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| giustificativi/annulla | POST |
Annulla un giustificativo. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"IDGiustificativo":"S1nVCmMJ0WxVFr3eqQnJ7A%3d%3d",
}
|
Ritorna un oggetto json del tipo:
in caso di successo
{
"successo": "true",
"messaggio": ""
}
in caso di errore
{
"successo": "false",
"messaggio": "messaggio dell'errore"
}
|
In questa sezione sono esposti i metodi necessari alla gestione delle ore nei task.
Per recuperare il tipo di operazioni (inserimento, modifica, lettura) che l'utente può effettuare si rimanda al permesso "Tasks", recuperato in fase di login.
Dal login si evince anche se l'utente collegato è un cliente o una risorsa.
E' una risorsa se utente = true, è un cliente se cliente = true
Quello che in questo manuale viene indicato con commessa/e in fase di visualizzazione per uniformità con l'applicativo web deve essere etichettato con 'Oggetto'.
In fase di inserimento di un task si deve prima richiedere il cliente con il metodo tasks/clienti e poi la commessa con tasks/commesse.
Nel caso l'utente collegato sia un cliente o la lista dei clienti ritornati contenga un solo elemento, allora bisogna richiedere solo la commessa (oggetto).
Per conoscere quali campi l'utente collegato può inserire in un nuovo task lo si recupera dal metodo tasks/info oggetto campiInseribili.
Per conoscere quali campi l'utente collegato può modificare di un task lo si recupera dall'oggetto task risultato di una ricerca nell'oggetto campiModificabili.
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tasks | POST |
Inserimento di un task application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"idCommessa":"mu%2b7%2b003%2bFOVfGmeq6HnTQ%3d%3d",
"idAttivita":"TDmtle2lHx6tUbBIe6eJBA%3d%3d",
"idRisorsaAssegnata":"xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"idReferente":"eUJax1EvTl4cpJVA9mejjA%3d%3d",
"titolo":"test mobile",
"idStato":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"idPriorita":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"idTracker":"hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"visibileAlCliente":"true",
"dataInizioPrevista":"",
"dataFinePrevista":"",
"oreStimate":"",
"descrizione":"si prega di correggere"
}
|
Ritorna un oggetto json del tipo:
{
"successo": true,
"messaggio": null,
"idAttivita": "KYzmBy72yMFE0loRFyfLQw%3d%3d"
"idTask":"aYcnzy72yamf0loRFyfLQw%3d%3d"
}
L'id dell'attività tornato è utile nel caso si voglia allegare dei file al task.Per allegare i file occorre utilizzare il metodo tasks/allegato/upload che richiede l'id dell'attività su cui allegare i file. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PUT |
Modifica di un task application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"id":"alftle2lHx6tUbBIe6eJBA%3d%3d"
"idAttivita":"TDmtle2lHx6tUbBIe6eJBA%3d%3d",
"idRisorsaAssegnata":"xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"idReferente":"eUJax1EvTl4cpJVA9mejjA%3d%3d",
"titolo":"test mobile",
"idStato":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"idPriorita":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"idTracker":"hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"visibileAlCliente":"true",
"dataInizioPrevista":"",
"dataFinePrevista":"",
"oreStimate":"",
"descrizione":"abbiamo corretto"
}
|
Ritorna un oggetto json del tipo:
{
"successo": true,
"messaggio": null,
"idAttivita": "KYzmBy72yMFE0loRFyfLQw%3d%3d"
"idTask":"aYcnzy72yamf0loRFyfLQw%3d%3d"
}
L'id dell'attività tornato è utile nel caso si voglia allegare dei file al task.Per allegare i file occorre utilizzare il metodo tasks/allegato/upload che richiede l'id dell'attività su cui allegare i file. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/ricerca | POST |
Interrogazione tasks. I record vengono ritornati in ordine di ID decrescente. application/json Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"pagina": 1,
"recordPerPagina": 30,
"filtri": {
"ID":"XXX",
"IDCliente":"XXX",
"IDCommessa":"XXX",
"IDStato":"XXX",
"IDPriorita":"XXX",
"IDTracker":"XXX",
"Titolo":"",
"Oggetto":"",
"Cliente":"",
"tipo":"PROPRI"
}
}
L'oggetto "campiModificabili" indica quali campi può modificare l'utente collegato.
|
Ritorna un oggetto json del tipo:
{
"totaleRecord": 1,
"parametriDiRicerca": {
"filtri": {
"id": null,
"idStato": null,
"idPriorita": null,
"idTracker": null,
"titolo": null,
"oggetto": null,
"cliente": "intesa",
"tipo": "TUTTI",
"idCliente": null,
"idCommessa": null
},
"pagina": 1,
"recordPerPagina": 30
},
"tasks": [
{
"descrizione": "Altra prova",
"id": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"idCliente": "Gbat5GZq8ZKuB94slp7a2w%3d%3d",
"idCommessa": "391OJqER7ruNDpJwMthfhA%3d%3d",
"numero": 2,
"cliente": "INTESA SAN PAOLO",
"titolo": "Aridai",
"oggetto": "26 - Intesa san Paolo Servizi professionali",
"attivita": "",
"stato": "Commenti",
"coloreStato": "",
"tracker": "Debug",
"priorita": "Alta",
"colorePriorita": "Red",
"creatore": "Abballe Silvia",
"oreStimate": null,
"dataInizioPrevista": null,
"dataFinePrevista": null,
"tipologieOreAmmesse": [
"ORE_ORDINARIE"
],
"ore": 0,
"ultimoCommento": "prova",
"creatoDalCliente": false,
"bloccato": false,
"campiModificabili": {
"idCommessa": false,
"idAttivita": true,
"idRisorsaAssegnata": true,
"idReferente": true,
"titolo": true,
"idStato": true,
"idPriorita": true,
"idTracker": true,
"visibileAlCliente": true,
"dataInizioPrevista": true,
"dataFinePrevista": true,
"oreStimate": true,
"descrizione": true
},
"tasksCollegati": [
{
"id": "HV5WTsJgnHGnxfJR%2bzpz%2bA%3d%3d",
"valore": "40"
},
{
"id": "jpG1UWSdEFAkcdyvg0Hgsw%3d%3d",
"valore": "41"
},
{
"id": "U6iV19RlL%2bix6rLZ%2fRwqyg%3d%3d",
"valore": "42"
},
{
"id": "K8IL4ILX185br1i8Du7H7w%3d%3d",
"valore": "43"
}
]
}
],
"clienti": [
{
"id": "Gbat5GZq8ZKuB94slp7a2w%3d%3d",
"descrizione": "INTESA SAN PAOLO"
}
],
"commesse": [
{
"id": "391OJqER7ruNDpJwMthfhA%3d%3d",
"descrizione": "26 - Intesa san Paolo Servizi professionali"
}
]
}
Nel risultato vengono riportati i parametri di ricerca utilizzati, il totale dei record che corrispondo alla ricerca e i tasks trovati in base al numero di pagina e ai record per pagina.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/cronologia | POST |
Recupera la cronologia delle attività sul task: La prima attività corrisponde al primo inserimento e rappresenta anche la descrizione generale del task. Viene richiesto un oggetto JSON del seguente tipo:
{
"id":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
}
|
Ritorna un oggetto json del tipo:
{
"attivita": [
{
"risorsa": true,
"cliente": false,
"id": "F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"codice": 1,
"data": "2018-02-14T23:15:11.85",
"descrizione": "
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/allegato | GET, POST |
xx-www-form-urlencoded
{
"id":"0Xd8VTvbU4cJsO7d2d6JIg%3d%3d",
"mode":"inline"
}
|
Il file in binario in caso di successo. In caso di insuccesso
{
"successo": false,
"messaggio": "File non trovato"
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/allegato/upload | POST |
application/json
{
"idTask":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"idAttivita":"F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"allegatoFilename":"icona.png",
"allegatoBase64Filedata":"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8...."
}
Quando si esegue un upload di più file è necessario impostare come parametri idTask e idAttivita quelli restituiti dall'ultimo upload eseguito.
Questo perchè non viene sempre creata una nuova attività nel task, ma solamente al cambio di stato o se è stato inserito qualcosa nella descrizione o se si è caricato un file. Siccome per mobile il caricamento multiplo di file è un'operazione successiva alla modifica, potrebbe essere che l'idAttivita ritornato sia 0 per cui l'upload di un file genera inizialmente la nuova attività sul task. Per non generare poi n attività quanti sono i file che si vogliono caricare, è necessario passare l'idAttività generato dall' upload. |
Un messaggio di risultato dell'operazione
{
"successo": true,
"messaggio": "",
"idTask": "xxxxxxxxxx",
"idAttivita": "xxxxxxxxxxx",
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/info | POST |
Info sui tasks
E' importante utilizzare l'oggetto "campiInseribili" che a seconda dell'utente collegato indica quali campi l'utente può inserire in un nuovo task
|
Ritorna un oggetto json del tipo:
{
"stati": [
{
"iniziale": false,
"completato": true,
"coloreNome": "PaleGoldenrod",
"coloreEsadecimale": "#EEE8AA",
"coloreRGB": "238,232,170",
"id": "OwHNGmtCvO0%2bAMfCf28vZw%3d%3d",
"descrizione": "Annullato"
},
{
"iniziale": false,
"completato": true,
"coloreNome": "DarkGreen",
"coloreEsadecimale": "#006400",
"coloreRGB": "0,100,0",
"id": "%2bdnRvrUqHBHUGXpYRIClbg%3d%3d",
"descrizione": "Chiuso"
},
{
"iniziale": false,
"completato": false,
"coloreNome": "",
"coloreEsadecimale": "#000000",
"coloreRGB": "0,0,0",
"id": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"descrizione": "Commenti"
},
{
"iniziale": false,
"completato": false,
"coloreNome": "",
"coloreEsadecimale": "#000000",
"coloreRGB": "0,0,0",
"id": "%2fsDwt%2bG9RlyxrJ1j87oNOQ%3d%3d",
"descrizione": "Da pubblicare"
},
{
"iniziale": false,
"completato": false,
"coloreNome": "",
"coloreEsadecimale": "#000000",
"coloreRGB": "0,0,0",
"id": "EX0Ja9M%2bez9uY9qngwtJmw%3d%3d",
"descrizione": "In lavorazione"
},
{
"iniziale": true,
"completato": false,
"coloreNome": "Red",
"coloreEsadecimale": "#FF0000",
"coloreRGB": "255,0,0",
"id": "F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"descrizione": "Inserito"
}
],
"trackers": [
{
"id": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"descrizione": "Bug fixing"
},
{
"id": "F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"descrizione": "Debug"
},
{
"id": "EX0Ja9M%2bez9uY9qngwtJmw%3d%3d",
"descrizione": "Nuova funzionalità"
}
],
"priorita": [
{
"coloreNome": "Red",
"coloreEsadecimale": "#FF0000",
"coloreRGB": "255,0,0",
"id": "F4CpyMRL5Xv1H7D%2f%2bF9yOQ%3d%3d",
"descrizione": "Alta"
},
{
"coloreNome": "Cornsilk",
"coloreEsadecimale": "#FFF8DC",
"coloreRGB": "255,248,220",
"id": "EX0Ja9M%2bez9uY9qngwtJmw%3d%3d",
"descrizione": "Bassa"
},
{
"coloreNome": "Orange",
"coloreEsadecimale": "#FFA500",
"coloreRGB": "255,165,0",
"id": "hXJJz0cBfSy6osmFSgVDTw%3d%3d",
"descrizione": "Media"
},
{
"coloreNome": "OliveDrab",
"coloreEsadecimale": "#6B8E23",
"coloreRGB": "107,142,35",
"id": "%2fsDwt%2bG9RlyxrJ1j87oNOQ%3d%3d",
"descrizione": "Normale"
}
],
"campiInseribili": {
"idCommessa": true,
"idAttivita": true,
"idRisorsaAssegnata": false,
"idReferente": false,
"titolo": true,
"idStato": true,
"idPriorita": true,
"idTracker": false,
"visibileAlCliente": false,
"dataInizioPrevista": true,
"dataFinePrevista": true,
"oreStimate": false,
"descrizione": true
}
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/ore | POST |
Metodo per inserire/modificare le ore in un task
application/json
Viene richiesto un oggetto JSON anche parziale o nullo del seguente tipo:
{
"idTask":"t2%2b81zYVmguR43bqt5Zvqg%3d%3d",
"giorno":"2018-3-4",
"ore":"01:30:00",
"tipologiaOre":"ORE_REPERIBILITA",
"descrizione":"test"
}
Le tipologie di ore ammesse possono essere:
|
Ritorna un oggetto json del tipo:
In caso si successo
{
"successo": true,
"messaggio": "OK"
}
In caso di errore
{
"successo": false,
"messaggio": "messaggio d'errore"
}
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE |
Metodo per eliminare le ore in un task
application/json
Viene richiesto un oggetto JSON del seguente tipo:
{
"idTask":"t2%2b81zYVmguR43bqt5Zvqg%3d%3d",
"giorno":"2018-3-4",
}
|
Ritorna un oggetto json del tipo:
In caso si successo
{
"successo": true,
"messaggio": "OK"
}
In caso di errore
{
"successo": false,
"messaggio": "messaggio d'errore"
}
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/clienti | POST |
Clienti a cui associare un task:
Viene richiesto un oggetto JSON del seguente tipo:
{
"nominativo":""
}
|
Ritorna un oggetto json del tipo:
[
{
"id": "wfBywOmBlubdngVnHjvk7g%3d%3d",
"nome": "Auxilia Finance s.r.l.",
"referenti": []
},
{
"id": "ErGatWVHlUeEz3Jqw28Hjw%3d%3d",
"nome": "Banca Popolare di Milano",
"referenti": []
},
{
"id": "rskSvcfhtzjIsJOJARgQmQ%3d%3d",
"nome": "Banca Popolare Emilia Romagna",
"referenti": []
},
{
"id": "xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"nome": "IL SOLE 24ORE",
"referenti": [
{
"id": "qjITLQLywHUhTZ78RC7hzA%3d%3d",
"nominativo": "Golia Attilio"
},
{
"id": "vwgmgoKRH4%2bxMQ98TV1SjA%3d%3d",
"nominativo": "Mengozzi Paolo"
},
{
"id": "4NsAaujLgCCq%2fCAmAF3GUQ%3d%3d",
"nominativo": "Parenti Emanuele"
}
]
}
]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tasks/commesse | POST |
Commesse (oggetto) del task:
Viene richiesto un oggetto JSON del seguente tipo:
{
"idCliente":"xiqfS2TmC14Zo5n8YLDTGw%3d%3d",
"descrizione":""
}
|
Ritorna un oggetto json del tipo:
[
{
"id": "ZgCJwWLtBKQJIXVENVP0mw%3d%3d",
"descrizione": "Database Administration",
"cliente": null,
"idCliente": null,
"settore": null,
"codice": 116,
"tipologieOreAmmesse": [],
"attivita": [
{
"id": "76zugPbJRCveCU5ZmWeDyg%3d%3d",
"descrizione": "dba",
"risorse": [
{
"id": "7HhASB811d3MmMB4CcCoBQ%3d%3d",
"nominativo": "Gellera Lara",
"default": false
},
{
"id": "o5iyQiV7l1HmFuz1yhuBBQ%3d%3d",
"nominativo": "Lombardi Marco",
"default": false
},
{
"id": "nbN4VAuP7H5CtVUrMve7iQ%3d%3d",
"nominativo": "More' Roberta",
"default": false
}
]
},
{
"id": "cKjew%2b0ldh%2bnw4evpZMqdQ%3d%3d",
"descrizione": "dba - non fatturabile",
"risorse": [
{
"id": "YfpBOGKbbphrP3j8H9rJFQ%3d%3d",
"nominativo": "Basso Stefano",
"default": false
},
{
"id": "nbN4VAuP7H5CtVUrMve7iQ%3d%3d",
"nominativo": "More' Roberta",
"default": false
}
]
}
]
},
{
"id": "hhakvBrbVxIzeL6%2fLCjENA%3d%3d",
"descrizione": "Presidio / Monitoring",
"cliente": null,
"idCliente": null,
"settore": null,
"codice": 271,
"tipologieOreAmmesse": [],
"attivita": [
{
"id": "u5ci50nG6iTHlmLqc%2fHEyg%3d%3d",
"descrizione": "Presidio sistemistico remoto BPM",
"risorse": [
{
"id": "7EiZX%2f7SFVdcQexiA%2fwWEw%3d%3d",
"nominativo": "Turatti Cristina",
"default": false
}
]
},
{
"id": "uLDpdkLlzU6iVlrgRV8pEQ%3d%3d",
"descrizione": "Avviamento attività Presidio",
"risorse": [
{
"id": "7EiZX%2f7SFVdcQexiA%2fwWEw%3d%3d",
"nominativo": "Turatti Cristina",
"default": false
}
]
}
]
}
]
|
| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| utente/foto | POST |
Consente di inserire la foto dell'utente application/json Viene richiesto un oggetto JSON del seguente tipo:
{
"base64FileData":""
}
|
Ritorna un oggetto json del tipo:
In caso si successo
{
"successo": true,
"messaggio": ""
}
In caso di errore
{
"successo": false,
"messaggio": "messaggio d'errore"
}
|
||||||||
| DELETE | Consente di eliminare la foto dell'utente |
Ritorna un oggetto json del tipo:
In caso si successo
{
"successo": true,
"messaggio": ""
}
In caso di errore
{
"successo": false,
"messaggio": "messaggio d'errore"
}
|
|||||||||
| utente/foto/download | POST | Consente di scaricare la foto dell'utente |
Ritorna un oggetto json del tipo:
In caso si successo lo stream di byte dell'immagine
In caso di errore
{
"successo": false,
"messaggio": "messaggio d'errore"
}
|
Per esecuire i serivi presenti in questa sezione è necessario utilizzare un utente che abbia il permesso "Accesso API"
Metodi presenti un questa sezione:| METODO | HTTP Verb | PARAMETRI | RISULTATO | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| timbrature | POST |
Questo metodo consente di inserire le timbrature/ore delle risorse. application/json Viene richiesto un oggetto JSON anche parziale del seguente tipo:
{
"data":"2020-03-02",
"matricola":"200",
"timbrature":[
{
"causale":"FERIE",
"descrizione":"Ferie",
"minuti":"120"
},
{
"causale":"ORD",
"descrizione":"Ore ordinarie",
"minuti":"180"
},
{
"causale":"STRA",
"descrizione":"Ore straordinario",
"minuti":"3"
},
{
"ingresso":"true",
"minuti":"1000"
},
{
"uscita":"true",
"minuti":"1123"
}
]
}
La data è nel fomato ISO yyyy-mm-dd Date valide possono essere:
L'oggetto timbratura contiene i seguenti campi:
L'oggetto timbratura può essere utilizzato per passare le timbrature così come sono state ricevute dal sistema
di rilevamento delle presente, ossia indicando "ingresso", "uscita".
Il numero di timbrature in ingresso deve essere uguale al numero di timbrature in uscita.
In questo caso si può omettere la causale in quanto sarà COMETA ad associare le ore alla causale configurata come marcatura.
Più in generale se non si vuole utilizzare il sistema di ingresso e uscita, e per tutte le ore che non possono essere gestite da un sistema di rilevamento delle presenze come ad esempio i giustificativi occorre specificare la causale con la relativa descrizione e in questo caso le ore saranno calcolatre sulla base dei minuti. Attenzione! |
Ritorna un oggetto json del tipo in caso di successo:
{
"successo": true,
"messaggio": null
}
In caso di errore:
{
"successo": false,
"messaggio": "Descrizione dell'errore"
}
|
To run the services in this section you need to use a user that has permission "Accesso API".
The authentication token is returned by the login method and has a time validity.Endpoint: https://www.cometasoftware.com/cometaapi/
The procedure consists of:
| METHOD | HTTP Verb | PARAMETERS | RESPONSE | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| login | POST, GET |
application/json
{
"username":"",
"password":"",
"id": ""
}
|
{
"token": "541bee22-edf2-4c04-98a1-66222b55d759",
....
}
|
||||||||||||||||||||||||||||||||
| jira/orders | POST |
This method allows to get orders from Cometa in order to get Order ID and Activity ID.
application/json
{
"filters": {
"status": "opened",
"id": null,
"description": null,
"customer": "lexis",
"resourceEmail": "emanuele.parenti@acdsolutions.it"
},
"page": 1,
"recordsPerPage": 50
}
|
The reults are sorted by ID:
{
"serachParameters": {
"filters": {
"status": "opened",
"id": null,
"description": null,
"customer": "lexis",
"resourceEmail": "emanuele.parenti@acdsolutions.it"
},
"page": 1,
"recordsPerPage": 50
},
"recordsCount": 1,
"recordsCountReturned": 1,
"orders": [
{
"id": 1155,
"description": "",
"status": "OPENED",
"startDate": "2023-09-01T00:00:00",
"endDate": "0001-01-01T00:00:00",
"expectedEndDate": "2024-06-30T00:00:00",
"tipology": "VipES",
"projectLeader": "Ruiz Santiago",
"businessUnitLeader": "Ullivarri Luis",
"businessUnit": "",
"customer": "LEXIS NEXIS",
"finalCustomer": "",
"offer": "ESP-230901 - SELF SERVICE PORTAL FOR BANK DATA VALIDATION",
"activities": [
{
"id": 6645,
"description": "SOFTWARE DEVELOPMENT"
},
{
"id": 5815,
"description": "UX/UI DESIGN"
}
]
}
],
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/task/create | POST |
This method allows create e Task in Cometa from a Jira Task. application/json
{
"idOrder":"1155",
"idTaskJira":"2345",
"idOrderActivity":"6645",
"title":"Prova Task Jira",
"description":"Task per inserimento ore da Jira",
"statusCode":"100"
}
|
{
"idTask": 10919,
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/task/status | POST |
This method allows to change the status of a Task. application/json
{
"idTask":"10922",
"idTaskJira":"2345",
"statusCode":"100"
}
|
{
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/timesheet | POST |
This method allows to change the status of a timesheet. application/json
{
"resourceEmail":"emanuele.parenti@acdsolutions.it",
"date":"2025-05-01"
}
|
{
"status": "SIGNED",
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/task/time | POST |
This method allows ti insert/modify hours in Cometa. application/json
{
"hoursType":"ORDINARY",
"idTask":"10922",
"idTaskJira":"2345",
"day":"2025-01-22",
"hours":"00:30",
"resourceEmail":"emanuele.parenti@acdsolutions.it",
}
Hours type are:
|
{
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/task/time | DELETE |
This method allows to delete hours in Cometa. application/json
{
"hoursType":"ORDINARY",
"idTask":"10922",
"idTaskJira":"2345",
"day":"2025-01-22",
"resourceEmail":"emanuele.parenti@acdsolutions.it",
}
Hours type are:
|
{
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/holidays | POST |
This method allows to get holidays. application/json
{
"resourceEmail":"emanuele.parenti@acdsolutions.it",
"fromDay":"2025-01-22",
"toDay":"2025-10-22",
"includeSunday":"false",
"includeEaster":"true",
}
|
{
"searchParameters": {
"resourceEmail": "emanuele.parenti@acdsolutions.it",
"fromDay": "2025-01-22T00:00:00",
"toDay": "2025-10-22T00:00:00",
"includeSunday": false,
"includeEaster": true
},
"holidays": [
{
"day": "2025-04-20T00:00:00",
"description": "Pasqua",
"dayOfTheWeek": "Sunday",
"dayOfTheWeekNumber": 0
},
{
"day": "2025-04-21T00:00:00",
"description": "Lunedì dell'Angelo",
"dayOfTheWeek": "Monday",
"dayOfTheWeekNumber": 1
},
{
"day": "2025-04-25T00:00:00",
"description": "liberazione",
"dayOfTheWeek": "Friday",
"dayOfTheWeekNumber": 5
},
{
"day": "2025-05-01T00:00:00",
"description": "festa del lavoro",
"dayOfTheWeek": "Thursday",
"dayOfTheWeekNumber": 4
},
{
"day": "2025-06-02T00:00:00",
"description": "festa della repubblica",
"dayOfTheWeek": "Monday",
"dayOfTheWeekNumber": 1
},
{
"day": "2025-08-15T00:00:00",
"description": "Assunzione",
"dayOfTheWeek": "Friday",
"dayOfTheWeekNumber": 5
}
],
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/task/statusList | POST |
This method allows to get available task status. application/json |
{
"statuses": [
{
"code": "AAAX",
"description": "S0 - New",
"initial": true,
"completed": false,
"colorName": "Red",
"colorHexadecimal": "#FF0000",
"colorRGB": "255,0,0"
},
{
"code": "XXX",
"description": "S1 - Get Evaluation",
"initial": false,
"completed": false,
"colorName": "Red",
"colorHexadecimal": "#FF0000",
"colorRGB": "255,0,0"
},
....
],
"success": true,
"message": null
}
|
||||||||||||||||||||||||||||||||
| jira/resource | POST |
This method allows to get info of resource. application/json
{
"resourceEmail":"emanuele.parenti@acdsolutions.it",
}
|
{
"nominative": "URSAN DRAGOS GIOVANI",
"surname": "URSAN",
"name": "DRAGOS GIOVANI",
"user": "dragosgiovani.ursan",
"role": "BE Software Developer Junior",
"relationShipType": "EMPLOYEE",
"headquarters": "VIA SASSETTI 32",
"contract": "Contratto tempo indeterminato",
"internalReference": "COSIMI STEFANO",
"email": "dragos.ursan@fabrick.com",
"starOftWorkability": "2022-03-21T00:00:00",
"endOfWorkability": "2125-12-31T00:00:00",
"enabled": true,
"success": true,
"message": null
}
|