feat: Add 'atas' (minutes/records) management feature, and implement various improvements across UI, backend logic, and authentication.

This commit is contained in:
2025-12-02 16:37:48 -03:00
parent 05e7f1181d
commit 4bd9e21748
265 changed files with 29156 additions and 26460 deletions

View File

@@ -1,92 +1,92 @@
<script lang="ts">
import { DollarSign, Building2, Plus, Calculator, TrendingUp, FileText } from "lucide-svelte";
import { resolve } from "$app/paths";
import ProtectedRoute from "$lib/components/ProtectedRoute.svelte";
</script>
<ProtectedRoute>
<main class="container mx-auto px-4 py-4">
<!-- Breadcrumb -->
<div class="text-sm breadcrumbs mb-4">
<ul>
<li><a href={resolve('/')} class="text-primary hover:underline">Dashboard</a></li>
<li>Financeiro</li>
</ul>
</div>
<!-- Cabeçalho -->
<div class="mb-6">
<div class="flex items-center gap-4 mb-2">
<div class="p-3 bg-green-500/20 rounded-xl">
<DollarSign class="h-8 w-8 text-green-600" strokeWidth={2} />
</div>
<div>
<h1 class="text-3xl font-bold text-primary">Financeiro</h1>
<p class="text-base-content/70">Gestão financeira e orçamentária da secretaria</p>
</div>
</div>
</div>
<!-- Card de Aviso -->
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<div class="flex flex-col items-center justify-center py-12 text-center">
<div class="mb-6">
<Building2 class="h-24 w-24 text-base-content/20" strokeWidth={1.5} />
</div>
<h2 class="text-2xl font-bold mb-2">Módulo em Desenvolvimento</h2>
<p class="text-base-content/70 max-w-md mb-6">
O módulo Financeiro está sendo desenvolvido e em breve estará disponível com funcionalidades completas de gestão financeira e orçamentária.
</p>
<div class="badge badge-warning badge-lg gap-2">
<Plus class="h-4 w-4" strokeWidth={2} />
Em Desenvolvimento
</div>
</div>
</div>
</div>
<!-- Funcionalidades Previstas -->
<div class="mt-6">
<h3 class="text-xl font-bold mb-4">Funcionalidades Previstas</h3>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<div class="card bg-base-100 shadow-md hover:shadow-lg transition-shadow">
<div class="card-body">
<div class="flex items-center gap-3 mb-2">
<div class="p-2 bg-primary/10 rounded-lg">
<Calculator class="h-6 w-6 text-primary" strokeWidth={2} />
</div>
<h4 class="font-semibold">Controle Orçamentário</h4>
</div>
<p class="text-sm text-base-content/70">Gestão e acompanhamento do orçamento anual</p>
</div>
</div>
<div class="card bg-base-100 shadow-md hover:shadow-lg transition-shadow">
<div class="card-body">
<div class="flex items-center gap-3 mb-2">
<div class="p-2 bg-primary/10 rounded-lg">
<TrendingUp class="h-6 w-6 text-primary" strokeWidth={2} />
</div>
<h4 class="font-semibold">Fluxo de Caixa</h4>
</div>
<p class="text-sm text-base-content/70">Controle de entradas e saídas financeiras</p>
</div>
</div>
<div class="card bg-base-100 shadow-md hover:shadow-lg transition-shadow">
<div class="card-body">
<div class="flex items-center gap-3 mb-2">
<div class="p-2 bg-primary/10 rounded-lg">
<FileText class="h-6 w-6 text-primary" strokeWidth={2} />
</div>
<h4 class="font-semibold">Relatórios Financeiros</h4>
</div>
<p class="text-sm text-base-content/70">Geração de relatórios e demonstrativos</p>
</div>
</div>
</div>
</div>
</main>
</ProtectedRoute>
<script lang="ts">
import { Building2, Calculator, DollarSign, FileText, Plus, TrendingUp } from 'lucide-svelte';
import { resolve } from '$app/paths';
import ProtectedRoute from '$lib/components/ProtectedRoute.svelte';
</script>
<ProtectedRoute>
<main class="container mx-auto px-4 py-4">
<!-- Breadcrumb -->
<div class="breadcrumbs mb-4 text-sm">
<ul>
<li><a href={resolve('/')} class="text-primary hover:underline">Dashboard</a></li>
<li>Financeiro</li>
</ul>
</div>
<!-- Cabeçalho -->
<div class="mb-6">
<div class="mb-2 flex items-center gap-4">
<div class="rounded-xl bg-green-500/20 p-3">
<DollarSign class="h-8 w-8 text-green-600" strokeWidth={2} />
</div>
<div>
<h1 class="text-primary text-3xl font-bold">Financeiro</h1>
<p class="text-base-content/70">Gestão financeira e orçamentária da secretaria</p>
</div>
</div>
</div>
<!-- Card de Aviso -->
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<div class="flex flex-col items-center justify-center py-12 text-center">
<div class="mb-6">
<Building2 class="text-base-content/20 h-24 w-24" strokeWidth={1.5} />
</div>
<h2 class="mb-2 text-2xl font-bold">Módulo em Desenvolvimento</h2>
<p class="text-base-content/70 mb-6 max-w-md">
O módulo Financeiro está sendo desenvolvido e em breve estará disponível com
funcionalidades completas de gestão financeira e orçamentária.
</p>
<div class="badge badge-warning badge-lg gap-2">
<Plus class="h-4 w-4" strokeWidth={2} />
Em Desenvolvimento
</div>
</div>
</div>
</div>
<!-- Funcionalidades Previstas -->
<div class="mt-6">
<h3 class="mb-4 text-xl font-bold">Funcionalidades Previstas</h3>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
<div class="card bg-base-100 shadow-md transition-shadow hover:shadow-lg">
<div class="card-body">
<div class="mb-2 flex items-center gap-3">
<div class="bg-primary/10 rounded-lg p-2">
<Calculator class="text-primary h-6 w-6" strokeWidth={2} />
</div>
<h4 class="font-semibold">Controle Orçamentário</h4>
</div>
<p class="text-base-content/70 text-sm">Gestão e acompanhamento do orçamento anual</p>
</div>
</div>
<div class="card bg-base-100 shadow-md transition-shadow hover:shadow-lg">
<div class="card-body">
<div class="mb-2 flex items-center gap-3">
<div class="bg-primary/10 rounded-lg p-2">
<TrendingUp class="text-primary h-6 w-6" strokeWidth={2} />
</div>
<h4 class="font-semibold">Fluxo de Caixa</h4>
</div>
<p class="text-base-content/70 text-sm">Controle de entradas e saídas financeiras</p>
</div>
</div>
<div class="card bg-base-100 shadow-md transition-shadow hover:shadow-lg">
<div class="card-body">
<div class="mb-2 flex items-center gap-3">
<div class="bg-primary/10 rounded-lg p-2">
<FileText class="text-primary h-6 w-6" strokeWidth={2} />
</div>
<h4 class="font-semibold">Relatórios Financeiros</h4>
</div>
<p class="text-base-content/70 text-sm">Geração de relatórios e demonstrativos</p>
</div>
</div>
</div>
</div>
</main>
</ProtectedRoute>