Gestionar Series
Exportar contenido
Crea, edita y gestiona las series de numeración para tus documentos.
Tipos de series disponibles
Sección titulada «Tipos de series disponibles»El sistema agrupa las series en acordeones según el tipo de documento:
| Tipo | Icono | Descripción |
|---|---|---|
| Series de Facturas | FileText | Facturas normales y rectificativas |
| Series de Presupuestos | FileCheck | Ofertas y cotizaciones |
| Series de Proformas | FileClock | Facturas proforma |
| Series de Albaranes | Truck | Documentos de entrega |
Crear nueva serie
Sección titulada «Crear nueva serie»- Navega a Configuración > Facturación > Series.
- Despliega el acordeón del tipo de documento deseado.
- Clic en “Nueva Serie” (botón con icono +).
- Completa el formulario:
| Campo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|
| Nombre | Sí | Identificador de la serie | Facturas 2026 |
| Prefijo | Sí | Prefijo del número de documento (1-10 chars) | FAC |
| Próximo número | No | Número inicial (por defecto: 1) | 1 |
| Relleno de ceros | No | Cantidad de dígitos (1-10, por defecto: 6) | 6 |
- Clic en “Guardar”.
Ejemplo de numeración generada:
Prefijo: FACPróximo número: 1Relleno: 6
Resultado: FAC-000001, FAC-000002, FAC-000003...Editar serie existente
Sección titulada «Editar serie existente»- Localiza la serie en la lista.
- Clic en el botón “Editar” (icono lápiz).
- Modifica los campos permitidos:
Campos editables:
| Campo | Editable si serie nueva | Editable si serie en uso |
|---|---|---|
| Nombre | Sí | Sí |
| Prefijo | Sí | ❌ No (protegido) |
| Próximo número | Sí | ❌ No (protegido) |
| Relleno de ceros | Sí | ❌ No (protegido) |
ALERTA: Una vez que la serie ha emitido documentos (
current_number > 1), el prefijo y la numeración se bloquean para mantener la integridad de la secuencia.
Activar/Desactivar serie
Sección titulada «Activar/Desactivar serie»- Localiza la serie en la lista.
- Usa el Switch en la columna “Estado”:
- Verde = Activa (disponible para nuevos documentos)
- Gris = Inactiva (no aparece en selectores)
Eliminar serie
Sección titulada «Eliminar serie»- Localiza la serie en la lista.
- Clic en el botón “Eliminar” (icono papelera).
- Confirma la acción en el diálogo.
Restricciones de eliminación:
| Estado de la serie | ¿Se puede eliminar? | Mensaje |
|---|---|---|
Serie nueva (current_number = 1) | Sí | — |
Serie en uso (current_number > 1) | ❌ No | ”Solo puedes desactivarla para dejar de usarla” |
Como sé que lo hice bien
Sección titulada «Como sé que lo hice bien»- La serie aparece en la tabla con badge “Activa” (verde).
- Al crear un documento, la serie está disponible en el selector.
- El próximo número se muestra correctamente formateado (ej:
FAC-000001).
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| ”Prefijo requerido” | Campo vacío | Escribe un prefijo de 1-10 caracteres |
| ”Nombre requerido” | Campo vacío | Escribe un nombre descriptivo |
| ”No se puede eliminar” | Serie en uso | Desactiva la serie en lugar de eliminarla |
| Botón “Editar” bloqueado | Serie protegida | Solo puedes cambiar el nombre |
Buenas prácticas
Sección titulada «Buenas prácticas»Nomenclatura de series:
✅ Recomendado: - FAC (facturas) - PRES (presupuestos) - ALB (albaranes) - REC (rectificativas)
❌ Evitar: - Prefijos muy largos: FACTURA2026 - Caracteres especiales: FAC#2026 - Espacios: FAC 2026Organización por año:
Serie: Facturas 2026 Prefijo: FAC26 → FAC26-000001Serie: Facturas 2027 Prefijo: FAC27 → FAC27-000001Organización por tipo:
Serie: Facturas Prefijo: FAC → FAC-000001Serie: Tickets Prefijo: TKT → TKT-000001Serie: Exportación Prefijo: EXP → EXP-000001Detalles técnicos — Gestionar Series
Sección titulada «Detalles técnicos — Gestionar Series»Detalles técnicos
Tabla: invoice_sequences
CREATE TABLE invoice_sequences ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES auth.users, name TEXT NOT NULL, prefix TEXT NOT NULL, current_number INTEGER DEFAULT 1, is_active BOOLEAN DEFAULT true, number_padding INTEGER DEFAULT 6, created_at TIMESTAMPTZ DEFAULT now(), CONSTRAINT number_padding_check CHECK (number_padding >= 1 AND number_padding <= 10));Validaciones:
| Campo | Regla | Constraint |
|---|---|---|
name | NOT NULL | — |
prefix | NOT NULL, 1-10 chars | — |
current_number | >= 1 | — |
number_padding | 1-10 | number_padding_check |
user_id | FK a auth.users | — |
RLS Policy:
-- Solo el usuario propietario puede ver/editar sus seriesCREATE POLICY "invoice_sequences_user_isolation" ON invoice_sequences FOR ALL USING (user_id = auth.uid());Componente: InvoiceSeriesManager.tsx
// Protección contra eliminaciónconst handleDelete = async (seriesId: string, seriesToDelete: InvoiceSeries) => { if (seriesToDelete.current_number > 1) { toast({ title: "No se puede eliminar", description: "Esta serie ya ha emitido documentos. Solo puedes desactivarla.", variant: "destructive", }); return; } // ... procede con la eliminación};Queries de diagnóstico:
-- Ver todas las series de un usuarioSELECT id, name, prefix, current_number, is_active, number_paddingFROM invoice_sequencesWHERE user_id = '<user_id>'ORDER BY name;
-- Series protegidas (no eliminables)SELECT id, name, prefix, current_numberFROM invoice_sequencesWHERE user_id = '<user_id>' AND current_number > 1;
-- Series activasSELECT id, name, prefixFROM invoice_sequencesWHERE user_id = '<user_id>' AND is_active = true;