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:
@@ -45,12 +45,22 @@ export const list = query({
|
||||
// Filtro por intervalo (range): retorna atas cuja vigência intersecta o período informado.
|
||||
// Considera datas como strings "YYYY-MM-DD" (lexicograficamente comparáveis).
|
||||
const ataInicio = ata.dataInicio ?? '0000-01-01';
|
||||
const ataFim = ata.dataFim ?? '9999-12-31';
|
||||
const ataFimEfetivo = (() => {
|
||||
const a = ata.dataFim;
|
||||
const b = (ata as { dataProrrogacao?: string }).dataProrrogacao;
|
||||
if (!a && !b) return '9999-12-31';
|
||||
if (!a) return b!;
|
||||
if (!b) return a;
|
||||
return a >= b ? a : b;
|
||||
})();
|
||||
|
||||
const periodoOk =
|
||||
(!periodoInicio && !periodoFim) ||
|
||||
(periodoInicio && periodoFim && ataInicio <= periodoFim && ataFim >= periodoInicio) ||
|
||||
(periodoInicio && !periodoFim && ataFim >= periodoInicio) ||
|
||||
(periodoInicio &&
|
||||
periodoFim &&
|
||||
ataInicio <= periodoFim &&
|
||||
ataFimEfetivo >= periodoInicio) ||
|
||||
(periodoInicio && !periodoFim && ataFimEfetivo >= periodoInicio) ||
|
||||
(!periodoInicio && periodoFim && ataInicio <= periodoFim);
|
||||
|
||||
return numeroOk && seiOk && periodoOk;
|
||||
@@ -149,6 +159,7 @@ export const create = mutation({
|
||||
numero: v.string(),
|
||||
dataInicio: v.optional(v.string()),
|
||||
dataFim: v.optional(v.string()),
|
||||
dataProrrogacao: v.optional(v.string()),
|
||||
empresaId: v.id('empresas'),
|
||||
numeroSei: v.string(),
|
||||
objetos: v.array(
|
||||
@@ -174,6 +185,7 @@ export const create = mutation({
|
||||
empresaId: args.empresaId,
|
||||
dataInicio: args.dataInicio,
|
||||
dataFim: args.dataFim,
|
||||
dataProrrogacao: args.dataProrrogacao,
|
||||
criadoPor: user._id,
|
||||
criadoEm: Date.now(),
|
||||
atualizadoEm: Date.now()
|
||||
@@ -205,6 +217,7 @@ export const update = mutation({
|
||||
empresaId: v.id('empresas'),
|
||||
dataInicio: v.optional(v.string()),
|
||||
dataFim: v.optional(v.string()),
|
||||
dataProrrogacao: v.optional(v.string()),
|
||||
objetos: v.array(
|
||||
v.object({
|
||||
objetoId: v.id('objetos'),
|
||||
@@ -228,6 +241,7 @@ export const update = mutation({
|
||||
empresaId: args.empresaId,
|
||||
dataInicio: args.dataInicio,
|
||||
dataFim: args.dataFim,
|
||||
dataProrrogacao: args.dataProrrogacao,
|
||||
atualizadoEm: Date.now()
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user