Unico3.Link.API

<back to all web services

RicercaDocumentiEmessi

Documenti
The following routes are available for this service:
GET/documenti/emessi/da/{Da}Restituisce tutti i documenti con ID > {Da}
GET/documenti/emessi/ultimi/{Ultimi}Restituisce gli ultimi N documenti (utile per test)
GET/intervento/numero/{NumeroIntervento}/documentiRestituisce i documenti, se presenti, collegati ad un dato intervento
GET/intervento/id/{IdIntervento}/documentiRestituisce i documenti, se presenti, collegati ad un dato intervento
GET/interventi/{IdIntervento}/documentiRestituisce i documenti, se presenti, collegati ad un dato intervento
GET/documenti/emessi/da/data/{DataDa}/a/data/{DataA}Resituisce tutti i documenti con data compresa tra due date (estremi inclusi)
GET/documenti/emessi/da/data/{DataDa}Resituisce i documenti con data maggiore o uguale a una data limite
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK:
    id: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_TipologiaDocumento(FK, IUniqueDescrizione, IUniqueCodiceExport):
    codice_export: Optional[str] = None
    descrizione: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_CAT(FK, IUniqueCodice):
    codice: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Attivita(FK, IUniqueNumero):
    numero: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Impianto(FK, IUniqueCodiceNumerico, IUniqueCodiceExport):
    codice: Optional[int] = None
    codice_export: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_TipologiaIntervento(FK, IUniqueSigla, IUniqueDescrizione):
    descrizione: Optional[str] = None
    sigla: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Tecnico(FK, IUniqueSigla, IUniqueNominativo):
    sigla: Optional[str] = None
    nominativo: Optional[str] = None


class StatoSessioneMobile(str, Enum):
    APERTA = 'APERTA'
    CHIUSA = 'CHIUSA'


class StatoValidazione(str, Enum):
    D_A__V_A_L_I_D_A_R_E = 'DA_VALIDARE'
    VALIDATI = 'VALIDATI'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_StepValidazione(FK):
    descrizione: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidazioneIntervento:
    is_eseguita: Optional[bool] = None
    note: Optional[str] = None
    step_validazione: Optional[FK_StepValidazione] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Intervento:
    id: Optional[int] = None
    numero: Optional[int] = None
    richiesta: Optional[FK_Attivita] = None
    impianto: Optional[FK_Impianto] = None
    tipologia: Optional[FK_TipologiaIntervento] = None
    tecnico: Optional[FK_Tecnico] = None
    stato_sessione_mobile: Optional[StatoSessioneMobile] = None
    stato_validazione: Optional[StatoValidazione] = None
    validazioni: Optional[List[ValidazioneIntervento]] = None
    descrizione: Optional[str] = None
    note: Optional[str] = None
    data: Optional[datetime.datetime] = None
    ora_inizio: Optional[datetime.timedelta] = None
    durata: Optional[datetime.timedelta] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Anagrafica(FK, IUniqueCodiceNumerico, IUniqueCodiceExport):
    codice: Optional[int] = None
    codice_export: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Magazzino(FK, IUniqueDescrizione, IUniqueCodiceExport):
    descrizione: Optional[str] = None
    codice_export: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Pagamento(FK, IUniqueDescrizione, IUniqueCodiceExport):
    codice_export: Optional[str] = None
    descrizione: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_CausaleTrasporto(FK, IUniqueDescrizione):
    descrizione: Optional[str] = None


class TipoRiga(str, Enum):
    ARTICOLO = 'Articolo'
    MANUALE = 'Manuale'
    TESTO = 'Testo'
    DISTINTA = 'Distinta'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Articolo(FK, IUniqueCodice):
    codice: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_UdM(FK, IUniqueCodice, IUniqueDescrizione, IUniqueCodiceExport):
    codice: Optional[str] = None
    descrizione: Optional[str] = None
    codice_export: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Conto(FK, IUniqueCodice, IUniqueCodiceExport):
    codice: Optional[str] = None
    codice_export: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_AliquotaIVA(FK, IUniqueCodice, IUniqueCodiceExport):
    codice: Optional[str] = None
    codice_export: Optional[str] = None


class TipoPrezzoDistinta(str, Enum):
    ANALITICO = 'ANALITICO'
    FORFAIT = 'FORFAIT'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DettaglioDocumento:
    id: Optional[int] = None
    tipo: Optional[TipoRiga] = None
    articolo: Optional[FK_Articolo] = None
    codice: Optional[str] = None
    descrizione: Optional[str] = None
    descrizione_estesa: Optional[str] = None
    quantita: Optional[float] = None
    ud_m: Optional[FK_UdM] = None
    prezzo_unitario: Optional[float] = None
    importo: Optional[float] = None
    sconto: Optional[str] = None
    contropartita: Optional[FK_Conto] = None
    aliquota_i_v_a: Optional[FK_AliquotaIVA] = None
    is_garanzia: Optional[bool] = None
    tipo_prezzo_distinta: Optional[TipoPrezzoDistinta] = None
    is_componente_distinta: Optional[bool] = None
    id_testata_distinta: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Documento:
    id: Optional[int] = None
    codice_export: Optional[str] = None
    data: Optional[datetime.datetime] = None
    numero: Optional[str] = None
    tipologia: Optional[FK_TipologiaDocumento] = None
    cat: Optional[FK_CAT] = None
    intervento: Optional[Intervento] = None
    cliente: Optional[FK_Anagrafica] = None
    codice_fiscale: Optional[str] = None
    partita_iva: Optional[str] = None
    nominativo_intestatario: Optional[str] = None
    indirizzo_intestatario: Optional[str] = None
    comune_intestatario: Optional[str] = None
    cap_intestatario: Optional[str] = None
    provincia_intestatario: Optional[str] = None
    telefono_intestatario: Optional[str] = None
    nominativo_destinatario: Optional[str] = None
    indirizzo_destinatario: Optional[str] = None
    comune_destinatario: Optional[str] = None
    cap_destinatario: Optional[str] = None
    provincia_destinatario: Optional[str] = None
    magazzino_destinazione: Optional[FK_Magazzino] = None
    magazzino_origine: Optional[FK_Magazzino] = None
    impianto: Optional[FK_Impianto] = None
    nominativo_impianto: Optional[str] = None
    indirizzo_impianto: Optional[str] = None
    numero_civico_impianto: Optional[str] = None
    comune_impianto: Optional[str] = None
    cap_impianto: Optional[str] = None
    provincia_impianto: Optional[str] = None
    imponibile: Optional[float] = None
    imposta: Optional[float] = None
    esente: Optional[float] = None
    arrotondamento: Optional[float] = None
    totale_importo: Optional[float] = None
    pagamento_contestuale: Optional[FK_Pagamento] = None
    pagato: Optional[float] = None
    pagamento_differito: Optional[FK_Pagamento] = None
    iva_di_cassa: Optional[bool] = None
    is_fatturare: Optional[bool] = None
    causale_di_trasporto: Optional[FK_CausaleTrasporto] = None
    dettagli: Optional[List[DettaglioDocumento]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDocumentiResponse:
    documenti: Optional[List[Documento]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FK_Intervento(FK, IUniqueNumero):
    numero: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RicercaDocumentiEmessi:
    da: Optional[int] = None
    ultimi: Optional[int] = None
    da_fatturare: Optional[bool] = None
    is_fatturato: Optional[bool] = None
    is_intervento: Optional[bool] = None
    is_commessa: Optional[bool] = None
    intervento: Optional[FK_Intervento] = None
    tipologia: Optional[FK_TipologiaDocumento] = None
    cat: Optional[FK_CAT] = None
    tecnico: Optional[FK_Tecnico] = None
    data_a: Optional[datetime.datetime] = None
    data_da: Optional[datetime.datetime] = None
    sessione_mobile: Optional[StatoSessioneMobile] = None
    validazione: Optional[StatoValidazione] = None
    is_supporto_distinte: Optional[bool] = None

Python RicercaDocumentiEmessi DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /documenti/emessi/da/{Da} HTTP/1.1 
Host: unico3.link.api 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Documenti":[{"Id":0,"CodiceExport":"String","Data":"0001-01-01T00:00:00.0000000","Numero":"String","Tipologia":{"CodiceExport":"String","Descrizione":"String","Id":0},"CAT":{"Codice":"String","Id":0},"Intervento":{"Id":0,"Numero":0,"Richiesta":{"Numero":0,"Id":0},"Impianto":{"Codice":0,"CodiceExport":"String","Id":0},"Tipologia":{"Descrizione":"String","Sigla":"String","Id":0},"Tecnico":{"Sigla":"String","Nominativo":"String","Id":0},"StatoSessioneMobile":"APERTA","StatoValidazione":"DA_VALIDARE","Validazioni":[{"IsEseguita":false,"Note":"String","StepValidazione":{"Descrizione":"String","Id":0}}],"Descrizione":"String","Note":"String","Data":"0001-01-01T00:00:00.0000000","OraInizio":"PT0S","Durata":"PT0S"},"Cliente":{"Codice":0,"CodiceExport":"String","Id":0},"CodiceFiscale":"String","PartitaIva":"String","NominativoIntestatario":"String","IndirizzoIntestatario":"String","ComuneIntestatario":"String","CAPIntestatario":"String","ProvinciaIntestatario":"String","TelefonoIntestatario":"String","NominativoDestinatario":"String","IndirizzoDestinatario":"String","ComuneDestinatario":"String","CAPDestinatario":"String","ProvinciaDestinatario":"String","MagazzinoDestinazione":{"Descrizione":"String","CodiceExport":"String","Id":0},"MagazzinoOrigine":{"Descrizione":"String","CodiceExport":"String","Id":0},"Impianto":{"Codice":0,"CodiceExport":"String","Id":0},"NominativoImpianto":"String","IndirizzoImpianto":"String","NumeroCivicoImpianto":"String","ComuneImpianto":"String","CAPImpianto":"String","ProvinciaImpianto":"String","Imponibile":0,"Imposta":0,"Esente":0,"Arrotondamento":0,"TotaleImporto":0,"PagamentoContestuale":{"CodiceExport":"String","Descrizione":"String","Id":0},"Pagato":0,"PagamentoDifferito":{"CodiceExport":"String","Descrizione":"String","Id":0},"IvaDiCassa":false,"IsFatturare":false,"CausaleDiTrasporto":{"Descrizione":"String","Id":0},"Dettagli":[{"Id":0,"Tipo":"Articolo","Articolo":{"Codice":"String","Id":0},"Codice":"String","Descrizione":"String","DescrizioneEstesa":"String","Quantita":0,"UdM":{"Codice":"String","Descrizione":"String","CodiceExport":"String","Id":0},"PrezzoUnitario":0,"Importo":0,"Sconto":"String","Contropartita":{"Codice":"String","CodiceExport":"String","Id":0},"AliquotaIVA":{"Codice":"String","CodiceExport":"String","Id":0},"IsGaranzia":false,"TipoPrezzoDistinta":"ANALITICO","IsComponenteDistinta":false,"IdTestataDistinta":0}]}]}