From 13e2f4339a851d38c851c49330b1b9a0d7ce028d Mon Sep 17 00:00:00 2001 From: deploy Date: Sat, 26 Sep 2026 23:08:22 +0000 Subject: [PATCH] chore(tenants): conteudo de publico/ atualizado --- moldes/consolidado/96-publico-configmap.yaml | 79 ++++++++++++++++++-- tenants/plataforma/96-publico-configmap.yaml | 79 ++++++++++++++++++-- 2 files changed, 146 insertions(+), 12 deletions(-) diff --git a/moldes/consolidado/96-publico-configmap.yaml b/moldes/consolidado/96-publico-configmap.yaml index 4a284ba..5788ace 100644 --- a/moldes/consolidado/96-publico-configmap.yaml +++ b/moldes/consolidado/96-publico-configmap.yaml @@ -1439,6 +1439,17 @@ data: .cobranca.pendente { margin: 20px -20px -20px; padding: 16px 20px 20px; } } + /* ── as faturas, dentro do cartao ─────────────────────────────────────────── */ + .faturas { align-self: stretch; margin-top: 16px; font-size: 14px; } + .faturas summary { cursor: pointer; font-weight: 600; color: var(--navy); } + .lista-faturas { list-style: none; margin: 10px 0 0; padding: 0; } + .lista-faturas li { + display: grid; grid-template-columns: 1fr 1fr auto auto; gap: 10px; align-items: center; + padding: 7px 0; border-top: 1px solid var(--line); + } + .lista-faturas .selo { margin: 0; } + .lista-faturas a { color: var(--orange-600, #c2410c); font-weight: 600; } + minha-conta.html: | @@ -1463,7 +1474,7 @@ data: numero a cada publicacao que mexa nesses arquivos. --> - + @@ -1517,8 +1528,8 @@ data:

- Cobranças, faturas e recibos ficam no e-mail que você recebeu do - pagamento. Precisa de ajuda? + As faturas de cada escolinha estão no cartão dela, e também chegam + ao e-mail do pagamento. Precisa de ajuda? contato@athleticmap.com

@@ -1533,7 +1544,7 @@ data: - + @@ -1572,7 +1583,8 @@ data: RETORNO: location.origin + "/minha-conta", API: "/api/cliente/meus-produtos", COBRANCA: "/api/cliente/cobranca", - TERMO: "/api/cliente/termo-de-dados" + TERMO: "/api/cliente/termo-de-dados", + FATURAS: "/api/cliente/faturas" }; var CHAVE_VERIFIER = "atm.conta.verifier"; @@ -1744,7 +1756,7 @@ data: produtos.innerHTML = (lista || []).map(cartao).join(""); nenhum.classList.toggle("oculto", (lista || []).length > 0); mostrar(conteudo); - return Promise.all([carregarCobranca(), carregarTermo()]); + return Promise.all([carregarCobranca(), carregarTermo(), carregarFaturas()]); }); } @@ -1894,6 +1906,61 @@ data: }); } + /* ── AS FATURAS DA ASSINATURA ──────────────────────────────────────────────── + * + * As cobranças da Athletic Map para o cliente (não as dos alunos), com o link + * da fatura do Asaas — que vira recibo quando paga. Fechadas por padrão: são + * consulta, e não pendência. Falhar aqui não derruba a tela. */ + + var SITUACAO_DA_FATURA = { + PAGA: ["ok", "paga"], VENCIDA: ["alerta", "vencida"], + A_VENCER: ["neutro", "a vencer"], OUTRA: ["neutro", "—"] + }; + + function reais(v) { + var n = Number(v); + return isNaN(n) ? "—" : "R$ " + n.toFixed(2).replace(".", ","); + } + + function blocoDeFaturas(e) { + var lista = e.faturas || []; + var corpo; + if (!e.disponivel) { + corpo = '

Não consegui buscar as faturas agora. Elas também chegam ao seu e-mail.

'; + } else if (!lista.length) { + corpo = '

Nenhuma fatura ainda.

'; + } else { + corpo = '"; + } + return '
Faturas' + (lista.length ? " (" + lista.length + ")" : "") + + "" + corpo + "
"; + } + + function carregarFaturas() { + return fetch(CONFIG.FATURAS, { headers: { Authorization: "Bearer " + token } }) + .then(function (r) { return r.ok ? r.json() : []; }) + .then(function (lista) { + produtos.querySelectorAll(".faturas").forEach(function (el) { el.remove(); }); + (lista || []).forEach(function (e) { + var alvo = null; + produtos.querySelectorAll("article[data-tenant]").forEach(function (el) { + if (el.getAttribute("data-tenant") === e.tenant) alvo = el; + }); + if (alvo) alvo.insertAdjacentHTML("beforeend", blocoDeFaturas(e)); + }); + }) + .catch(function (e) { if (window.console) console.warn("faturas:", e); }); + } + /* ── O TERMO DE DADOS ──────────────────────────────────────────────────────── * * A autorizacao para a Athletic Map ver o USO do sistema (ultimo acesso, diff --git a/tenants/plataforma/96-publico-configmap.yaml b/tenants/plataforma/96-publico-configmap.yaml index a9d1031..cd33ff2 100644 --- a/tenants/plataforma/96-publico-configmap.yaml +++ b/tenants/plataforma/96-publico-configmap.yaml @@ -1439,6 +1439,17 @@ data: .cobranca.pendente { margin: 20px -20px -20px; padding: 16px 20px 20px; } } + /* ── as faturas, dentro do cartao ─────────────────────────────────────────── */ + .faturas { align-self: stretch; margin-top: 16px; font-size: 14px; } + .faturas summary { cursor: pointer; font-weight: 600; color: var(--navy); } + .lista-faturas { list-style: none; margin: 10px 0 0; padding: 0; } + .lista-faturas li { + display: grid; grid-template-columns: 1fr 1fr auto auto; gap: 10px; align-items: center; + padding: 7px 0; border-top: 1px solid var(--line); + } + .lista-faturas .selo { margin: 0; } + .lista-faturas a { color: var(--orange-600, #c2410c); font-weight: 600; } + minha-conta.html: | @@ -1463,7 +1474,7 @@ data: numero a cada publicacao que mexa nesses arquivos. --> - + @@ -1517,8 +1528,8 @@ data:

- Cobranças, faturas e recibos ficam no e-mail que você recebeu do - pagamento. Precisa de ajuda? + As faturas de cada escolinha estão no cartão dela, e também chegam + ao e-mail do pagamento. Precisa de ajuda? contato@athleticmap.com

@@ -1533,7 +1544,7 @@ data: - + @@ -1572,7 +1583,8 @@ data: RETORNO: location.origin + "/minha-conta", API: "/api/cliente/meus-produtos", COBRANCA: "/api/cliente/cobranca", - TERMO: "/api/cliente/termo-de-dados" + TERMO: "/api/cliente/termo-de-dados", + FATURAS: "/api/cliente/faturas" }; var CHAVE_VERIFIER = "atm.conta.verifier"; @@ -1744,7 +1756,7 @@ data: produtos.innerHTML = (lista || []).map(cartao).join(""); nenhum.classList.toggle("oculto", (lista || []).length > 0); mostrar(conteudo); - return Promise.all([carregarCobranca(), carregarTermo()]); + return Promise.all([carregarCobranca(), carregarTermo(), carregarFaturas()]); }); } @@ -1894,6 +1906,61 @@ data: }); } + /* ── AS FATURAS DA ASSINATURA ──────────────────────────────────────────────── + * + * As cobranças da Athletic Map para o cliente (não as dos alunos), com o link + * da fatura do Asaas — que vira recibo quando paga. Fechadas por padrão: são + * consulta, e não pendência. Falhar aqui não derruba a tela. */ + + var SITUACAO_DA_FATURA = { + PAGA: ["ok", "paga"], VENCIDA: ["alerta", "vencida"], + A_VENCER: ["neutro", "a vencer"], OUTRA: ["neutro", "—"] + }; + + function reais(v) { + var n = Number(v); + return isNaN(n) ? "—" : "R$ " + n.toFixed(2).replace(".", ","); + } + + function blocoDeFaturas(e) { + var lista = e.faturas || []; + var corpo; + if (!e.disponivel) { + corpo = '

Não consegui buscar as faturas agora. Elas também chegam ao seu e-mail.

'; + } else if (!lista.length) { + corpo = '

Nenhuma fatura ainda.

'; + } else { + corpo = '"; + } + return '
Faturas' + (lista.length ? " (" + lista.length + ")" : "") + + "" + corpo + "
"; + } + + function carregarFaturas() { + return fetch(CONFIG.FATURAS, { headers: { Authorization: "Bearer " + token } }) + .then(function (r) { return r.ok ? r.json() : []; }) + .then(function (lista) { + produtos.querySelectorAll(".faturas").forEach(function (el) { el.remove(); }); + (lista || []).forEach(function (e) { + var alvo = null; + produtos.querySelectorAll("article[data-tenant]").forEach(function (el) { + if (el.getAttribute("data-tenant") === e.tenant) alvo = el; + }); + if (alvo) alvo.insertAdjacentHTML("beforeend", blocoDeFaturas(e)); + }); + }) + .catch(function (e) { if (window.console) console.warn("faturas:", e); }); + } + /* ── O TERMO DE DADOS ──────────────────────────────────────────────────────── * * A autorizacao para a Athletic Map ver o USO do sistema (ultimo acesso,