Appearance
Nota de Pedido
Módulo: CRM / Comercialización
Tipo: resource
Estado: implementado
Fecha: 2026-03-18
Descripción
Documento generado cuando una venta se concreta en el flujo comercial. La Nota de Pedido es confirmada por el comercial antes de derivarse al área de Producción como "Pedido a Producción".
Es el documento puente entre el área comercial (CRM) y el área de Producción.
Nota: El sistema soporta tanto una Nota de Pedido por ítem/producto como múltiples ítems por Nota de Pedido, según la configuración del negocio. Los ítems son genéricos y abstractos — no están atados a ningún rubro específico.
Campos
Identificacion y origen
| Campo | Tipo | Descripcion |
|---|---|---|
id | UUID | Identificador unico |
numero_nota | string | Numero correlativo (formato YYYY-NNNNN, ej: 2025-00651) |
pedido | string | Numero de pedido interno |
crm_record_id | FK | Registro CRM Comercial de origen |
vendedor_id | FK | Operador del sistema que realizó la venta. Se selecciona del listado de operadores del sistema. ordven (Vendedores) es una entidad comercial independiente (código de vendedor, comisiones); la relación Vendedor↔Operador está planificada para una etapa futura. |
estado | enum | Ver estados |
confirmado_por | FK | Usuario que confirmo la nota |
fecha_confirmacion | datetime | Fecha de confirmacion |
created_at | datetime | Fecha de creacion |
Datos del cliente/concesionario
| Campo | Tipo | Descripcion |
|---|---|---|
cliente_id | FK | Cliente (concesionario o cliente directo) |
contacto | string | Persona de contacto |
direccion | string | Direccion del cliente |
localidad | string | Localidad |
provincia | string | Provincia |
telefono | string | Telefono |
email | string | Email de contacto |
cuit | string | CUIT del cliente |
Detalle de operacion
| Campo | Tipo | Descripcion |
|---|---|---|
modalidad_venta | enum | A | B | C | D — clasificador declarativo (sin lógica asociada en MVP) |
items | array | Items del pedido (del catálogo de productos de Ventas). Ver estructura de ítem abajo. |
opcionales | array | Items opcionales con montos |
lista_precios_id | number | ID de la lista de precios activa (referencia a tabla precios). Default: empresa.lista de configuración. |
subtotal | decimal | Equipo + opcionales |
Descuentos y totales
| Campo | Tipo | Descripcion |
|---|---|---|
comision_concesionario | string | Porcentajes de comision (ej: "15% + 5%") |
descuento_forma_pago | decimal | Porcentaje de descuento por forma de pago |
otro_descuento | decimal | Bonificacion adicional |
importe_parcial_operacion | decimal | Subtotal con descuentos (IVA incluido) |
costo_flete | decimal | Monto del flete con IVA incluido. Al generar la NV, se copia tal cual. |
importe_total_operacion | decimal | Total final de la operacion (IVA incluido) |
Pago y entrega
| Campo | Tipo | Descripcion |
|---|---|---|
forma_pago | text | Texto libre (ej: "7 cheques anticipados divididos en cuotas iguales a 15-30-60-90-120-150-180 dias") |
plazo_entrega | date | Fecha de entrega |
lugar_entrega | string | Direccion de entrega |
Facturacion
| Campo | Tipo | Descripcion |
|---|---|---|
facturacion_terceros | boolean | SI / NO — si la factura va a un CUIT diferente del concesionario |
importe_a_facturar | decimal | Monto a facturar al tercero (IVA incluido). Solo aplica cuando facturacion_terceros = true. Puede no estar definido al crear. |
facturar_anticipo | boolean | Si se debe facturar como anticipo |
Adquirente/Tercero: Cuando
facturacion_terceros = true, los datos del tercero se almacenan en la tabla relacionadanota_pedido_adquirente(misma estructura quenota_venta_adquirenteen NV). El tercero es siempre uno solo por operación. Al confirmar la NP y generar la NV automáticamente, el adquirente se copia anota_venta_adquirente.Campos de
nota_pedido_adquirente:nota_pedido_id(FK),nombre,cuit,domicilio,condicion_iva,importe(porción a facturar al tercero).
Tercero/Adquirente: Es siempre uno solo por operación. Los datos se almacenan en la tabla relacionada
nota_pedido_adquirente(misma estructura quenota_venta_adquirente). No se almacenan inline ennota_pedido.
Estructura de ítem (nota_pedido_item)
| Campo | Tipo | Descripcion |
|---|---|---|
producto_id | FK | Producto del catálogo de Ventas |
cantidad | decimal | Cantidad solicitada |
lista_precios_id | integer | ID de lista de precios usada para este ítem (referencia tabla precios) |
precio_unitario | decimal | Precio unitario obtenido del lookup de lista de precios |
descripcion | string | Texto libre de aclaración por ítem (opcional) |
Nota: Los ítems de la NP provienen del catálogo de productos de Ventas. La Nota de Pedido es un recurso independiente del
budgetCRM — no existe FK entrenota_pedidoybudget, y los ítems no se heredan del presupuesto. Son flujos paralelos: el budget→prefa sigue existiendo para el flujo de presupuestos CRM.Trazabilidad de licitacion: Si el CRM de origen tiene
es_licitacion = true, la Nota de Pedido hereda esa condicion automaticamente viacrm_record_id. No se almacena un campo de origen separado.Documento complementario: La Confirmacion de NP (RE-COM003) es el acuerdo comercial. La Nota de Venta es el detalle financiero. Son documentos complementarios generados juntos. Ver documentos-generados.
Frontend
Acceso: Tab 2 "Acciones Especiales" del registro CRM → card "Nota de Pedido" Condición de visibilidad: Solo se muestra si el tipo CRM del registro es comercial (INDUSTRIAL). No aparece en registros de tipo Básico ni Servicio Técnico. Permiso requerido: CRM_NOTA_PEDIDOComponente principal: NotaPedidoOrchestrator (modal xl) Ruta de código: ts/crm/nota-pedido/
Vistas
| Vista | Descripción |
|---|---|
| Card NP (Tab 2) | Si no existe NP para el registro (ni para ningún registro relacionado): muestra botón "Crear Nota de Pedido". Si ya existe: muestra directamente los datos de la NP con acciones Ver/Editar/Confirmar/Cancelar/Imprimir RE-COM003 según estado. No hay listado. |
| Formulario | Crear/editar NP: datos de cabecera (cliente, vendedor —select de operadores del sistema—, modalidad A/B/C/D, comisiones, descuentos, forma de pago, plazo/lugar entrega, facturación a terceros) + tabla de ítems del catálogo de Ventas con búsqueda de producto. El formulario hace focus automático al primer campo al abrirse. |
| Modal Confirmar | Confirmación de transición borrador → confirmada. Al confirmar: el backend valida que cliente_id sea un concesionario, luego crea la NV automáticamente en la misma transacción (rollback total si falla). Habilita la card "Nota de Venta" en Tab 2. El adquirente (si existe en nota_pedido_adquirente) se copia a nota_venta_adquirente. |
Comportamiento de la card NV en Tab 2
Al confirmar una NP, NotaPedidoOrchestrator invalida la query de NVs del registro CRM. CrmRecordFormActions detecta que ahora existe al menos una NV y activa automáticamente la card "Nota de Venta".
Versionado
La Nota de Pedido implementa versionado formal con audit trail. Cada modificacion post-confirmacion genera una nueva revision del documento.
Campos de versionado
| Campo | Tipo | Descripcion |
|---|---|---|
revision | integer | Numero de revision actual (inicia en 0 al confirmar, incrementa con cada modificacion) |
revision_fecha | datetime | Fecha/hora de la ultima revision |
revision_usuario_id | FK | Usuario que realizo la modificacion |
revision_motivo | text | Descripcion del cambio realizado |
Nota: La revisión de una NP comienza en
00. El número de NP no cambia entre revisiones; el camporevisionse incrementa: Rev.00 → Rev.01 → Rev.02... El formulario físico (RE-COM003) confirma que el versionado formal es parte del proceso ISO.
Historial de revisiones (audit trail)
Cada revision genera un registro en el historial con:
| Campo | Tipo | Descripcion |
|---|---|---|
nota_pedido_id | FK | NP versionada |
revision | integer | Numero de revision |
fecha | datetime | Fecha/hora del cambio |
usuario_id | FK | Quien realizo el cambio |
motivo | text | Descripcion del cambio |
campos_modificados | json | Detalle de campos: campo, valor anterior, valor nuevo |
snapshot | json | Estado completo del documento antes del cambio (para consulta de versiones anteriores) |
Reglas de versionado
- La NP es modificable en cualquier estado. Cada modificación genera una nueva revisión. El acceso por estado depende del rol del usuario.
- Solo el vendedor original o Administracion pueden generar nuevas revisiones. Produccion NO tiene permisos de modificacion.
- Cada revision incrementa el numero de revision en 1. Numeración:
NP-XXXX Rev.0N(el número de documento no cambia entre versiones). - Se pueden consultar versiones anteriores completas (el snapshot preserva el estado del documento).
- Al generar una nueva revision, se reimprimen todos los documentos afectados:
- Confirmacion de Nota de Pedido (RE-COM003) — con nuevo numero de revision
- Pedido a Produccion — con datos actualizados
- Nota de Venta (RE-COM004) — si los cambios impactan datos financieros
- Se envia email a Produccion detallando los cambios realizados.
Estados
| Estado | Descripción |
|---|---|
borrador | Generada, pendiente de confirmación |
confirmada | Confirmada por el comercial, lista para Producción |
en_produccion | Doc: Pedido a Producción generado y enviado |
facturada | Nota de Venta emitida |
Documentos que genera
| Documento | Paso | Destino |
|---|---|---|
| Doc: Pedido a Producción | Al confirmar y enviar a Producción | A1 Producción → flujo-produccion-process |
| Doc: Nota de Venta | Al registrar la Nota de Venta | A2 Administración → nota-venta-desde-crm-process |
Documentos ISO generados
Al confirmar una Nota de Pedido, el sistema genera dos documentos imprimibles que cumplen con las normas ISO que la empresa acata:
| Documento | Descripción |
|---|---|
| Confirmación de Nota de Pedido | Confirma la orden de venta al cliente. Se imprime y entrega/envía al cliente. |
| Pedido a Producción | Orden de producción enviada al área de Producción. Se imprime y se anota manualmente el número de NV sobre el documento físico. |
Ambos documentos deben imprimirse obligatoriamente. Son requeridos por las normas ISO que la empresa cumple.
Reglas de negocio
- [x] ¿Se puede confirmar una NP sin ítems? No. El backend valida que la NP tenga al menos un ítem antes de permitir la confirmación (400 si no hay ítems).
- [x] ¿La nota de pedido puede modificarse después de confirmada? Resuelto: Si. Cada modificacion genera una nueva revision formal (versionado). Solo vendedor original o Administracion. Se reimprimen todos los documentos afectados (Conf NP, Pedido a Produccion, NV si aplica) + email a Produccion con detalle de cambios. El sistema enforza permisos (no es solo procedimiento operativo). Produccion es pasiva: no puede modificar.
- [x]
TBD:¿Un pedido puede derivar en multiples pedidos a produccion? Resuelto: No. Relacion univoca: un pedido deriva en un unico Pedido a Produccion (1:1). - [x]
TBD:¿Los items de la nota de pedido vienen del presupuesto CRM previo? Actualizado: No. Los ítems provienen del catálogo de productos de Ventas. La NP es independiente del budget CRM — sin FK a budget. Son flujos paralelos e independientes. - [x] Relación 1:1 con CrmRecord: Un CrmRecord puede tener como máximo UNA Nota de Pedido. No existe listado de NPs por registro. La card en Tab 2 muestra directamente esa NP (o la acción de crearla si no existe).
- [x] Relación compartida en registros relacionados: Si un conjunto de registros CRM están relacionados entre sí, comparten la misma Nota de Pedido. Si los records 1, 2, 3, 4, 5 están relacionados y se crea la NP desde el record 1, al acceder al record 5 el sistema muestra esa misma NP — no permite crear una nueva. La búsqueda de NP existente recorre todo el grupo de registros relacionados.
- [ ] ¿La nota de pedido puede crearse para cualquier registro CRM? En el MVP aplica solo desde CRM con
cliente_idconcesionario (es_concesionario = true). Modalidad B podría habilitar NPs desde clientes directos (sin concesionario ni adquirente) — pendiente de definición cuando se resuelva la lógica de modalidades. Ver preguntas-abiertas.