Ir al contenido

Crear Proveedor

Crea un nuevo proveedor con información completa organizada en pestañas.

  1. Clic en “Nuevo Proveedor” — se abre el formulario lateral (sheet).
  2. Completa la pestaña “General” con nombre, razón social y CIF/NIF.
  3. (Opcional) Completa “Contacto” con email, teléfono y web.
  4. (Opcional) Completa “Dirección” con domicilio fiscal — puedes usar búsqueda de Google Places.
  5. (Opcional) Completa “Configuración” con categoría por defecto, IVA y plazo de pago.
  6. Clic en “Guardar” — el proveedor se crea y aparece en la lista.
CampoObligatorioDescripcionEjemplo
Nombre comercialNombre con el que identificas al proveedorMercadona
Razón socialNoNombre legal de la empresaMercadona, S.A.
CIF/NIFNoIdentificación fiscal (validación automática)A46103834
EstadoActivo/Inactivo (por defecto: Activo)Activo
NotasNoInformación adicionalProveedor de alimentación
CampoDescripcionValidaciónEjemplo
EmailCorreo de contactoFormato email válidocompras@mercadona.es
TeléfonoNúmero de teléfonoFormato español +34+34 900 500 100
Sitio WebPágina webURL válidahttps://www.mercadona.es
CampoDescripcion
BúsquedaAutocompletado con Google Places API
DirecciónCalle y número
CiudadPoblación
Código PostalCP
ProvinciaProvincia
PaísPor defecto: España
CampoDescripcionOpcionesPor defecto
Categoría por defectoAuto-rellena en gastos13 categorías de gastos
IVA por defectoAuto-rellena en gastos0%, 4%, 10%, 21%21%
Plazo de pagoDías para pagar facturasContado, 15, 30, 45, 60, 90 días30 días
CampoReglaMensaje de error
Nombre comercialNo vacío”El nombre es obligatorio”
CIF/NIFFormato español válido”CIF/NIF inválido”
EmailFormato email válido”Email inválido”
TeléfonoFormato español/internacional”Teléfono inválido”
  • El proveedor aparece en la lista principal.
  • Toast de confirmación: ”✅ Proveedor creado”.
  • Badge verde “Activo” si está activado.
  • Puedes seleccionarlo al crear gastos.
MensajeCausaSolución
”El nombre es obligatorio”Campo vacíoEscribe el nombre del proveedor
”CIF/NIF inválido”Formato incorrectoVerifica el formato (ej: A12345678)
“Email inválido”Formato incorrectoUsa formato: usuario@dominio.com
”Ya existe un proveedor con ese CIF”CIF duplicadoUsa el proveedor existente
Detalles técnicos — Crear Proveedor
Detalles técnicos

Componente: VendorFormSheet.tsx

Hook de creación: useCreateVendor() en src/features/vendors/hooks/useVendors.ts

Validaciones en cliente:

CódigoRegla
VAL-01name NOT NULL AND length >= 1
VAL-02tax_id matches Spanish CIF/NIF pattern (opcional)
VAL-03email matches RFC 5322 format (opcional)
VAL-04phone matches Spanish phone pattern (opcional)
VAL-05default_tax_rate IN (0, 4, 10, 21)
VAL-06payment_terms >= 0

Schema de validación:

  • CIF/NIF: src/utils/validators.tsvalidateSpanishTaxId()
  • Email: src/utils/validators.tsvalidateEmail()
  • Phone: src/utils/validators.tsvalidatePhone()

Tabla: vendors

Estructura de insert:

INSERT INTO vendors (
business_id, user_id, name, legal_name, tax_id,
email, phone, website, address, city, postal_code,
province, country, default_category, default_tax_rate,
payment_terms, notes, is_active
) VALUES (...);

Adapter: src/features/vendors/api/vendor-adapter.tscreate()

Query de diagnóstico:

SELECT * FROM vendors
WHERE business_id = '<business_id>'
AND name ILIKE '%<search>%'
ORDER BY created_at DESC
LIMIT 1;