ManganelliOrdiniApi/models.py

77 lines
4.1 KiB
Python

from decimal import Decimal
from datetime import datetime
from pydantic import BaseModel,Field
from typing import List, Optional
class Cliente(BaseModel):
antipcon: str= Field(..., description="Chiave primaria")
ancodice: str= Field(..., description="Chiave primaria")
andescri: Optional[str] = Field(None, description="Ragione sociale")
anpariva: Optional[str] = Field(None, description="Partita iva")
ancodfis: Optional[str] = Field(None, description="codice Fiscale")
anindiri: Optional[str] = Field(None, description="Indirizzo")
class SedeConsegna(BaseModel):
ddtipcon: str= Field(description="Chiave primaria")
ddcodice: str= Field(description="Chiave primaria")
ddcoddes: str= Field(description="Chiave primaria")
ddnomdes: Optional[str] = Field(None, description="Nome della sede di destinazione")
ddindiri: Optional[str] = Field(None, description="Indirizzo della sede di destinazione")
dd___cap: Optional[str] = Field(None, description="CAP della sede di destinazione")
ddlocali: Optional[str] = Field(None, description="località della sede di destinazione")
ddprovin: Optional[str] = Field(None, description="Provincia della sede di destinazione")
ddcodnaz: Optional[str] = Field(None, description="nazione della sede di destinazione")
class Articolo(BaseModel):
arcodart: str= Field(..., description="Chiave primaria")
ardesart: Optional[str]= Field(None, description="Descrizione articolo")
ardessup: Optional[str]= Field(None, description="Descrizione supplementare")
arunmis1: Optional[str]= Field(None, description="Unità di misura")
arcodiva: Optional[str]= Field(None, description="Codice Iva articolo")
class CodiceRicerca(BaseModel):
cacodice: str = Field(..., description="Chiave primaria")
cadesart: Optional[str]= Field(None, description="Descrizione codice ricerca")
cacodart: Optional[str]= Field(None, description="articolo principale")
cadessup: Optional[str]= Field(None, description="Descrizione supplementare codice ricerca")
class MetodoPagamento(BaseModel):
pacodice: str = Field(..., description="Chiave primaria")
padescri: Optional[str]= Field(None, description="Descrizione metodo pagamento")
class Magazzini(BaseModel):
mgcodmag: str = Field(..., description="Chiave primaria")
mgdesmag: Optional[str]= Field(None, description="Descrizione magazzino")
class DisponibilitaArticolo(BaseModel):
slqtaper: int = Field(..., description="qta disponibile")
slcodart: str = Field(..., description="Chiave primaria")
class OrdineRiga(BaseModel):
orserial: str = Field(..., description="Chiave primaria")
cprownum: int = Field(..., description="num riga Chiave primaria")
orcodart: str = Field(..., description="codice articolo")
ordesart: str = Field(..., description="descrizione articolo")
ordessup: str = Field(..., description="descrizione suppl. articolo")
orqtamov: int = Field(..., description="quantità")
orcodice: str = Field(..., description="chiave di ricerca articolo")
orunimis: str = Field(..., description="unità di misura")
orcodiva: str = Field(..., description="codice iva articolo")
class OrdineTestata(BaseModel):
orserial: str = Field(..., description="Chiave primaria")
or_stato: int = Field(..., description="Stato ordine def: 1")
ortipdoc: str = Field(..., description="Tipo documento def: OR=ordine")
ornumdoc: Optional[Decimal]= Field(None, description="Numero documento")
oralfdoc: Optional[str]= Field(None, description="Sezionale documento ordine")
ortipcon: str = Field(..., description="Tipo anagrafica Clienti=C")
orcodcon: str = Field(..., description="codice anagrafica cliente")
orcodage: Optional[str]= Field(None, description="codice agente")
orcodpag: Optional[str]= Field(None, description="codice pagamento")
ortotord: Optional[Decimal]= Field(None, description="Totale ordine")
ordatdoc: datetime = Field(..., description="data documento")
righe: List[OrdineRiga]
cliente: Optional[Cliente] = None
codice_cliente: Optional[str]= Field(None, description="Codice cliente nel caso l'anagrafica esista")