Proveedores
Ruta:
/owner/vendorsGestiona tu catálogo de proveedores y suministradores con matching automático desde gastos y transacciones bancarias.
Vista de lista
Sección titulada «Vista de lista»La pantalla principal de Proveedores muestra tarjetas de resumen y una tabla de todos los proveedores registrados:
Tarjetas de resumen:
| Tarjeta | Descripcion |
|---|---|
| Total Proveedores | Cantidad total de proveedores registrados |
| Proveedores Activos | Proveedores con estado activo |
| Con Categoría | Proveedores con categoría por defecto asignada |
Columnas de la tabla: Proveedor (nombre + CIF/NIF), Email, Teléfono, Categoría, Estado, Acciones
Filtros disponibles: búsqueda por nombre/CIF/NIF/email, estado (activos/inactivos), categoría
Funciones
Sección titulada «Funciones»| Funcion | Descripcion | Documentacion |
|---|---|---|
| Crear Proveedor | Formulario completo con pestañas (General, Contacto, Dirección, Configuración) | Ver |
| Editar Proveedor | Modifica datos de un proveedor existente | Ver |
| Quick Add Proveedor | Modal rápido para crear proveedor desde formulario de gastos | Ver |
| Búsqueda y Filtros | Filtra por nombre, CIF, email, estado y categoría | Ver |
| Matching Automático | Detección automática de proveedores desde OCR y transacciones bancarias | Ver |
Estados del proveedor
Sección titulada «Estados del proveedor»Los proveedores tienen dos estados posibles:
| Estado | Descripcion | Color |
|---|---|---|
| Activo | Proveedor disponible para usar en gastos | Verde |
| Inactivo | Proveedor deshabilitado (no aparece en selecciones) | Gris |
Matching automático
Sección titulada «Matching automático»Factux incluye un sistema inteligente de matching que detecta automáticamente proveedores:
Desde OCR (tickets/facturas)
Sección titulada «Desde OCR (tickets/facturas)»Cuando subes un ticket o factura, el sistema busca coincidencias por:
- CIF/NIF exacto (100% confianza) — si el proveedor tiene el mismo CIF
- Alias registrado (85-95% confianza) — nombres alternativos guardados
- Similitud de nombre (50-95% confianza) — búsqueda fuzzy por nombre
Desde transacciones bancarias
Sección titulada «Desde transacciones bancarias»Al sincronizar movimientos bancarios, el sistema detecta proveedores por:
- Alias bancario (90-100% confianza) — nombres de comercio guardados
- Búsqueda por nombre (60-70% confianza) — búsqueda parcial
Auto-learning (aprendizaje automático)
Sección titulada «Auto-learning (aprendizaje automático)»Cuando confirmas un proveedor para un gasto, el sistema:
- Guarda el nombre detectado como alias automático
- Incrementa el contador de coincidencias
- Mejora futuras detecciones con ese nombre
Ejemplo: Si el OCR detecta “MERCADONA S.A.” y tú lo vinculas con el proveedor “Mercadona”, la próxima vez que aparezca “MERCADONA S.A.” se sugerirá automáticamente.
Referencia técnica
Sección titulada «Referencia técnica»Detalles técnicos
Tablas de base de datos
Sección titulada «Tablas de base de datos»| Tabla | Columnas principales | FK |
|---|---|---|
vendors | id, business_id, name, legal_name, tax_id, email, phone, is_active, default_category, default_tax_rate, payment_terms | businesses |
vendor_aliases | id, vendor_id, business_id, alias, match_type, source, times_matched | vendors |
Políticas RLS
Sección titulada «Políticas RLS»| Politica | Regla |
|---|---|
vendors_business_isolation | business_id = usuario autenticado |
vendor_aliases_via_vendor | Acceso via proveedor padre |
Edge Functions
Sección titulada «Edge Functions»| Funcion | Descripcion |
|---|---|
find_vendor_by_alias | RPC function: busca proveedores por alias con scoring de confianza |
increment_alias_match | RPC function: incrementa contador de coincidencias de alias |
Tipos de matching
Sección titulada «Tipos de matching»| Match Type | Descripcion | Uso |
|---|---|---|
exact | Coincidencia exacta | Nombres idénticos |
contains | Contiene el texto | Nombres parciales |
starts_with | Empieza con | Prefijos |
regex | Expresión regular | Patrones complejos |
Fuentes de alias
Sección titulada «Fuentes de alias»| Source | Origen | Auto-creado |
|---|---|---|
manual | Usuario lo añade manualmente | No |
bank | Transacción bancaria | Sí |
ocr | Ticket/factura escaneada | Sí |
learned | Aprendizaje automático | Sí |
Queries de diagnóstico
Sección titulada «Queries de diagnóstico»Proveedor completo con aliases:
SELECT v.*, (SELECT json_agg(va.* ORDER BY va.times_matched DESC) FROM vendor_aliases va WHERE va.vendor_id = v.id) as aliasesFROM vendors vWHERE v.id = '<vendor_id>';Aliases más usados:
SELECT va.alias, va.times_matched, va.source, v.name as vendor_nameFROM vendor_aliases vaJOIN vendors v ON va.vendor_id = v.idWHERE va.business_id = '<business_id>'ORDER BY va.times_matched DESCLIMIT 20;Proveedores sin categoría:
SELECT id, name, tax_idFROM vendorsWHERE business_id = '<business_id>' AND is_active = true AND default_category IS NULLORDER BY name;Gastos por proveedor:
SELECT v.name, COUNT(e.id) as gastos, SUM(e.amount) as totalFROM vendors vLEFT JOIN expenses e ON e.vendor_id = v.idWHERE v.business_id = '<business_id>'GROUP BY v.id, v.nameORDER BY total DESC;