Commit inicial

This commit is contained in:
Ricardo 2026-09-11 17:22:41 -03:00
commit 5385af660d
10 changed files with 173 additions and 0 deletions

View file

View file

@ -0,0 +1,5 @@
from pydantic import BaseModel
class CancelamentoPropostaInput(BaseModel):
id: str

View file

@ -0,0 +1,30 @@
from fastapi import APIRouter, HTTPException, status
from app.core.database import Conexao
from app.v1.modules.veiculo.model import CancelamentoPropostaInput
from app.v1.modules.veiculo.services import CancelamentoProposta
veiculo_router = APIRouter(
prefix='/veiculos'
)
# Rota de cancelamento (logica pra informar que o processo foi cancelado, esses vendedores que ficam crinando proposta pra dps cancelar é foda)
@veiculo_router.post(
path='/cancelar_proposta'
)
def cancelar_proposta(
dados_proposta_holmes: CancelamentoPropostaInput,
conexao: Conexao,
):
repo = CancelamentoProposta(conexao)
cancelou = repo.cancelar_no_banco(dados_proposta_holmes.id)
if not cancelou:
raise HTTPException(
status_code= status.HTTP_404_NOT_FOUND,
detail= "Proposta não encontrada no banco de dados"
)
return {
'mensagem': 'Proposta cancelada'
}

View file

@ -0,0 +1,17 @@
from sqlalchemy.pool import PoolProxiedConnection
class CancelamentoProposta:
def __init__(self, conexao: PoolProxiedConnection) -> None:
self.conexao = conexao
def cancelar_no_banco(self, id_processo: str) -> bool:
cursor = self.conexao.cursor()
cursor.execute("""
UPDATE HOLMES_FAT_ESTOQUE
SET STATUS = 'CANCELADO', DTA_ALTERACAO_STATUS = GETDATE()
WHERE ID_PROCESSO = ?
""", id_processo)
self.conexao.commit()
return cursor.rowcount > 0