""" Options: Date: 2026-06-06 01:11:36 Version: 5.140 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://link.dc8.unico3.cloud #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: RicercaDocumentiEmessi.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ 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_CAT(FK, IUniqueCodice): codice: Optional[str] = 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_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_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_AliquotaIVA(FK, IUniqueCodice, IUniqueCodiceExport): codice: 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_Articolo(FK, IUniqueCodice): codice: Optional[str] = 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 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_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_Attivita(FK, IUniqueNumero): numero: Optional[int] = 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_StepValidazione(FK): descrizione: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ValidazioneIntervento: is_eseguita: bool = False note: Optional[str] = None step_validazione: Optional[FK_StepValidazione] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Intervento: id: int = 0 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: datetime.datetime = datetime.datetime(1, 1, 1) ora_inizio: Optional[datetime.timedelta] = None durata: Optional[datetime.timedelta] = 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' class TipoPrezzoDistinta(str, Enum): ANALITICO = 'ANALITICO' FORFAIT = 'FORFAIT' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DettaglioDocumento: id: int = 0 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: bool = False tipo_prezzo_distinta: Optional[TipoPrezzoDistinta] = None is_componente_distinta: bool = False id_testata_distinta: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Documento: id: int = 0 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 class IUniqueSigla(IForeignKey): sigla: Optional[str] = None class IForeignKey: id: Optional[int] = None class IUniqueDescrizione(IForeignKey): descrizione: Optional[str] = None class IUniqueCodiceExport(IForeignKey): codice_export: Optional[str] = None class IUniqueCodice(IForeignKey): codice: Optional[str] = None class IUniqueCodiceNumerico(IForeignKey): codice: Optional[int] = None class IUniqueNumero(IForeignKey): numero: Optional[int] = None class IUniqueNominativo(IForeignKey): nominativo: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetDocumentiResponse: documenti: Optional[List[Documento]] = None # @Route("/documenti/emessi/da/{Da}", "GET") # @Route("/intervento/numero/{NumeroIntervento}/documenti", "GET") # @Route("/intervento/id/{IdIntervento}/documenti", "GET") # @Route("/interventi/{IdIntervento}/documenti", "GET") # @Route("/documenti/emessi/da/data/{DataDa}/a/data/{DataA}", "GET") # @Route("/documenti/emessi/da/data/{DataDa}", "GET") # @Route("/documenti/emessi/ultimi/{Ultimi}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RicercaDocumentiEmessi(IReturn[GetDocumentiResponse]): da: Optional[int] = None ultimi: Optional[int] = None da_fatturare: Optional[bool] = None is_fatturato: Optional[bool] = None is_intervento: bool = False is_commessa: bool = False 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: bool = False