From 806bfc1a89012ceb37aa8c86a4b9c5cc7dc23c58 Mon Sep 17 00:00:00 2001
From: marco
Date: Fri, 19 Dec 2025 17:23:34 +0100
Subject: [PATCH] =?UTF-8?q?feat:=20Adicionar=20aviso=20de=20IVA=20em=20tod?=
=?UTF-8?q?os=20os=20pre=C3=A7os?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
�� IVA NÃO INCLUÍDO - Avisos adicionados
📍 LOCAIS ATUALIZADOS:
1. Pricing Page (/pricing)
- Aviso "+ IVA" abaixo do preço principal
- Texto destacado em amarelo
2. Profile Page (/profile)
- Seção de assinatura com "(IVA não incluído)"
3. Billing Page (/billing)
- Plano atual com aviso de IVA
🌍 i18n - 3 Idiomas:
pt-BR:
- plusVat: "+ IVA"
- vatNotIncluded: "(IVA não incluído)"
- billedAnnually: "...€{{price}} + IVA"
ES:
- plusVat: "+ IVA"
- vatNotIncluded: "(IVA no incluido)"
- billedAnnually: "...€{{price}} + IVA"
EN:
- plusVat: "+ VAT"
- vatNotIncluded: "(VAT not included)"
- billedAnnually: "...€{{price}} + VAT"
🎨 VISUAL:
- Texto em amarelo (text-warning)
- Destaque com fw-semibold
- Posicionamento consistente
✅ Cliente agora vê claramente que IVA será adicionado
---
frontend/src/i18n/locales/en.json | 4 +++-
frontend/src/i18n/locales/es.json | 4 +++-
frontend/src/i18n/locales/pt-BR.json | 4 +++-
frontend/src/pages/Billing.jsx | 3 +++
frontend/src/pages/Pricing.jsx | 5 ++++-
frontend/src/pages/Profile.jsx | 3 ++-
6 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json
index 24cb314..9b99614 100755
--- a/frontend/src/i18n/locales/en.json
+++ b/frontend/src/i18n/locales/en.json
@@ -2208,7 +2208,9 @@
"free": "Free",
"month": "month",
"year": "year",
- "billedAnnually": "Billed annually €{{price}}",
+ "plusVat": "+ VAT",
+ "vatNotIncluded": "(VAT not included)",
+ "billedAnnually": "Billed annually €{{price}} + VAT",
"save": "Save {{percent}}%",
"trialDays": "{{days}}-day free trial",
"trial": "trial",
diff --git a/frontend/src/i18n/locales/es.json b/frontend/src/i18n/locales/es.json
index 80944ae..81467e3 100755
--- a/frontend/src/i18n/locales/es.json
+++ b/frontend/src/i18n/locales/es.json
@@ -2200,7 +2200,9 @@
"free": "Gratis",
"month": "mes",
"year": "año",
- "billedAnnually": "Facturado anualmente €{{price}}",
+ "plusVat": "+ IVA",
+ "vatNotIncluded": "(IVA no incluido)",
+ "billedAnnually": "Facturado anualmente €{{price}} + IVA",
"save": "Ahorra {{percent}}%",
"trialDays": "{{days}} días de prueba gratis",
"trial": "de prueba",
diff --git a/frontend/src/i18n/locales/pt-BR.json b/frontend/src/i18n/locales/pt-BR.json
index ed72a04..0a603dd 100755
--- a/frontend/src/i18n/locales/pt-BR.json
+++ b/frontend/src/i18n/locales/pt-BR.json
@@ -2218,7 +2218,9 @@
"free": "Grátis",
"month": "mês",
"year": "ano",
- "billedAnnually": "Cobrado anualmente €{{price}}",
+ "plusVat": "+ IVA",
+ "vatNotIncluded": "(IVA não incluído)",
+ "billedAnnually": "Cobrado anualmente €{{price}} + IVA",
"save": "Economize {{percent}}%",
"trialDays": "{{days}} dias de teste grátis",
"trial": "de teste",
diff --git a/frontend/src/pages/Billing.jsx b/frontend/src/pages/Billing.jsx
index 1cc7bb8..3b143d2 100755
--- a/frontend/src/pages/Billing.jsx
+++ b/frontend/src/pages/Billing.jsx
@@ -208,6 +208,9 @@ export default function Billing() {
/{plan.billing_period === 'annual' ? t('billing.year') : t('billing.month')}
+
+ ({t('pricing.vatNotIncluded') || '+ IVA'})
+
)}
diff --git a/frontend/src/pages/Pricing.jsx b/frontend/src/pages/Pricing.jsx
index cc03839..f90e596 100755
--- a/frontend/src/pages/Pricing.jsx
+++ b/frontend/src/pages/Pricing.jsx
@@ -135,8 +135,11 @@ export default function Pricing() {
€{plan.monthly_price.toFixed(2)}
/{t('pricing.month')}
+
+ {t('pricing.plusVat')}
+
{plan.billing_period === 'annual' && (
-
+
{t('pricing.billedAnnually', { price: plan.price })}
)}
diff --git a/frontend/src/pages/Profile.jsx b/frontend/src/pages/Profile.jsx
index fb1445c..d2de664 100755
--- a/frontend/src/pages/Profile.jsx
+++ b/frontend/src/pages/Profile.jsx
@@ -611,8 +611,9 @@ export default function Profile() {
{subscriptionData.plan.name}
{t('common.active') || 'Ativo'}
-
+
{subscriptionData.plan.formatted_price} / {subscriptionData.plan.billing_period === 'monthly' ? t('common.month') || 'mês' : t('common.year') || 'ano'}
+ ({t('pricing.vatNotIncluded') || '+ IVA'})
{subscriptionData.subscription?.current_period_end && (