feat: enhance ata management by adding dataProrrogacao field and updating related logic for effective date handling, improving data integrity and user experience in pedidos

This commit is contained in:
2025-12-17 10:39:33 -03:00
parent fbf00c824e
commit 9072619e26
8 changed files with 390 additions and 115 deletions

View File

@@ -4,6 +4,7 @@
import { useConvexClient, useQuery } from 'convex-svelte';
import { Pencil, Plus, Trash2, X, Search, Check, FileText } from 'lucide-svelte';
import { resolve } from '$app/paths';
import { formatarDataBR } from '$lib/utils/datas';
const client = useConvexClient();
@@ -41,7 +42,8 @@
numeroSei: '',
empresaId: '' as Id<'empresas'> | '',
dataInicio: '',
dataFim: ''
dataFim: '',
dataProrrogacao: ''
});
let selectedObjetos = $state<Id<'objetos'>[]>([]);
type ObjetoAtaConfig = {
@@ -72,7 +74,8 @@
numeroSei: ata.numeroSei,
empresaId: ata.empresaId,
dataInicio: ata.dataInicio || '',
dataFim: ata.dataFim || ''
dataFim: ata.dataFim || '',
dataProrrogacao: ata.dataProrrogacao || ''
};
// Fetch linked objects
const linkedObjetos = await client.query(api.atas.getObjetos, { id: ata._id });
@@ -96,7 +99,8 @@
numeroSei: '',
empresaId: '',
dataInicio: '',
dataFim: ''
dataFim: '',
dataProrrogacao: ''
};
selectedObjetos = [];
objetosConfig = {};
@@ -180,6 +184,7 @@
empresaId: formData.empresaId as Id<'empresas'>,
dataInicio: formData.dataInicio || undefined,
dataFim: formData.dataFim || undefined,
dataProrrogacao: formData.dataProrrogacao || undefined,
objetos
};
@@ -416,7 +421,13 @@
{getEmpresaNome(ata.empresaId)}
</td>
<td class="text-base-content/70 whitespace-nowrap">
{ata.dataInicio || '-'} a {ata.dataFim || '-'}
{ata.dataInicio ? formatarDataBR(ata.dataInicio) : '-'} a
{ata.dataFim ? formatarDataBR(ata.dataFim) : '-'}
{#if ata.dataProrrogacao}
<span class="text-base-content/50">
(prorrogação: {formatarDataBR(ata.dataProrrogacao)})</span
>
{/if}
</td>
<td class="text-right whitespace-nowrap">
<div class="flex items-center justify-end gap-1">
@@ -508,7 +519,7 @@
</select>
</div>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div class="form-control w-full">
<label class="label" for="dataInicio">
<span class="label-text font-semibold">Data Início</span>
@@ -531,6 +542,17 @@
bind:value={formData.dataFim}
/>
</div>
<div class="form-control w-full">
<label class="label" for="dataProrrogacao">
<span class="label-text font-semibold">Data Prorrogação</span>
</label>
<input
id="dataProrrogacao"
class="input input-bordered focus:input-primary w-full"
type="date"
bind:value={formData.dataProrrogacao}
/>
</div>
</div>
</div>