From 6d8468a4e20f837492cac24227f4a49ee183e51b Mon Sep 17 00:00:00 2001 From: Keven Date: Thu, 4 Dec 2025 18:00:42 -0300 Subject: [PATCH] [MVPTN-126] feat(): Endpoint de cancelamento de itempedido --- ...servico_itempedido_save_situacao_action.py | 15 ++++++----- .../t_servico_itempedido_controller.py | 12 ++++----- .../t_servico_itempedido_endpoint.py | 20 ++++++--------- ...ico_itempedido_save_situacao_repository.py | 14 +++++++---- .../schemas/t_servico_itempedido_schema.py | 4 +-- .../t_servico_itempedido_cancelar_service.py | 25 +++++++++++++++++++ python_limpa_cache.bat | 17 +++++++------ 7 files changed, 66 insertions(+), 41 deletions(-) create mode 100644 packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_cancelar_service.py diff --git a/packages/v1/servicos/balcao/actions/t_servico_itempedido/t_servico_itempedido_save_situacao_action.py b/packages/v1/servicos/balcao/actions/t_servico_itempedido/t_servico_itempedido_save_situacao_action.py index 3aa3985..3d7ccc4 100644 --- a/packages/v1/servicos/balcao/actions/t_servico_itempedido/t_servico_itempedido_save_situacao_action.py +++ b/packages/v1/servicos/balcao/actions/t_servico_itempedido/t_servico_itempedido_save_situacao_action.py @@ -1,13 +1,12 @@ -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 ( +from packages.v1.servicos.balcao.controllers.t_servico_itempedido_controller import ( 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 de salvamento de um novo registro na tabela T_SERVICO_ITEMPEDIDO. @@ -27,12 +26,12 @@ class TServicoItemPedidoSaveSituacaoAction(BaseAction): # ---------------------------------------------------- # Instanciamento do repositório # ---------------------------------------------------- - t_servico_itempedido_save_repository = TServicoItemPedidoSaveRepository() + save_situacao_repository = TServicoItemPedidoSaveSituacaoRepository() # ---------------------------------------------------- # Execução do repositório # ---------------------------------------------------- - response = t_servico_itempedido_save_repository.execute(data) + response = save_situacao_repository.execute(data) # ---------------------------------------------------- # Retorno da informação diff --git a/packages/v1/servicos/balcao/controllers/t_servico_itempedido_controller.py b/packages/v1/servicos/balcao/controllers/t_servico_itempedido_controller.py index e4bc1e1..4f4b1f5 100644 --- a/packages/v1/servicos/balcao/controllers/t_servico_itempedido_controller.py +++ b/packages/v1/servicos/balcao/controllers/t_servico_itempedido_controller.py @@ -79,21 +79,21 @@ class TServicoItemPedidoController: # ---------------------------------------------------- # Cadastra um novo registro em T_SERVICO_ITEMPEDIDO # ---------------------------------------------------- - def saveSituacao(self, data: TServicoItemPedidoSaveSituacaoSchema): + def cancelar(self, data: TServicoItemPedidoIdSchema): # Importação da classe desejada - save_service = self.dynamic_import.service( - "t_servico_itempedido_save_situacao_service", - "TServicoItemPedidoSaveSituacaoService", + cancelar_service = self.dynamic_import.service( + "t_servico_itempedido_cancelar_service", + "TServicoItemPedidoCancelarService", ) # Instância da classe service - self.save_service = save_service() + self.cancelar_service = cancelar_service() # Execução do salvamento return { "message": "Registro de T_SERVICO_ITEMPEDIDO salvo com sucesso.", - "data": self.save_service.execute(data), + "data": self.cancelar_service.execute(data), } # ---------------------------------------------------- diff --git a/packages/v1/servicos/balcao/endpoints/t_servico_itempedido_endpoint.py b/packages/v1/servicos/balcao/endpoints/t_servico_itempedido_endpoint.py index c59ab10..3b8b937 100644 --- a/packages/v1/servicos/balcao/endpoints/t_servico_itempedido_endpoint.py +++ b/packages/v1/servicos/balcao/endpoints/t_servico_itempedido_endpoint.py @@ -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 ( TServicoItemIndexSchema, TServicoItemPedidoSaveSchema, - TServicoItemPedidoSaveSituacaoSchema, TServicoItemPedidoUpdateSchema, TServicoItemPedidoIdSchema, ) @@ -111,22 +110,19 @@ async def update( # Atualiza a situação de um registro de T_SERVICO_ITEMPEDIDO # ---------------------------------------------------- @router.put( - "/{servico_itempedido_id}/situacao", + "/{servico_itempedido_id}/cancelar", 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", + summary="Cancela um T_SERVICO_ITEMPEDIDO", + response_description="Cancelamento realizado com sucesso", ) -async def save_situacao( +async def cancelar( servico_itempedido_id: int, - data: TServicoItemPedidoSaveSituacaoSchema, - current_user: dict = Depends(get_current_user), + current_user: dict = Depends(dependency=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 diff --git a/packages/v1/servicos/balcao/repositories/t_servico_itempedido/t_servico_itempedido_save_situacao_repository.py b/packages/v1/servicos/balcao/repositories/t_servico_itempedido/t_servico_itempedido_save_situacao_repository.py index 4b0bfd2..df7015f 100644 --- a/packages/v1/servicos/balcao/repositories/t_servico_itempedido/t_servico_itempedido_save_situacao_repository.py +++ b/packages/v1/servicos/balcao/repositories/t_servico_itempedido/t_servico_itempedido_save_situacao_repository.py @@ -26,6 +26,15 @@ class TServicoItemPedidoSaveSituacaoRepository(BaseRepository): """ 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 # ---------------------------------------------------- @@ -33,11 +42,6 @@ class TServicoItemPedidoSaveSituacaoRepository(BaseRepository): 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 # ---------------------------------------------------- diff --git a/packages/v1/servicos/balcao/schemas/t_servico_itempedido_schema.py b/packages/v1/servicos/balcao/schemas/t_servico_itempedido_schema.py index 1c5c42b..ebd3e92 100644 --- a/packages/v1/servicos/balcao/schemas/t_servico_itempedido_schema.py +++ b/packages/v1/servicos/balcao/schemas/t_servico_itempedido_schema.py @@ -94,8 +94,8 @@ class TServicoItemIndexSchema(BaseModel): # ---------------------------------------------------- # Schema para localizar um registro pelo ID (GET /{id}) # ---------------------------------------------------- -class TServicoItemPedidoIdSchema(TServicoItemPedidoSchema): - servico_itempedido_id: Decimal +class TServicoItemPedidoIdSchema(BaseModel): + servico_itempedido_id: Optional[Decimal] = None class Config: from_attributes = True diff --git a/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_cancelar_service.py b/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_cancelar_service.py new file mode 100644 index 0000000..e54c3d0 --- /dev/null +++ b/packages/v1/servicos/balcao/services/t_servico_itempedido/go/t_servico_itempedido_cancelar_service.py @@ -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" + ) + ) diff --git a/python_limpa_cache.bat b/python_limpa_cache.bat index b9507bd..c43fde9 100644 --- a/python_limpa_cache.bat +++ b/python_limpa_cache.bat @@ -29,6 +29,7 @@ set "TS=%date%_%time%" set "TS=%TS:/=%" set "TS=%TS::=%" set "TS=%TS:.=%" +set "TS=%TS:,=%" set "TS=%TS: =0%" set "LOG=%ROOT%\cleanup_pycache_%TS%.log" @@ -42,20 +43,20 @@ echo ================================================== >> "%LOG%" set /a FOUND=0, OK=0, ERR=0 :: ===== 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 if defined DRYRUN ( - echo [LISTAR] "%%D" - >>"%LOG%" echo [LISTAR] "%%D" + echo [LISTAR] "%%~fD" + >>"%LOG%" echo [LISTAR] "%%~fD" ) else ( - echo [APAGAR] "%%D" - rd /s /q "%%D" 1>nul 2>nul - if exist "%%D" ( + echo [APAGAR] "%%~fD" + rd /s /q "%%~fD" 1>nul 2>nul + if exist "%%~fD" ( set /a ERR+=1 - >>"%LOG%" echo [FALHA] "%%D" + >>"%LOG%" echo [FALHA] "%%~fD" ) else ( set /a OK+=1 - >>"%LOG%" echo [OK] "%%D" + >>"%LOG%" echo [OK] "%%~fD" ) ) )