[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.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
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
}
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:.=%"
|
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"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue