Appearance
Comprobantes Pendientes
Modulo: ventas Tipo: Resource Estado: Implementado Fecha: 2026-02-09
DOCUMENTACION RETROSPECTIVA - Generada a partir de codigo implementado el 2026-02-09. Esta documentacion fue extraida analizando el codigo fuente existente, no a partir de requisitos de negocio originales.
Descripcion
El recurso "Comprobantes Pendientes" abarca dos funcionalidades relacionadas dentro del modulo de ventas:
Tipos de Comprobantes Pendientes (Configuracion): Administracion de los tipos de comprobantes pendientes disponibles en el sistema (tabla de configuracion). Los tipos implementados son Pedido (id=1) y Presupuesto CRM (id=2). Cada tipo define un nombre, un codigo de reporte asociado, un numerador de comprobante auto-incremental y si el tipo genera movimientos de stock al crear un comprobante.
Pedidos (Comprobantes Pendientes Operativos): Gestion completa (Alta, Modificacion, Eliminacion, Consulta) de comprobantes de tipo Pedido. Un pedido es un comprobante pre-factura vinculado a un cliente, vendedor y lista de precios, que contiene items (productos) con cantidades, precios y bonificaciones. Opcionalmente genera movimientos de stock (egreso). El pedido queda pendiente hasta que se cancela mediante una factura.
Presupuesto CRM: Comprobante pendiente generado automáticamente al convertir un presupuesto CRM aprobado. Sus items usan precio final (IVA incluido) — el precio almacenado en
neto_unitarioya incluye impuestos. Al cargar este tipo de pendiente en facturación, se utilizaTipoPrecio.FINALen lugar deTipoPrecio.NETO.
El sistema esta disenado con un patron extensible (Factory + Strategy) que permite agregar nuevos tipos de comprobantes pendientes en el futuro.
Nota: La vista de configuracion (Bases > Comp. Pendientes) es accesible para cualquier empresa con el modulo de Ventas activo. El permiso VENTAS_BASES_COMPROBANTES-PENDIENTES controla el acceso por usuario.
Frontend (Perspectiva de Usuario)
Vistas
- Listado de Tipos de Comprobantes Pendientes (accesible via menu Ventas > Bases > Comp. Pendientes): Tabla con codigo y nombre del tipo de comprobante, con boton de edicion por fila. Esta es la pantalla de configuracion de los tipos disponibles.
- Gestion de Pedidos: Los pedidos individuales se gestionan desde una vista separada (Pedido), que incluye formularios de alta, modificacion y consulta de pedidos con sus items.
Interacciones del usuario
En la vista de Tipos de Comprobantes Pendientes:
- Consultar el listado de todos los tipos de comprobantes pendientes configurados
- Modificar la configuracion de un tipo: activar/desactivar si "maneja stock"
- El codigo y nombre del tipo no son editables desde la interfaz (readonly)
En la gestion de Pedidos:
- Consultar listado de pedidos pendientes (filtrables por cliente y tipo de comprobante)
- Consultar un pedido por numero de comprobante o por ID
- Crear un nuevo pedido indicando: cliente, vendedor, sucursal, lista de precios, fecha, fecha de entrega, provincia, comentario e items (productos con cantidad, precio, nombre y bonificacion)
- Modificar un pedido existente (reemplaza todos los datos y items)
- Eliminar un pedido pendiente (eliminacion logica, no se elimina fisicamente)
- Ver detalle completo de un pedido incluyendo datos del cliente y items
Permisos
- Para acceder a la vista de Comprobantes Pendientes se requiere el permiso
VENTAS_BASES_COMPROBANTES-PENDIENTES - La vista solo es visible si la empresa tiene habilitada la funcionalidad de pedido
Estados de UI
- Indicador de carga al obtener listado de tipos y pedidos
- Confirmacion al modificar exitosamente un tipo de comprobante ("Comprobante modificada exitosamente")
- Modal de edicion para tipos de comprobantes con formulario de campos
- Mensajes de error si no se encuentra un comprobante o si hay error en la operacion
Backend (Perspectiva de Datos de Negocio)
Entidades de negocio
Tipo de Comprobante Pendiente: Entidad de configuracion que define los tipos de comprobantes pendientes disponibles.
- Identificador unico
- Nombre del tipo (ej: "Pedido")
- Codigo de reporte para generacion de informes
- Numerador de comprobante (auto-incremental)
- Indicador de si genera movimientos de stock
Comprobante Pendiente (Pedido): Entidad operativa que representa un pedido pendiente de facturacion.
- Identificador unico
- Cliente asociado (codigo)
- Fecha del comprobante
- Importes: neto, subtotal, total, IVA
- Vendedor asignado
- Lista de precios utilizada
- Fechas: vencimiento y entrega
- Comentario
- Provincia
- Sucursal emisora
- Numero de comprobante (asignado automaticamente)
- Tipo de comprobante pendiente asociado
- Referencia a factura (cuando se cancela)
- Modo (oficial/prueba)
- Indicador de si genero movimientos de stock
Item de Comprobante Pendiente: Linea de detalle dentro de un comprobante pendiente.
- Identificador unico
- Codigo de producto
- Cantidad
- Precio unitario (con bonificacion aplicada)
- Porcentaje de bonificacion
- Monto de bonificacion
- Impuesto interno (importe y porcentaje)
- Importe total del item
- Descripcion del producto
- Porcentaje de IVA
- Costo del producto
- Neto unitario (precio sin bonificacion)
- Monto de IVA
- Comprobante pendiente al que pertenece
Datos necesarios
Para crear un pedido:
- Cliente (obligatorio)
- Vendedor (obligatorio)
- Sucursal (obligatorio)
- Lista de precios (obligatorio)
- Fecha del pedido (obligatorio)
- Fecha de entrega (obligatorio)
- Provincia (obligatorio)
- Comentario (opcional, maximo 100 caracteres)
- Items (obligatorio, al menos uno):
- Codigo de producto (obligatorio)
- Cantidad (obligatorio, positiva)
- Precio (positivo)
- Nombre/descripcion (obligatorio, maximo 200 caracteres)
- Bonificacion (opcional, cero o positiva)
Relaciones de negocio
- Un tipo de comprobante pendiente puede tener multiples comprobantes asociados
- Un comprobante pendiente pertenece a un unico tipo de comprobante pendiente
- Un comprobante pendiente contiene multiples items
- Un item pertenece a un unico comprobante pendiente (si se elimina el comprobante, se eliminan los items en cascada)
- Un comprobante pendiente esta vinculado a un cliente
- Un comprobante pendiente esta vinculado a un vendedor
- Un comprobante pendiente puede estar vinculado a una factura (cuando se cancela)
- Si el tipo de comprobante maneja stock, cada item que tenga marcado "maneja stock" genera un movimiento de egreso de stock
Validaciones de negocio
- El cliente, vendedor, sucursal, lista de precios, fecha, fecha de entrega, provincia e items son obligatorios para crear un pedido
- Cada item debe tener un producto valido existente en el sistema
- La cantidad de cada item debe ser positiva
- La bonificacion debe ser cero o positiva
- El nombre/descripcion de cada item no puede estar vacio y tiene un maximo de 200 caracteres
- El comentario del comprobante tiene un maximo de 100 caracteres
- El nombre de un tipo de comprobante tiene entre 3 y 30 caracteres
- El codigo de reporte de un tipo de comprobante tiene entre 3 y 15 caracteres
- Solo se eliminan logicamente los comprobantes pendientes (soft delete)
- Los items se eliminan fisicamente cuando se actualiza o elimina un comprobante
Reglas de negocio
Regla 1: Numeracion automatica de comprobantes
- Condicion: Al crear un nuevo comprobante pendiente
- Accion: Se asigna automaticamente el siguiente numero de comprobante basado en el numerador del tipo de comprobante (
numero_comprobante). Luego el numerador se incrementa en 1 para el proximo comprobante.
Regla 2: Generacion de movimientos de stock
- Condicion: Al crear un pedido, si el tipo de comprobante tiene "maneja stock" activado Y la empresa tiene el modulo de Stock habilitado
- Accion: Se genera un movimiento de egreso de stock por cada item del pedido cuyo producto tenga marcado "maneja stock". El movimiento se registra como OFICIAL.
Regla 3: Actualizacion de stock al modificar pedido
- Condicion: Al modificar un pedido existente, si la empresa tiene el modulo de Stock habilitado
- Accion: Se eliminan todos los movimientos de stock anteriores asociados al pedido y se generan nuevos movimientos segun los items actualizados.
Regla 4: Eliminacion de stock al eliminar pedido
- Condicion: Al eliminar un pedido, si la empresa tiene el modulo de Stock habilitado
- Accion: Se eliminan todos los movimientos de stock asociados al pedido.
Regla 5: Cancelacion de pendiente por facturacion
- Condicion: Cuando se genera una factura a partir de un pedido pendiente
- Accion: Se asigna el
id_facturaal comprobante pendiente, lo cual lo excluye de las consultas de pendientes (filtroid_factura IS NULL). [REQUIERE VALIDACION - el flujo de cancelacion no esta implementado en el codigo de Pendientes analizado]
Regla 6: Calculo de totales del pedido
- Condicion: Al crear un pedido
- Accion: El total se calcula como la suma de (precio * cantidad) de todos los items, menos la bonificacion aplicada. El neto y subtotal se calculan como la suma de (precio * cantidad) sin descontar bonificacion.
Regla 7: Calculo de item individual
- Condicion: Al crear/mapear items del pedido
- Accion: Para cada item: bonificacion unitaria = (porcentaje_bonificacion / 100) * precio; precio unitario = precio - bonificacion unitaria; monto bonificacion = bonificacion unitaria * cantidad; importe = (precio * cantidad) - monto bonificacion. Se obtiene el costo del producto desde el maestro de productos.
Regla 8: Disponibilidad de la funcionalidad
- Condicion: La empresa debe tener habilitada la funcionalidad de "pedido" o "remito" y el modulo de Ventas activo
- Accion: Las tablas del sistema solo se crean para empresas que cumplan esta condicion
Regla 9: Eliminacion logica de comprobantes
- Condicion: Al eliminar un comprobante pendiente
- Accion: Se marca con
deleted_at(soft delete), los items asociados se mantienen intactos. Solo los movimientos de stock se eliminan.
Casos de uso
Caso 1: Crear un nuevo pedido
Actor: Usuario con acceso al modulo de ventas
Precondiciones:
- El usuario debe estar autenticado
- La empresa debe tener habilitada la funcionalidad de pedidos
- Debe existir al menos un tipo de comprobante pendiente configurado (Pedido)
- Deben existir clientes, vendedores y productos en el sistema
Flujo principal:
- El usuario accede a la pantalla de gestion de pedidos
- El usuario selecciona cliente, vendedor, sucursal, lista de precios
- El usuario indica fecha del pedido, fecha de entrega, provincia
- El usuario agrega items al pedido: selecciona producto, indica cantidad, precio y opcionalmente bonificacion
- El sistema calcula automaticamente los importes de cada item y los totales del pedido
- El usuario confirma la creacion del pedido
- El sistema asigna automaticamente el numero de comprobante
- El sistema registra el pedido y sus items
- Si el tipo de comprobante maneja stock y la empresa tiene modulo de stock, se generan los movimientos de egreso
- El sistema incrementa el numerador para el proximo pedido
Postcondiciones:
- El pedido queda registrado con estado pendiente (sin factura asociada)
- Los movimientos de stock estan registrados (si aplica)
- El numerador del tipo de comprobante se incremento
Flujos alternativos:
- Error de validacion: Si faltan datos obligatorios o los valores son invalidos, se muestra error y no se crea el pedido
- Producto inexistente: Si un item referencia un producto que no existe, se muestra error
Caso 2: Modificar la configuracion de un tipo de comprobante pendiente
Actor: Usuario con permiso VENTAS_BASES_COMPROBANTES-PENDIENTES
Precondiciones:
- El usuario debe estar autenticado
- La empresa debe tener habilitada la funcionalidad de pedidos
Flujo principal:
- El usuario accede a Ventas > Bases > Comp. Pendientes
- El sistema muestra la tabla con los tipos de comprobantes configurados (codigo, nombre)
- El usuario presiona el boton de edicion en la fila del tipo que desea modificar
- Se abre un modal mostrando: codigo (no editable), nombre (no editable) y checkbox "Maneja Stock"
- El usuario activa o desactiva la opcion "Maneja Stock"
- El usuario confirma los cambios
- El sistema actualiza la configuracion del tipo de comprobante
Postcondiciones:
- La configuracion del tipo de comprobante queda actualizada
- Los futuros pedidos de ese tipo generaran o no movimientos de stock segun la nueva configuracion
Caso 3: Eliminar un pedido pendiente
Actor: Usuario con acceso al modulo de ventas
Precondiciones:
- Debe existir un pedido pendiente (no facturado, no eliminado)
Flujo principal:
- El usuario accede a la gestion de pedidos
- El usuario selecciona el pedido a eliminar
- El sistema marca el pedido como eliminado (soft delete)
- Si la empresa tiene modulo de stock, se eliminan los movimientos de stock asociados
- El pedido ya no aparece en las consultas de pendientes
Postcondiciones:
- El pedido esta marcado como eliminado pero se mantiene en base de datos
- Los movimientos de stock asociados fueron eliminados
Consideraciones
Seguridad
- El acceso a la configuracion de tipos requiere el permiso especifico
VENTAS_BASES_COMPROBANTES-PENDIENTES - Las operaciones sobre pedidos requieren autenticacion JWT
- Los datos se mantienen aislados por schema (multi-tenant)
Auditoria
- [REQUIERE VALIDACION] Actualmente las operaciones sobre comprobantes pendientes no registran auditoria, a diferencia de otros recursos del sistema
Rendimiento
- Las consultas de pendientes filtran por
deleted_at IS NULLyid_factura IS NULLpara mostrar solo los activos - Soporte para scopes de datos (
minymax) para optimizar la cantidad de informacion retornada segun la necesidad - Los items se consultan solo cuando se solicita el scope
max
Dependencias
Funcionalidades relacionadas
- Clientes (ventas): Los pedidos se vinculan a un cliente
- Vendedores (ventas): Los pedidos se asignan a un vendedor
- Productos (ventas/stock): Los items referencian productos del catalogo
- Movimientos de Stock (stock): Los pedidos pueden generar egresos de stock
- Facturacion (ventas): Los pedidos se cancelan al generar una factura
- Listas de Precios (ventas): Los pedidos se vinculan a una lista de precios
Servicios externos
- No se identifican servicios externos involucrados
Criterios de aceptacion
- [x] AC-001: Se pueden consultar todos los tipos de comprobantes pendientes configurados
- [x] AC-002: Se puede modificar la configuracion de "maneja stock" de un tipo de comprobante
- [x] AC-003: Se puede crear un pedido con cliente, vendedor, items y calculos automaticos de importes
- [x] AC-004: Al crear un pedido, se asigna automaticamente el numero de comprobante y se incrementa el numerador
- [x] AC-005: Si el tipo de comprobante maneja stock y la empresa tiene el modulo, se generan movimientos de egreso
- [x] AC-006: Se puede modificar un pedido existente con recalculo de stock
- [x] AC-007: Se puede eliminar logicamente un pedido con eliminacion de movimientos de stock asociados
- [x] AC-008: Se pueden consultar pedidos pendientes filtrados por cliente
- [x] AC-009: Se puede obtener el detalle completo de un pedido con datos del cliente e items
- [x] AC-010: Solo se muestran pedidos no eliminados y no facturados
Preguntas Pendientes
Hay preguntas sobre esta funcionalidad que requieren validacion. Ver: Preguntas sobre Comprobantes Pendientes
Referencias Tecnicas
NOTA IMPORTANTE: Esta documentacion fue generada automaticamente analizando el codigo implementado. Se recomienda validar con stakeholders de negocio para confirmar que refleja fielmente los requisitos originales.