[MVPTN-126] feat(): Endpoint de cancelamento de itempedido
This commit is contained in:
parent
7e31386acd
commit
6d8468a4e2
7 changed files with 66 additions and 41 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
}
|
||||
|
||||
# ----------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
# ----------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
)
|
||||
)
|
||||
|
|
@ -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"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue