Files
GTI_GERENCIADOR_FISCAL/app/templates/cliente_detalhe.html
T
Gustavo 9b04877d59 feat: formulario de edicao de contato na tela de detalhe do cliente
Adiciona UI (details/summary, sem JS) para editar nome/telefone/email
de um contato existente, usando a rota POST /clientes/{id}/contatos/{id}/editar
que ja existia no router e no db mas nunca tinha formulario associado.
Cobre com testes de rota (sucesso + telefone duplicado) e um teste
verificando que a tela de detalhe realmente renderiza o formulario.
2026-08-13 10:52:50 -03:00

60 lines
2.6 KiB
HTML

<!-- app/templates/cliente_detalhe.html -->
{% extends "base.html" %}
{% block titulo %}{{ cliente.RAZAO }}{% endblock %}
{% block conteudo %}
<h1>{{ cliente.FANTASIA }} <small>({{ cliente.CODIGO }})</small></h1>
<p>{{ cliente.RAZAO }} — {{ cliente.CNPJ }}</p>
<p>
<a class="botao" href="/clientes/{{ cliente.ID }}/editar">Editar</a>
<form method="post" action="/clientes/{{ cliente.ID }}/excluir" style="display:inline">
<button type="submit" onclick="return confirm('Excluir este cliente?')">Excluir</button>
</form>
</p>
<h2>Contatos</h2>
<table>
<tr><th>Nome</th><th>Telefone</th><th>E-mail</th><th></th></tr>
{% for ct in contatos %}
<tr>
<td>{{ ct.NOME }}</td><td>{{ ct.TELEFONE }}</td><td>{{ ct.EMAIL or "" }}</td>
<td>
<details style="display:inline-block">
<summary class="botao" style="display:inline-block;cursor:pointer">Editar</summary>
<form method="post" action="/clientes/{{ cliente.ID }}/contatos/{{ ct.ID }}/editar" style="margin-top:8px">
<label for="nome-{{ ct.ID }}">Nome</label>
<input type="text" id="nome-{{ ct.ID }}" name="nome" value="{{ ct.NOME or '' }}">
<label for="telefone-{{ ct.ID }}">Telefone</label>
<input type="text" id="telefone-{{ ct.ID }}" name="telefone" value="{{ ct.TELEFONE }}" required>
<label for="email-{{ ct.ID }}">E-mail</label>
<input type="text" id="email-{{ ct.ID }}" name="email" value="{{ ct.EMAIL or '' }}">
<button type="submit">Salvar</button>
</form>
</details>
<form method="post" action="/clientes/{{ cliente.ID }}/contatos/{{ ct.ID }}/excluir" style="display:inline">
<button type="submit" onclick="return confirm('Excluir este contato?')">Excluir</button>
</form>
</td>
</tr>
{% endfor %}
</table>
<form method="post" action="/clientes/{{ cliente.ID }}/contatos">
<label for="nome">Nome</label>
<input type="text" id="nome" name="nome">
<label for="telefone">Telefone</label>
<input type="text" id="telefone" name="telefone" required>
<label for="email">E-mail</label>
<input type="text" id="email" name="email">
<button type="submit">Adicionar contato</button>
</form>
<h2>Status em Clientes_Chaves</h2>
{% if status_chaves %}
<table>
<tr>{% for mes in status_chaves.meses %}<th>{{ mes }}</th>{% endfor %}</tr>
<tr>{% for mes, valor in status_chaves.meses.items() %}<td>{{ "✓" if valor else "—" }}</td>{% endfor %}</tr>
</table>
{% else %}
<p>Nenhuma linha em Clientes_Chaves para o código {{ cliente.CODIGO }}.</p>
{% endif %}
{% endblock %}