From 808e201e7867bca7ac1dd6077b2f3a70162522b2 Mon Sep 17 00:00:00 2001 From: Guillermo Valdes Date: Tue, 2 Jul 2024 15:23:49 -0600 Subject: [PATCH] Por probar --- carina/core/exh_exhortos/models.py | 28 +++++++- carina/v4/exh_exhortos/schemas.py | 83 +++++++++++++++++++++++- carina/v4/exh_exhortos_archivos/paths.py | 6 +- 3 files changed, 109 insertions(+), 8 deletions(-) diff --git a/carina/core/exh_exhortos/models.py b/carina/core/exh_exhortos/models.py index 54c8eb7..7113d61 100644 --- a/carina/core/exh_exhortos/models.py +++ b/carina/core/exh_exhortos/models.py @@ -27,7 +27,7 @@ class ExhExhorto(Base, UniversalMixin): "CANCELADO": "Cancelado", "POR ENVIAR": "Por enviar", "INTENTOS AGOTADOS": "Intentos agotados", - "RECIBIDO CON EXITO": "Recibido con exito", + "RECIBIDO CON EXITO": "Recibido con éxito", "NO FUE RESPONDIDO": "No fue respondido", "RESPONDIDO": "Respondido", } @@ -65,7 +65,7 @@ class ExhExhorto(Base, UniversalMixin): # UUID identificador con el que el PJ exhortante identifica el exhorto que envía exhorto_origen_id: Mapped[str] = mapped_column(Uuid, unique=True) - # Identificador INEGI del Municipio del Estado del PJ exhortado al que se quiere enviar el Exhorto + # ID de la tabla Municipios: Para el payload es el Identificador INEGI del Municipio del Estado del PJ exhortado al que se quiere enviar el Exhorto municipio_destino_id: Mapped[int] # Identificador propio del Juzgado/Área que envía el Exhorto, opcional @@ -129,6 +129,30 @@ class ExhExhorto(Base, UniversalMixin): # Y se lleva un contador de intentos por_enviar_intentos: Mapped[int] = mapped_column(Integer, default=0) + # Acuse fecha hora local en el que el Poder Judicial exhortado marca que se recibió el Exhorto + acuse_fecha_hora_recepcion: Mapped[Optional[datetime]] + + # Acuse Identificador del muncipio en donde se recibió o turnó el exhorto. + # Puede dar el caso que el exhorto se turne directamente al Juzgado, por lo que este dato seria + # el identificador del municipio donde está el Juzgado. + # En caso que se tenga una "Oficialía Virtual", no es necesario especificar este dato. + # NOTA: este dato corresponde al catálogo de municipios del INEGI. + acuse_municipio_area_recibe_id: Mapped[Optional[int]] + + # Acuse Identificador del área o Juzgado turnado en donde se recibe el Exhorto. + # En caso que todavía no esté turnado o se disponga de una "Oficialía Virtual", + # este dato puede no ir en la respuesta. + acuse_area_recibe_id: Mapped[Optional[str]] = mapped_column(String(256)) + + # Acuse Nombre del área o Juzgado turnado en donde se encuentra el Exhorto. + # En caso de tener una "Oficialía Virtual", este dato puede omitirse + acuse_area_recibe_nombre: Mapped[Optional[str]] = mapped_column(String(256)) + + # Acuse Contiene una URL para abrir una página con la información referente a la recepción del exhorto que se realizó. + # Esta página el Juzgado que envió el exhorto la puede imprimir como acuse de recibido y evidencia de que el exhorto + # fue enviado correctamente al Poder Judicial exhortado o también una página que muestre el estatus del exhorto. + acuse_url_info: Mapped[Optional[str]] = mapped_column(String(256)) + def __repr__(self): """Representación""" return f"" diff --git a/carina/v4/exh_exhortos/schemas.py b/carina/v4/exh_exhortos/schemas.py index 8046886..0b11715 100644 --- a/carina/v4/exh_exhortos/schemas.py +++ b/carina/v4/exh_exhortos/schemas.py @@ -4,9 +4,10 @@ from datetime import datetime -from pydantic import BaseModel, ConfigDict +from pydantic import BaseModel from lib.schemas_base import OneBaseOut + from ..exh_exhortos_archivos.schemas import ExhExhortoArchivoIn from ..exh_exhortos_partes.schemas import ExhExhortoParteIn @@ -14,42 +15,122 @@ class ExhExhortoIn(BaseModel): """Esquema para recibir exhortos""" + # exhortoOrigenId: Es el identificador con el que el Poder Judicial exhortante identifica el exhorto que envía. + # Este dato puede ser un número consecutivo si así el Poder Judicial exhortante (de origen) identifica + # el registro del Exhorto, también puede ser un GUID/UUID u otro valor que sea único para el Poder Judicial exhortante. + # Este dato es importante porque se utilizará para poder hacer la devolución/respuesta del exhorto por el Juzgado exhortado. exhortoOrigenId: str | None = None + + # municipioDestinoId: Identificador del municipio del Estado del Poder Judical exhortado al que se quiere enviar el Exhorto. + # Este debe corresponder al identificador definido por el catálogo de municipios y estados del INEGI municipioDestinoId: int | None = None + + # materiaClave string SI Clave de la materia (el que se obtuvo en la consulta de materias del Poder Judicial exhortado) + # al que el Exhorto hace referencia. Este contiene la materia actuál del registro del Exhorto materiaClave: str | None = None + + # estadoOrigenId: Identificador del estado de origen del municipio donde se ubica el Juzgado del Poder Judicial exhortante. + # Este dato debe ser uno de los valores correspondientes al catálogo de estados del INEGI. estadoOrigenId: int | None = None + + # municipioOrigenId int SI Identificador del municipio donde está localizado el Juzgado/Área del Poder Judicial exhortante. + # Este identificador debe coincidir con el del catálogo del INEGI de municipios y estados. municipioOrigenId: int | None = None + + # juzgadoOrigenId: Identificador propio del Juzgado/Área que envía el Exhorto. + # Identificador con el que el Poder Judicial exhortante identifica al Juzgado/Área juzgadoOrigenId: str | None = None + + # juzgadoOrigenNombre: Nombre del Juzgado/Área que envía el Exhorto. juzgadoOrigenNombre: str | None = None + + # numeroExpedienteOrigen: El número de expediente (o carpeta procesal, carpeta...) + # que tiene el asunto en el Juzgado de Origen. numeroExpedienteOrigen: str | None = None + + # numeroOficioOrigen: El número del oficio con el que se envía el exhorto, + # el que corresponde al control interno del Juzgado de origen numeroOficioOrigen: str | None = None + + # tipoJuicioAsuntoDelitos: Nombre del tipo de Juicio, o asunto, listado de los delitos (para materia Penal) + # que corresponde al Expediente del cual el Juzgado envía el Exhorto tipoJuicioAsuntoDelitos: str | None = None + + # juezExhortante: Nombre completo del Juez del Juzgado o titular del Área que envía el Exhorto juezExhortante: str | None = None + + # partes: Contiene la definición de las partes del Expediente partes: list[ExhExhortoParteIn] | None = None + + # fojas: Número de fojas que contiene el exhorto. El valor 0 significa "No Especificado". fojas: int | None = None + + # diasResponder: Cantidad de dias a partir del día que se recibió en el Poder Judicial exhortado que se tiene para + # responder el Exhorto. El valor de 0 significa "No Especificado". diasResponder: int | None = None + + # tipoDiligenciacionNombre: Nombre del tipo de diligenciación que le corresponde al exhorto enviado. + # Este puede contener valores como "Oficio", "Petición de Parte" tipoDiligenciacionNombre: str | None = None + + # fechaOrigen: Fecha y hora en que el Poder Judicial exhortante registró que se envió el exhorto en su hora local. + # En caso de no enviar este dato, el Poder Judicial exhortado puede tomar su fecha hora local. fechaOrigen: datetime | None = None + + # observaciones: Texto simple que contenga información extra o relevante sobre el exhorto. observaciones: str | None = None + + # archivos: Colección de los datos correspondientes a los archivos recibidos del Exhorto archivos: list[ExhExhortoArchivoIn] | None = None class ExhExhortoOut(ExhExhortoIn): """Esquema para entregar exhortos""" + # folioSeguimiento: Folio de seguimiento generado para el Exhorto que recibió el Poder Judicial Exhortado folioSeguimiento: str | None = None + + # estadoDestinoId: Identificador del estado de destino del Exhorto estadoDestinoId: int | None = None + + # estadoDestinoNombre: Nombre del estado de destino del Exhorto estadoDestinoNombre: str | None = None + + # municipioDestinoNombre: Nombre del municipio de destino al que se envió el Exhorto municipioDestinoNombre: str | None = None + + # materiaNombre: Nombre de la materia materiaNombre: str | None = None + + # estadoOrigenNombre: Nombre del Estado de origen del Exhorto estadoOrigenNombre: str | None = None + + # municipioOrigenNombre: Nombre del municipio de origen del Juzgado/Área que envió el Exhorto municipioOrigenNombre: str | None = None + + # fechaHoraRecepcion: Fecha hora local en el que el Poder Judicial exhortado marca que se recibió el Exhorto. fechaHoraRecepcion: datetime | None = None + + # municipioTurnadoId: Identificador del municipio que corresponde al Juzgado/Área al que se turnó el Exhorto municipioTurnadoId: int | None = None + + # municipioTurnadoNombre: Nombre del municipio del Juzgado/Área al que se turnó el Exhorto municipioTurnadoNombre: str | None = None + + # areaTurnadoId: Identificador propio del Poder Judicial Exhortado que corresponde al Juzgado/Área al que se turna el + # Exhorto y hará el correspondiente proceso de este. areaTurnadoId: str | None = None + + # areaTurnadoNombre: Nombre del Juzgado/Área al Exhorto y hará el correspondiente proceso de este. areaTurnadoNombre: str | None = None + + # numeroExhorto: Número de Exhorto con el que se radica en el Juzgado/Área que se turnó el exhorto. + # Este número sirve para que el usuario pueda indentificar su exhorto dentro del Juzgado/Área donde se turnó. numeroExhorto: str | None = None + + # urlInfo: Contiene una URL para abrir una página con la información referente a la recepción del exhorto que se realizó. + # Esta página el Juzgado que envió el exhorto la puede imprimir como acuse de recibido y evidencia de que el exhorto fue + # enviado correctamente al Poder Judicial exhortado o también una página que muestre el estatus del exhorto. urlInfo: str | None = None diff --git a/carina/v4/exh_exhortos_archivos/paths.py b/carina/v4/exh_exhortos_archivos/paths.py index af563a8..fb574f8 100644 --- a/carina/v4/exh_exhortos_archivos/paths.py +++ b/carina/v4/exh_exhortos_archivos/paths.py @@ -8,24 +8,20 @@ from typing import Annotated from fastapi import APIRouter, Depends, HTTPException, UploadFile, status -from fastapi_pagination.ext.sqlalchemy import paginate from carina.core.permisos.models import Permiso from carina.v4.exh_exhortos.crud import get_exh_exhorto_by_exhorto_origen_id, update_set_exhorto -from carina.v4.exh_exhortos_archivos.crud import get_exh_exhorto_archivo, get_exh_exhortos_archivos, update_set_exhorto_archivo +from carina.v4.exh_exhortos_archivos.crud import get_exh_exhortos_archivos, update_set_exhorto_archivo from carina.v4.exh_exhortos_archivos.schemas import ( ExhExhortoArchivoFileDataAcuseOut, ExhExhortoArchivoFileDataArchivoOut, ExhExhortoArchivoFileDataOut, ExhExhortoArchivoFileOut, - ExhExhortoArchivoOut, - OneExhExhortoArchivoOut, ) from carina.v4.usuarios.authentications import UsuarioInDB, get_current_active_user from config.settings import get_settings from lib.database import Session, get_db from lib.exceptions import MyAnyError -from lib.fastapi_pagination_custom_page import CustomPage from lib.google_cloud_storage import upload_file_to_gcs exh_exhortos_archivos = APIRouter(prefix="/v4/exh_exhortos_archivos", tags=["exhortos archivos"])