Módulo de Facturación
El módulo de facturación es el núcleo del sistema, permitiendo la emisión de facturas (01) y boletas (03) electrónicas con generación automática de XML, firma digital y envío directo a SUNAT.Características Principales
Emisión de Comprobantes
Facturas, boletas y notas de venta con validación SUNAT
Gestión de Stock
Descuento automático de inventario al emitir ventas
Múltiples Monedas
Soporte para PEN y USD con tipo de cambio
Productos Libres
Añade productos no registrados durante la venta
Tipos de Documentos
El sistema maneja tres tipos principales de documentos de venta:Factura (01)
Factura (01)
- Requisitos: RUC de 11 dígitos obligatorio
- IGV: Incluido en el total (tasa 18%)
- Envío SUNAT: Sincrónico vía SOAP
- Serie: F001, F002, etc.
Boleta (03)
Boleta (03)
- Requisitos: DNI u otro documento (no RUC)
- IGV: Incluido en el total
- Envío SUNAT: Requiere Resumen Diario
- Serie: B001, B002, etc.
Nota de Venta (06)
Nota de Venta (06)
- Uso interno: No se envía a SUNAT
- Sin stock: No afecta inventario por defecto
- Convertible: Puede convertirse a factura/boleta
- Serie: NV01, NV02, etc.
Flujo de Trabajo
Seleccionar Cliente
Busca un cliente existente por documento o crea uno nuevo al vuelo. El sistema valida:
- Facturas requieren RUC (11 dígitos)
- Boletas no permiten RUC (usar DNI o CE)
- Cliente “CLIENTES VARIOS” (00000000) para ventas sin datos
Agregar Productos
Añade productos del catálogo o productos libres con descripción personalizada:
- Productos del catálogo: Descuentan stock automáticamente
- Productos libres: Se crean con código auto-generado (LIB-0001)
- Snapshot: Se guarda nombre y código actual del producto
Configurar Pagos
Define el método de pago y tipo:
- Contado: Pago inmediato, un solo método
- Crédito: Configura cuotas con fechas de vencimiento
- Voucher: Opcional, sube imagen del comprobante de pago
Generar Comprobante
El sistema automáticamente:
- Asigna el siguiente número correlativo para la serie
- Descuenta stock del almacén configurado
- Registra movimientos de stock con trazabilidad completa
- Genera el comprobante en estado “Pendiente SUNAT”
Implementación Técnica
Backend: VentasController
El controlador principal gestiona todas las operaciones de venta:Modelo: Venta
El modelo incluye relaciones y scopes útiles:Validaciones Clave
El sistema implementa validaciones estrictas según normativa SUNAT:Gestión de Stock
El sistema maneja dos tipos de almacenes:Almacén Virtual (1)
Stock principal que se descuenta al crear la venta
Almacén Real (2)
Stock físico que se descuenta manualmente después del despacho
Descuento Dual de Stock
Para mayor control, el sistema permite descuentos en dos momentos:Anulación de Ventas
La anulación devuelve el stock al almacén original:Productos Libres
Permite vender productos no registrados previamente:Cuando se ingresa un producto libre, el sistema:
- Busca si existe un producto con ese nombre exacto
- Si no existe, lo crea con código auto-generado
LIB-XXXX - Lo guarda en el catálogo con precio cero de costo
- NO descuenta stock (cantidad = 0)
Series y Numeración
El sistema gestiona series correlativas automáticamente:Configuración de Series
Configuración de Series
Las series se configuran en la tabla
documentos_empresas:- Facturas: F001, F002, F003…
- Boletas: B001, B002, B003…
- Notas de Venta: NV01, NV02…
Generación de Número
Generación de Número
El número se genera usando el máximo entre:
- Último número usado en la tabla
ventas - Número base configurado en
documentos_empresas
Conversión desde Cotizaciones
Las cotizaciones aprobadas pueden convertirse en ventas:Tablas de Base de Datos
| Tabla | Descripción | Campos Clave |
|---|---|---|
ventas | Encabezado del documento | id_venta, serie, numero, id_cliente, total, estado_sunat |
detalle_ventas | Productos de la venta | id_venta, id_producto, cantidad, precio_unitario, total |
dias_ventas | Cuotas de pago a crédito | id_venta, monto, fecha, estado (P/C/V) |
ventas_pagos | Métodos de pago usados | id_venta, id_tipo_pago, monto, voucher |
movimientos_stock | Trazabilidad de inventario | id_producto, tipo_movimiento, cantidad, stock_anterior, stock_nuevo |
ventas_anuladas | Historial de anulaciones | id_venta, motivo_anulacion, fecha_anulacion, total_anulado |
Endpoints API
Ver la referencia completa de API:Listar Ventas
GET /api/ventas
Crear Venta
POST /api/ventas
Ver Detalle
GET /api/ventas/:id
Anular Venta
POST /api/ventas/:id/anular
Próximos Pasos
Enviar a SUNAT
Aprende cómo enviar comprobantes a SUNAT
Notas de Crédito
Emite notas de crédito y débito
Primera Venta
Guía paso a paso para tu primera venta
Reportes
Genera reportes de ventas en Excel y PDF