fix: normalizar CNPJ/telefone de CLIENTE antes de gravar (sem mascara)
CLIENTE.CNPJ/TELEFONE/CELULAR agora sao gravados sempre sem pontuacao (so digitos, e letras no caso do CNPJ alfanumerico), igual ao que CLIENTE_CONTATO.TELEFONE ja fazia. Resolve a inconsistencia de formato apontada na revisao final do plano (achado 7): duas tabelas do mesmo app guardando telefone/documento em formatos diferentes. So afeta escritas novas feitas pelo painel (criar/editar cliente) - registros legados existentes so ficam sem mascara quando forem reeditados e salvos aqui; nao faz backfill em massa dos dados atuais.
This commit is contained in:
@@ -83,6 +83,71 @@ def test_criar_cliente_codigo_duplicado_exige_confirmacao(monkeypatch):
|
||||
assert criado.get("ok") is True
|
||||
|
||||
|
||||
def test_criar_cliente_normaliza_cnpj_e_telefones(monkeypatch):
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "codigo_em_uso", lambda codigo, ignorar_id=None: False)
|
||||
capturado = {}
|
||||
monkeypatch.setattr(
|
||||
router_clientes.db_clientes, "criar_cliente", lambda dados: capturado.setdefault("dados", dados) and 42
|
||||
)
|
||||
|
||||
dados_form = {campo: "x" for campo in router_clientes.db_clientes.CAMPOS_CLIENTE}
|
||||
dados_form.update(
|
||||
{
|
||||
"CODIGO": "000001",
|
||||
"CNPJ": "11.222.333/0001-81",
|
||||
"TELEFONE": "(75) 3333-4444",
|
||||
"CELULAR": "(75) 99909-1780",
|
||||
"IMPLANTACAO": "0",
|
||||
"MENSALIDADE": "100",
|
||||
"JUROS_MORA": "0",
|
||||
"JUROS_MULTA": "0",
|
||||
"DATA_CONTRATO": "2026-01-01",
|
||||
"VENCIMENTO_CONTRATO": "2027-01-01",
|
||||
"DIA_VENCIMENTO": "10",
|
||||
"confirmar_dv_invalido": "1",
|
||||
}
|
||||
)
|
||||
|
||||
resposta = client.post("/clientes/novo", data=dados_form)
|
||||
assert resposta.status_code == 303
|
||||
assert capturado["dados"]["CNPJ"] == "11222333000181"
|
||||
assert capturado["dados"]["TELEFONE"] == "7533334444"
|
||||
assert capturado["dados"]["CELULAR"] == "75999091780"
|
||||
|
||||
|
||||
def test_editar_cliente_normaliza_cnpj_e_telefones(monkeypatch):
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "codigo_em_uso", lambda codigo, ignorar_id=None: False)
|
||||
capturado = {}
|
||||
monkeypatch.setattr(
|
||||
router_clientes.db_clientes,
|
||||
"atualizar_cliente",
|
||||
lambda cliente_id, dados: capturado.setdefault("dados", dados),
|
||||
)
|
||||
|
||||
dados_form = {campo: "x" for campo in router_clientes.db_clientes.CAMPOS_CLIENTE}
|
||||
dados_form.update(
|
||||
{
|
||||
"CODIGO": "000001",
|
||||
"CNPJ": "111.444.777-35",
|
||||
"TELEFONE": "(75) 3333-4444",
|
||||
"CELULAR": "(75) 99909-1780",
|
||||
"IMPLANTACAO": "0",
|
||||
"MENSALIDADE": "100",
|
||||
"JUROS_MORA": "0",
|
||||
"JUROS_MULTA": "0",
|
||||
"DATA_CONTRATO": "2026-01-01",
|
||||
"VENCIMENTO_CONTRATO": "2027-01-01",
|
||||
"DIA_VENCIMENTO": "10",
|
||||
}
|
||||
)
|
||||
|
||||
resposta = client.post("/clientes/1/editar", data=dados_form)
|
||||
assert resposta.status_code == 303
|
||||
assert capturado["dados"]["CNPJ"] == "11144477735"
|
||||
assert capturado["dados"]["TELEFONE"] == "7533334444"
|
||||
assert capturado["dados"]["CELULAR"] == "75999091780"
|
||||
|
||||
|
||||
def test_excluir_cliente_com_dependencia_mostra_erro(monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
router_clientes.db_clientes,
|
||||
|
||||
Reference in New Issue
Block a user