[MVPTN-106] feat(crud): Implementação de gerenciamento de etiqueta para o formulário Tipos de Serviço
This commit is contained in:
parent
87d720629f
commit
808bc15664
7 changed files with 160 additions and 7 deletions
|
|
@ -0,0 +1,28 @@
|
|||
from abstracts.action import BaseAction
|
||||
from packages.v1.administrativo.schemas.t_servico_etiqueta_schema import TServicoEtiquetaServicoTipoIdSchema
|
||||
from packages.v1.administrativo.repositories.t_servico_etiqueta.t_servico_etiqueta_show_servico_tipo_repository import ShowRepository
|
||||
|
||||
class ShowAction(BaseAction):
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a exibição
|
||||
de um registro na tabela T_SERVICO_ETIQUETA.
|
||||
"""
|
||||
|
||||
def execute(self, servico_tipo_schema: TServicoEtiquetaServicoTipoIdSchema):
|
||||
"""
|
||||
Executa a operação de exibição.
|
||||
|
||||
Args:
|
||||
servico_etiqueta_schema (TServicoEtiquetaServicoTipoIdSchema): O esquema com o ID (SERVICO_TIPO_ID) do registro a ser exibido.
|
||||
|
||||
Returns:
|
||||
O resultado da operação de exibição.
|
||||
"""
|
||||
# Instânciamento do repositório
|
||||
show_repository = ShowRepository()
|
||||
|
||||
# Execução do repositório
|
||||
response = show_repository.execute(servico_tipo_schema)
|
||||
|
||||
# Retorno da informação
|
||||
return response
|
||||
|
|
@ -35,6 +35,21 @@ class TServicoEtiquetaController:
|
|||
'data': self.index_service.execute()
|
||||
}
|
||||
|
||||
|
||||
# Busca um registro de servico etiqueta específico pelo ID serviço tipo
|
||||
def showServicoTipo(self, servico_tipo_schema: TServicoEtiquetaServicoTipoIdSchema):
|
||||
|
||||
#Importação da classe desejada
|
||||
show_service = self.dynamic_import.service('t_servico_etiqueta_show_servico_tipo_service', 'ShowService')
|
||||
|
||||
# Instância da classe desejada
|
||||
self.show_service = show_service()
|
||||
|
||||
# Busca e retorna o registro de servico etiqueta desejado
|
||||
return {
|
||||
'message': 'Registros de serviço etiqueta localizados com sucesso',
|
||||
'data': self.show_service.execute(servico_tipo_schema)
|
||||
}
|
||||
|
||||
# Busca um registro de servico etiqueta específico pelo ID
|
||||
def show(self, servico_etiqueta_schema: TServicoEtiquetaIdSchema):
|
||||
|
|
|
|||
|
|
@ -30,6 +30,23 @@ async def index(current_user: dict = Depends(get_current_user)):
|
|||
return response
|
||||
|
||||
|
||||
# Localiza um registro de servico etiqueta pelo serviço tipo
|
||||
@router.get('/servico_tipo/{servico_tipo_id}',
|
||||
status_code=status.HTTP_200_OK,
|
||||
summary='Busca um registro de servico etiqueta em específico pelo ID do serviço ',
|
||||
response_description='Busca um registro de servico etiqueta em específico')
|
||||
async def showServicoTipo(servico_tipo_id : int, current_user: dict = Depends(get_current_user)):
|
||||
|
||||
# Cria o schema com os dados recebidos
|
||||
servico_tipo_schema = TServicoEtiquetaServicoTipoIdSchema(servico_tipo_id=servico_tipo_id)
|
||||
|
||||
# Busca um registro de servico etiqueta específico pelo ID
|
||||
response = t_servico_etiqueta_controller.showServicoTipo(servico_tipo_schema)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
||||
|
||||
# Localiza um registro de servico etiqueta pelo ID
|
||||
@router.get('/{servico_etiqueta_id}',
|
||||
status_code=status.HTTP_200_OK,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
from abstracts.repository import BaseRepository
|
||||
from packages.v1.administrativo.schemas.t_servico_etiqueta_schema import TServicoEtiquetaServicoTipoIdSchema # Schema ajustado para T_SERVICO_ETIQUETA
|
||||
from fastapi import HTTPException, status
|
||||
|
||||
class ShowRepository(BaseRepository):
|
||||
"""
|
||||
Repositório para a operação de exibição de um registro na tabela T_SERVICO_ETIQUETA.
|
||||
"""
|
||||
|
||||
def execute(self, servico_tipo_schema: TServicoEtiquetaServicoTipoIdSchema): # Nome do parâmetro e tipo ajustados
|
||||
"""
|
||||
Busca um registro específico de T_SERVICO_ETIQUETA pelo ID.
|
||||
|
||||
Args:
|
||||
servico_etiqueta_schema (TServicoEtiquetaIdSchema): O esquema que contém o ID do registro. # Nome do tipo ajustado
|
||||
|
||||
Returns:
|
||||
O registro encontrado ou None se não existir.
|
||||
|
||||
Raises:
|
||||
HTTPException: Caso ocorra um erro na execução da query.
|
||||
"""
|
||||
try:
|
||||
# Montagem do SQL
|
||||
# Tabela e coluna da chave primária ajustadas para T_SERVICO_ETIQUETA
|
||||
sql = """ SELECT E.SERVICO_ETIQUETA_ID,
|
||||
E.ETIQUETA_MODELO_ID,
|
||||
E.SERVICO_TIPO_ID,
|
||||
T.DESCRICAO
|
||||
FROM T_SERVICO_ETIQUETA E
|
||||
LEFT JOIN G_MARCACAO_TIPO T ON E.ETIQUETA_MODELO_ID = T.MARCACAO_TIPO_ID
|
||||
WHERE E.SERVICO_TIPO_ID = :servico_tipo_id """
|
||||
|
||||
# Preenchimento de parâmetros
|
||||
params = {
|
||||
# Nome do parâmetro ajustado para SERVICO_TIPO_ID
|
||||
'servico_tipo_id': servico_tipo_schema.servico_tipo_id
|
||||
}
|
||||
|
||||
# Execução do SQL
|
||||
result = self.fetch_all(sql, params)
|
||||
|
||||
if not result:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Registro não encontrado"
|
||||
)
|
||||
|
||||
return result
|
||||
except Exception as e:
|
||||
# Tratamento de erro ajustado
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
detail=f"Erro ao buscar registro T_SERVICO_ETIQUETA: {str(e)}"
|
||||
)
|
||||
|
|
@ -22,7 +22,7 @@ class SaveRepository(BaseRepository):
|
|||
Raises:
|
||||
HTTPException: Caso ocorra um erro na execução da query.
|
||||
"""
|
||||
try:
|
||||
try:
|
||||
|
||||
# Montagem do SQL
|
||||
sql = """ INSERT INTO T_SERVICO_TIPO(
|
||||
|
|
|
|||
|
|
@ -51,9 +51,9 @@ class UpdateRepository(BaseRepository):
|
|||
updates.append("TIPO_PESSOA = :tipo_pessoa")
|
||||
params["tipo_pessoa"] = servico_tipo_schema.tipo_pessoa
|
||||
|
||||
# if servico_tipo_schema.tb_reconhecimentotipo_id is not None:
|
||||
# updates.append("TB_RECONHECIMENTOTIPO_ID = :tb_reconhecimentotipo_id")
|
||||
# params["tb_reconhecimentotipo_id"] = servico_tipo_schema.tb_reconhecimentotipo_id
|
||||
if servico_tipo_schema.tb_reconhecimentotipo_id is not None:
|
||||
updates.append("TB_RECONHECIMENTOTIPO_ID = :tb_reconhecimentotipo_id")
|
||||
params["tb_reconhecimentotipo_id"] = servico_tipo_schema.tb_reconhecimentotipo_id
|
||||
|
||||
if servico_tipo_schema.tipo_permissao_cpf is not None:
|
||||
updates.append("TIPO_PERMISSAO_CPF = :tipo_permissao_cpf")
|
||||
|
|
@ -115,9 +115,9 @@ class UpdateRepository(BaseRepository):
|
|||
updates.append("VALOR_FIXO = :valor_fixo")
|
||||
params["valor_fixo"] = servico_tipo_schema.valor_fixo
|
||||
|
||||
# if servico_tipo_schema.emolumento_id is not None:
|
||||
# updates.append("EMOLUMENTO_ID = :emolumento_id")
|
||||
# params["emolumento_id"] = servico_tipo_schema.emolumento_id
|
||||
if servico_tipo_schema.emolumento_id is not None:
|
||||
updates.append("EMOLUMENTO_ID = :emolumento_id")
|
||||
params["emolumento_id"] = servico_tipo_schema.emolumento_id
|
||||
|
||||
if servico_tipo_schema.ato_praticado is not None:
|
||||
updates.append("ATO_PRATICADO = :ato_praticado")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
from fastapi import HTTPException, status
|
||||
# Importação do Schema ajustada para o de ID
|
||||
from packages.v1.administrativo.schemas.t_servico_etiqueta_schema import TServicoEtiquetaServicoTipoIdSchema
|
||||
# Importação da Action ajustada para ShowAction
|
||||
from packages.v1.administrativo.actions.t_servico_etiqueta.t_servico_etiqueta_show_servico_tipo_action import ShowAction
|
||||
|
||||
class ShowService:
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||
de busca de um registro na tabela T_SERVICO_ETIQUETA pelo seu ID.
|
||||
"""
|
||||
|
||||
def execute(self, servico_etiqueta_schema: TServicoEtiquetaServicoTipoIdSchema): # Nome do parâmetro e tipo ajustados
|
||||
"""
|
||||
Executa a operação de busca no banco de dados.
|
||||
|
||||
Args:
|
||||
servico_etiqueta_schema (TServicoEtiquetaServicoTipoIdSchema): O esquema com o ID a ser buscado.
|
||||
messageValidate (bool): Se True, lança uma exceção HTTP caso o registro não seja encontrado.
|
||||
|
||||
Returns:
|
||||
O registro encontrado ou None.
|
||||
"""
|
||||
# Instanciamento da ação
|
||||
show_action = ShowAction() # Nome da Action ajustado
|
||||
|
||||
# Executa a ação em questão
|
||||
data = show_action.execute(servico_etiqueta_schema)
|
||||
|
||||
if not data:
|
||||
# Retorna uma exceção
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail='Não foi possível localizar o registro de T_SERVICO_ETIQUETA' # Mensagem de erro ajustada
|
||||
)
|
||||
|
||||
# Retorno da informação
|
||||
return data
|
||||
Loading…
Add table
Reference in a new issue