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). Actualmente solo existe el tipo "Pedido". 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.
El sistema esta disenado con un patron extensible (Factory + Strategy) que permite agregar nuevos tipos de comprobantes pendientes (como Remito o Presupuesto) en el futuro, aunque actualmente solo Pedido esta implementado.
Nota: La funcionalidad solo esta disponible para empresas que tengan habilitada la opcion "pedido" o "remito" en su configuracion, y que tengan el modulo de Ventas activo.
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.