| 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}/documenti | Restituisce i documenti, se presenti, collegati ad un dato intervento | |
| GET | /intervento/id/{IdIntervento}/documenti | Restituisce i documenti, se presenti, collegati ad un dato intervento | |
| GET | /interventi/{IdIntervento}/documenti | Restituisce 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
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}]}]}