feat(ItemPedido): Altera a situação do item pedido
This commit is contained in:
parent
8d7cdac663
commit
7e31386acd
6 changed files with 162 additions and 0 deletions
|
|
@ -0,0 +1,40 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from packages.v1.servicos.balcao.repositories.t_servico_itempedido.t_servico_itempedido_save_repository import (
|
||||||
|
TServicoItemPedidoSaveRepository,
|
||||||
|
)
|
||||||
|
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
||||||
|
TServicoItemPedidoSaveSituacaoSchema,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TServicoItemPedidoSaveSituacaoAction(BaseAction):
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de salvamento de um novo registro na tabela T_SERVICO_ITEMPEDIDO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, data: TServicoItemPedidoSaveSituacaoSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de salvamento.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
t_servico_itempedido_schema (TServicoItemPedidoSchema):
|
||||||
|
O esquema com os dados a serem persistidos.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de salvamento.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
t_servico_itempedido_save_repository = TServicoItemPedidoSaveRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = t_servico_itempedido_save_repository.execute(data)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return response
|
||||||
|
|
@ -2,6 +2,7 @@ from actions.dynamic_import.dynamic_import import DynamicImport
|
||||||
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
||||||
TServicoItemIndexSchema,
|
TServicoItemIndexSchema,
|
||||||
TServicoItemPedidoSaveSchema,
|
TServicoItemPedidoSaveSchema,
|
||||||
|
TServicoItemPedidoSaveSituacaoSchema,
|
||||||
TServicoItemPedidoUpdateSchema,
|
TServicoItemPedidoUpdateSchema,
|
||||||
TServicoItemPedidoIdSchema,
|
TServicoItemPedidoIdSchema,
|
||||||
)
|
)
|
||||||
|
|
@ -75,6 +76,26 @@ class TServicoItemPedidoController:
|
||||||
"data": self.save_service.execute(t_servico_itempedido_save_schema),
|
"data": self.save_service.execute(t_servico_itempedido_save_schema),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Cadastra um novo registro em T_SERVICO_ITEMPEDIDO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def saveSituacao(self, data: TServicoItemPedidoSaveSituacaoSchema):
|
||||||
|
|
||||||
|
# Importação da classe desejada
|
||||||
|
save_service = self.dynamic_import.service(
|
||||||
|
"t_servico_itempedido_save_situacao_service",
|
||||||
|
"TServicoItemPedidoSaveSituacaoService",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.save_service = save_service()
|
||||||
|
|
||||||
|
# Execução do salvamento
|
||||||
|
return {
|
||||||
|
"message": "Registro de T_SERVICO_ITEMPEDIDO salvo com sucesso.",
|
||||||
|
"data": self.save_service.execute(data),
|
||||||
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Atualiza um registro existente de T_SERVICO_ITEMPEDIDO
|
# Atualiza um registro existente de T_SERVICO_ITEMPEDIDO
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ from packages.v1.servicos.balcao.controllers.t_servico_itempedido_controller imp
|
||||||
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
||||||
TServicoItemIndexSchema,
|
TServicoItemIndexSchema,
|
||||||
TServicoItemPedidoSaveSchema,
|
TServicoItemPedidoSaveSchema,
|
||||||
|
TServicoItemPedidoSaveSituacaoSchema,
|
||||||
TServicoItemPedidoUpdateSchema,
|
TServicoItemPedidoUpdateSchema,
|
||||||
TServicoItemPedidoIdSchema,
|
TServicoItemPedidoIdSchema,
|
||||||
)
|
)
|
||||||
|
|
@ -106,6 +107,29 @@ async def update(
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Atualiza a situação de um registro de T_SERVICO_ITEMPEDIDO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.put(
|
||||||
|
"/{servico_itempedido_id}/situacao",
|
||||||
|
status_code=status.HTTP_200_OK,
|
||||||
|
summary="Atualiza a situação de um registro em T_SERVICO_ITEMPEDIDO",
|
||||||
|
response_description="Situação atualizada com sucesso",
|
||||||
|
)
|
||||||
|
async def save_situacao(
|
||||||
|
servico_itempedido_id: int,
|
||||||
|
data: TServicoItemPedidoSaveSituacaoSchema,
|
||||||
|
current_user: dict = Depends(get_current_user),
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Atualiza a situação de um registro de T_SERVICO_ITEMPEDIDO com base no ID informado.
|
||||||
|
"""
|
||||||
|
data.servico_itempedido_id = servico_itempedido_id
|
||||||
|
|
||||||
|
response = t_servico_itempedido_controller.update(data)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Exclui um registro de T_SERVICO_ITEMPEDIDO
|
# Exclui um registro de T_SERVICO_ITEMPEDIDO
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
from packages.v1.servicos.balcao.schemas.t_servico_itempedido_schema import (
|
||||||
|
TServicoItemPedidoSaveSituacaoSchema,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TServicoItemPedidoSaveSituacaoRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório responsável pela operação de salvamento de um novo registro
|
||||||
|
na tabela T_SERVICO_ITEMPEDIDO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, data: TServicoItemPedidoSaveSituacaoSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de salvamento no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
t_servico_itempedido_save_schema (TServicoItemPedidoSchema): O esquema com os dados a serem salvos.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O registro recém-criado.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
HTTPException: Caso ocorra um erro na execução da query.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Preenchimento dos parâmetros
|
||||||
|
# ----------------------------------------------------
|
||||||
|
params = data.model_dump(
|
||||||
|
exclude_unset=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Montagem do SQL dinâmico
|
||||||
|
# ----------------------------------------------------
|
||||||
|
sql = """ UPDATE T_SERVICO_ITEMPEDIDO tsip SET tsip.SITUACAO LIKE :situacao WHERE tsip.SERVICO_ITEMPEDIDO_ID = :item_servicopedido_id """
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do SQL e retorno do registro
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return self.run_and_return(sql, params)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Tratamento de erros e lançamento de exceção HTTP
|
||||||
|
# ----------------------------------------------------
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||||
|
detail=f"Erro ao salvar registro em T_SERVICO_ITEMPEDIDO: {e}",
|
||||||
|
)
|
||||||
|
|
@ -111,6 +111,15 @@ class TServicoItemPedidoSaveSchema(TServicoItemPedidoSchema):
|
||||||
from_attributes = True
|
from_attributes = True
|
||||||
|
|
||||||
|
|
||||||
|
class TServicoItemPedidoSaveSituacaoSchema(BaseModel):
|
||||||
|
|
||||||
|
servico_itempedido_id: int = None
|
||||||
|
situacao: str = None
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
from_attributes = True
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Schema para atualização (PUT)
|
# Schema para atualização (PUT)
|
||||||
# - inclui o ID + campos opcionais para alterar
|
# - inclui o ID + campos opcionais para alterar
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
from packages.v1.servicos.balcao.actions.t_servico_itempedido.t_servico_itempedido_save_action import (
|
||||||
|
TServicoItemPedidoSaveAction,
|
||||||
|
)
|
||||||
|
from packages.v1.servicos.balcao.actions.t_servico_itempedido.t_servico_itempedido_save_situacao_action import (
|
||||||
|
TServicoItemPedidoSaveSituacaoSchema,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TServicoItemPedidoSaveSituacaoService:
|
||||||
|
|
||||||
|
def execute(self, data: TServicoItemPedidoSaveSituacaoSchema):
|
||||||
|
|
||||||
|
t_servico_itempedido_save_action = TServicoItemPedidoSaveAction()
|
||||||
|
|
||||||
|
return t_servico_itempedido_save_action.execute(data)
|
||||||
Loading…
Add table
Reference in a new issue