[MVPTN-126] feat(): Endpoint de cancelamento de itempedido

This commit is contained in:
Keven 2025-12-04 18:00:42 -03:00
parent 7e31386acd
commit 6d8468a4e2
7 changed files with 66 additions and 41 deletions

View file

@ -1,13 +1,12 @@
from abstracts.action import BaseAction from packages.v1.servicos.balcao.controllers.t_servico_itempedido_controller import (
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, TServicoItemPedidoSaveSituacaoSchema,
) )
from packages.v1.servicos.balcao.repositories.t_servico_itempedido.t_servico_itempedido_save_situacao_repository import (
TServicoItemPedidoSaveSituacaoRepository,
)
class TServicoItemPedidoSaveSituacaoAction(BaseAction): class TServicoItemPedidoSaveSituacaoAction:
""" """
Serviço responsável por encapsular a lógica de negócio para a operação 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. de salvamento de um novo registro na tabela T_SERVICO_ITEMPEDIDO.
@ -27,12 +26,12 @@ class TServicoItemPedidoSaveSituacaoAction(BaseAction):
# ---------------------------------------------------- # ----------------------------------------------------
# Instanciamento do repositório # Instanciamento do repositório
# ---------------------------------------------------- # ----------------------------------------------------
t_servico_itempedido_save_repository = TServicoItemPedidoSaveRepository() save_situacao_repository = TServicoItemPedidoSaveSituacaoRepository()
# ---------------------------------------------------- # ----------------------------------------------------
# Execução do repositório # Execução do repositório
# ---------------------------------------------------- # ----------------------------------------------------
response = t_servico_itempedido_save_repository.execute(data) response = save_situacao_repository.execute(data)
# ---------------------------------------------------- # ----------------------------------------------------
# Retorno da informação # Retorno da informação

View file

@ -79,21 +79,21 @@ class TServicoItemPedidoController:
# ---------------------------------------------------- # ----------------------------------------------------
# Cadastra um novo registro em T_SERVICO_ITEMPEDIDO # Cadastra um novo registro em T_SERVICO_ITEMPEDIDO
# ---------------------------------------------------- # ----------------------------------------------------
def saveSituacao(self, data: TServicoItemPedidoSaveSituacaoSchema): def cancelar(self, data: TServicoItemPedidoIdSchema):
# Importação da classe desejada # Importação da classe desejada
save_service = self.dynamic_import.service( cancelar_service = self.dynamic_import.service(
"t_servico_itempedido_save_situacao_service", "t_servico_itempedido_cancelar_service",
"TServicoItemPedidoSaveSituacaoService", "TServicoItemPedidoCancelarService",
) )
# Instância da classe service # Instância da classe service
self.save_service = save_service() self.cancelar_service = cancelar_service()
# Execução do salvamento # Execução do salvamento
return { return {
"message": "Registro de T_SERVICO_ITEMPEDIDO salvo com sucesso.", "message": "Registro de T_SERVICO_ITEMPEDIDO salvo com sucesso.",
"data": self.save_service.execute(data), "data": self.cancelar_service.execute(data),
} }
# ---------------------------------------------------- # ----------------------------------------------------

View file

@ -7,7 +7,6 @@ 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,
) )
@ -111,22 +110,19 @@ async def update(
# Atualiza a situação de um registro de T_SERVICO_ITEMPEDIDO # Atualiza a situação de um registro de T_SERVICO_ITEMPEDIDO
# ---------------------------------------------------- # ----------------------------------------------------
@router.put( @router.put(
"/{servico_itempedido_id}/situacao", "/{servico_itempedido_id}/cancelar",
status_code=status.HTTP_200_OK, status_code=status.HTTP_200_OK,
summary="Atualiza a situação de um registro em T_SERVICO_ITEMPEDIDO", summary="Cancela um T_SERVICO_ITEMPEDIDO",
response_description="Situação atualizada com sucesso", response_description="Cancelamento realizado com sucesso",
) )
async def save_situacao( async def cancelar(
servico_itempedido_id: int, servico_itempedido_id: int,
data: TServicoItemPedidoSaveSituacaoSchema, current_user: dict = Depends(dependency=get_current_user),
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) response = t_servico_itempedido_controller.cancelar(
TServicoItemPedidoIdSchema(servico_itempedido_id=servico_itempedido_id)
)
return response return response

View file

@ -26,6 +26,15 @@ class TServicoItemPedidoSaveSituacaoRepository(BaseRepository):
""" """
try: try:
# ----------------------------------------------------
# Montagem do SQL dinâmico
# ----------------------------------------------------
sql = """ UPDATE T_SERVICO_ITEMPEDIDO tsip
SET tsip.SITUACAO = :situacao
WHERE
tsip.SERVICO_ITEMPEDIDO_ID = :servico_itempedido_id
RETURNING *"""
# ---------------------------------------------------- # ----------------------------------------------------
# Preenchimento dos parâmetros # Preenchimento dos parâmetros
# ---------------------------------------------------- # ----------------------------------------------------
@ -33,11 +42,6 @@ class TServicoItemPedidoSaveSituacaoRepository(BaseRepository):
exclude_unset=True, 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 # Execução do SQL e retorno do registro
# ---------------------------------------------------- # ----------------------------------------------------

View file

@ -94,8 +94,8 @@ class TServicoItemIndexSchema(BaseModel):
# ---------------------------------------------------- # ----------------------------------------------------
# Schema para localizar um registro pelo ID (GET /{id}) # Schema para localizar um registro pelo ID (GET /{id})
# ---------------------------------------------------- # ----------------------------------------------------
class TServicoItemPedidoIdSchema(TServicoItemPedidoSchema): class TServicoItemPedidoIdSchema(BaseModel):
servico_itempedido_id: Decimal servico_itempedido_id: Optional[Decimal] = None
class Config: class Config:
from_attributes = True from_attributes = True

View file

@ -0,0 +1,25 @@
from packages.v1.servicos.balcao.actions.t_servico_itempedido.t_servico_itempedido_save_situacao_action import (
TServicoItemPedidoSaveSituacaoAction,
)
from packages.v1.servicos.balcao.controllers.t_servico_itempedido_controller import (
TServicoItemPedidoSaveSituacaoSchema,
)
class TServicoItemPedidoCancelarService:
"""
Serviço responsável por cancelar um item de pedido de serviço,
alterando sua situação via Action TServicoItemPedidoSaveSituacaoAction.
"""
def execute(self, data: TServicoItemPedidoSaveSituacaoSchema):
# Instancia corretamente a Action (classe)
save_situacao_action = TServicoItemPedidoSaveSituacaoAction()
# Executa o fluxo da action com o schema recebido
return save_situacao_action.execute(
TServicoItemPedidoSaveSituacaoSchema(
servico_itempedido_id=data.servico_itempedido_id, situacao="C"
)
)

View file

@ -29,6 +29,7 @@ set "TS=%date%_%time%"
set "TS=%TS:/=%" set "TS=%TS:/=%"
set "TS=%TS::=%" set "TS=%TS::=%"
set "TS=%TS:.=%" set "TS=%TS:.=%"
set "TS=%TS:,=%"
set "TS=%TS: =0%" set "TS=%TS: =0%"
set "LOG=%ROOT%\cleanup_pycache_%TS%.log" set "LOG=%ROOT%\cleanup_pycache_%TS%.log"
@ -42,20 +43,20 @@ echo ================================================== >> "%LOG%"
set /a FOUND=0, OK=0, ERR=0 set /a FOUND=0, OK=0, ERR=0
:: ===== Procura e (opcionalmente) remove ===== :: ===== Procura e (opcionalmente) remove =====
for /f "delims=" %%D in ('dir /ad /b /s "%ROOT%\__pycache__" 2^>nul') do ( for /d /r "%ROOT%" %%D in (__pycache__) do (
set /a FOUND+=1 set /a FOUND+=1
if defined DRYRUN ( if defined DRYRUN (
echo [LISTAR] "%%D" echo [LISTAR] "%%~fD"
>>"%LOG%" echo [LISTAR] "%%D" >>"%LOG%" echo [LISTAR] "%%~fD"
) else ( ) else (
echo [APAGAR] "%%D" echo [APAGAR] "%%~fD"
rd /s /q "%%D" 1>nul 2>nul rd /s /q "%%~fD" 1>nul 2>nul
if exist "%%D" ( if exist "%%~fD" (
set /a ERR+=1 set /a ERR+=1
>>"%LOG%" echo [FALHA] "%%D" >>"%LOG%" echo [FALHA] "%%~fD"
) else ( ) else (
set /a OK+=1 set /a OK+=1
>>"%LOG%" echo [OK] "%%D" >>"%LOG%" echo [OK] "%%~fD"
) )
) )
) )