feat: implement filtering and document management features in dashboard components, enhancing user experience with improved query capabilities and UI for managing documents in pedidos and compras
This commit is contained in:
@@ -3,9 +3,34 @@ import { mutation, query } from './_generated/server';
|
||||
import { getCurrentUserFunction } from './auth';
|
||||
|
||||
export const list = query({
|
||||
args: {},
|
||||
handler: async (ctx) => {
|
||||
return await ctx.db.query('objetos').collect();
|
||||
args: {
|
||||
nome: v.optional(v.string()),
|
||||
tipo: v.optional(v.union(v.literal('material'), v.literal('servico'))),
|
||||
codigos: v.optional(v.string())
|
||||
},
|
||||
handler: async (ctx, args) => {
|
||||
const nome = args.nome?.trim();
|
||||
const codigos = args.codigos?.trim().toLowerCase();
|
||||
|
||||
const base =
|
||||
nome && nome.length > 0
|
||||
? await ctx.db
|
||||
.query('objetos')
|
||||
.withSearchIndex('search_nome', (q) => q.search('nome', nome))
|
||||
.collect()
|
||||
: await ctx.db.query('objetos').collect();
|
||||
|
||||
return base.filter((objeto) => {
|
||||
const tipoOk = !args.tipo || objeto.tipo === args.tipo;
|
||||
|
||||
const codigosOk =
|
||||
!codigos ||
|
||||
(objeto.codigoEfisco || '').toLowerCase().includes(codigos) ||
|
||||
(objeto.codigoCatmat || '').toLowerCase().includes(codigos) ||
|
||||
(objeto.codigoCatserv || '').toLowerCase().includes(codigos);
|
||||
|
||||
return tipoOk && codigosOk;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user