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 (
|
||||
TServicoItemIndexSchema,
|
||||
TServicoItemPedidoSaveSchema,
|
||||
TServicoItemPedidoSaveSituacaoSchema,
|
||||
TServicoItemPedidoUpdateSchema,
|
||||
TServicoItemPedidoIdSchema,
|
||||
)
|
||||
|
|
@ -75,6 +76,26 @@ class TServicoItemPedidoController:
|
|||
"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
|
||||
# ----------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
TServicoItemIndexSchema,
|
||||
TServicoItemPedidoSaveSchema,
|
||||
TServicoItemPedidoSaveSituacaoSchema,
|
||||
TServicoItemPedidoUpdateSchema,
|
||||
TServicoItemPedidoIdSchema,
|
||||
)
|
||||
|
|
@ -106,6 +107,29 @@ async def update(
|
|||
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
|
||||
# ----------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
class TServicoItemPedidoSaveSituacaoSchema(BaseModel):
|
||||
|
||||
servico_itempedido_id: int = None
|
||||
situacao: str = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema para atualização (PUT)
|
||||
# - 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