| All Verbs | /Utilidades/Formas/GuardarDatos |
|---|
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 NovedadesCarga:
fila: int = 0
columna: int = 0
tipo_error: Optional[str] = None
novedad: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GuardarDatosFormaDetalleRS:
id_detalle: Decimal = decimal.Decimal(0)
novedades: Optional[List[NovedadesCarga]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GeneralRS:
# @ApiMember(DataType="int", Description="Id del código de respuesta 1: Correcto, -1: Error", IsRequired=true, ParameterType="body")
codigo: int = 0
"""
Id del código de respuesta 1: Correcto, -1: Error
"""
# @ApiMember(DataType="string", Description="Mensaje que se envía al ejecutar el servicio", IsRequired=true, ParameterType="body")
mensaje: Optional[str] = None
"""
Mensaje que se envía al ejecutar el servicio
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ExecuteDBFunctionRS(GeneralRS):
respuesta: Optional[Object] = None
id_ejecucion: Decimal = decimal.Decimal(0)
url_archivo: Optional[str] = None
tipo_respuesta: Optional[str] = None
background: bool = False
tiempo_respuesta_b_d: int = 0
tiempo_respuesta_total: int = 0
# @ApiMember(DataType="int", Description="Id del código de respuesta 1: Correcto, -1: Error", IsRequired=true, ParameterType="body")
codigo: int = 0
"""
Id del código de respuesta 1: Correcto, -1: Error
"""
# @ApiMember(DataType="string", Description="Mensaje que se envía al ejecutar el servicio", IsRequired=true, ParameterType="body")
mensaje: Optional[str] = None
"""
Mensaje que se envía al ejecutar el servicio
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GuardarDatosFormaRS:
success: bool = False
error: Optional[str] = None
datos_llave_maestro: Optional[Dict[str, Object]] = None
novedades_detalles: Optional[List[GuardarDatosFormaDetalleRS]] = None
respuesta_proc_almacenado: Optional[ExecuteDBFunctionRS] = None
class OperacionDatos(str, Enum):
INSERT = 'INSERT'
UPDATE = 'UPDATE'
DELETE = 'DELETE'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GuardarDatosDetalle:
id_detalle: int = 0
datos_insert: Optional[List[Dict[str, Object]]] = None
datos_update: Optional[List[Dict[str, Object]]] = None
datos_delete: Optional[List[Dict[str, Object]]] = None
nombre_archivo: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GuardarDatosFormaRQ:
id_forma: int = 0
operacion: Optional[OperacionDatos] = None
datos_maestro: Optional[Dict[str, Object]] = None
datos_detalle: Optional[List[GuardarDatosDetalle]] = None
formas_dep: Optional[List[GuardarDatosFormaRQ]] = None
token_carga_archivos: Optional[str] = None
Python GuardarDatosFormaRQ DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Utilidades/Formas/GuardarDatos HTTP/1.1
Host: soluser-recaudo.sgsas.co
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
IDForma: 0,
Operacion: INSERT,
DatosMaestro:
{
String: {}
},
DatosDetalle:
[
{
IDDetalle: 0,
DatosInsert:
[
{
String: {}
}
],
DatosUpdate:
[
{
String: {}
}
],
DatosDelete:
[
{
String: {}
}
],
NombreArchivo: String
}
],
FormasDep:
[
{
IDForma: 0,
Operacion: INSERT,
DatosMaestro:
{
String: {}
},
DatosDetalle:
[
{
IDDetalle: 0,
DatosInsert:
[
{
String: {}
}
],
DatosUpdate:
[
{
String: {}
}
],
DatosDelete:
[
{
String: {}
}
],
NombreArchivo: String
}
],
FormasDep:
[
{
IDForma: 0,
Operacion: INSERT,
DatosMaestro:
{
String: {}
},
DatosDetalle:
[
{
IDDetalle: 0,
DatosInsert:
[
{
String: {}
}
],
DatosUpdate:
[
{
String: {}
}
],
DatosDelete:
[
{
String: {}
}
],
NombreArchivo: String
}
],
FormasDep:
[
{
IDForma: 0,
Operacion: INSERT,
DatosMaestro:
{
String: {}
},
DatosDetalle:
[
{
IDDetalle: 0,
DatosInsert:
[
{
String: {}
}
],
DatosUpdate:
[
{
String: {}
}
],
DatosDelete:
[
{
String: {}
}
],
NombreArchivo: String
}
],
TokenCargaArchivos: String
}
],
TokenCargaArchivos: String
}
],
TokenCargaArchivos: String
}
],
TokenCargaArchivos: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Success: False,
Error: String,
DatosLlaveMaestro:
{
String: {}
},
NovedadesDetalles:
[
{
IDDetalle: 0,
Novedades:
[
{
Fila: 0,
Columna: 0,
TipoError: String,
Novedad: String
}
]
}
],
RespuestaProcAlmacenado:
{
Respuesta: {},
IDEjecucion: 0,
URLArchivo: String,
TipoRespuesta: String,
Background: False,
TiempoRespuestaBD: 0,
TiempoRespuestaTotal: 0,
Codigo: 0,
Mensaje: String
}
}