Pedido de venta (reserva de inventario)

Formulario para registrar pedidos de venta que aún no están pagados ni retirados, pero que deben reservar stock en inventario. Cada pedido genera un comprobante interno (tipo 7) con numeración correlativa por almacén, controla existencias y lotes, permite definir un estado predeterminado para los productos y se integra con las notas de salida que luego despachan las cantidades reservadas.


📘 Propósito

El formulario Pedido de venta registra los productos que un cliente ha solicitado pero que aún no han sido facturados ni entregados. Su función principal es reservar inventario para ese cliente, evitando que el stock comprometido se venda a otra persona.

Estas reservas se reflejan en el cálculo de existencias (consultas como PvStock), restando las cantidades pedidas de la disponibilidad, aunque todavía no exista una Nota de salida.

🔢 Numeración y alcance

  • Cada pedido de venta es un comprobante de tipo 7 asociado a un almacén. La numeración se maneja mediante el rango PPIni–PPFin configurado en la tabla de Almacenes.
  • Al pulsar Nuevo, el sistema:
    • Determina el almacén actual desde ElegirAlmacén.
    • Busca el último número usado para TipoComprobante = 7 en ese almacén.
    • Asigna el siguiente número dentro del rango permitido.
  • Si el último número alcanzó PPFin, se muestra el mensaje “Se ha terminado el talonario electrónico” y no se permite crear más pedidos hasta actualizar el rango.
  • Doble clic en el campo Número (Nro) permite editarlo manualmente de forma excepcional; al salir del campo vuelve a quedar bloqueado.
  • El botón Re-numerar reasigna números consecutivos a partir del registro actual. Debe usarse solo bajo supervisión del administrador.

🧭 Barra de acciones

  • Nuevo:
    • Crea un nuevo Pedido de venta, asignando número según el almacén y el talonario activo.
    • Verifica que el módulo esté contratado (funCom) y que no se haya alcanzado el límite de registros en la nube.
    • Inicializa la Fecha con la fecha del sistema y el Vendedor / Responsable (idpersonal1) con el usuario actual.
  • Modificar / Bloquear:
    • Con el candado cerrado (solo lectura), pulse Modificar para habilitar los campos de cabecera y el detalle.
    • Con el candado abierto, pulse Bloquear para dejar el pedido en modo consulta y protegerlo contra cambios accidentales.
  • Anular / Habilitar:
    • Anular marca el pedido como anulado (no afecta stock) y muestra la etiqueta visual “ANULADO”.
    • Habilitar revierte la anulación si el pedido vuelve a ser válido.
  • Eliminar:
    • Pregunta confirmación antes de borrar definitivamente el pedido y su detalle.
    • Borrar quita también la reserva de inventario asociada. Para fines históricos se recomienda Anular antes que eliminar.
  • Buscar: activa el cuadro estándar de búsqueda de Access sobre el campo activo (permite buscar por número, nombre, NIT, glosa, etc.).
  • Ver: abre la vista previa del reporte de Pedido de venta filtrado por el comprobante actual.
  • Imprimir: guarda el registro y envía el reporte a la impresora predeterminada.
  • Primero / Anterior / Siguiente / Último: navegación entre pedidos.
  • Cerrar: cierra el formulario.

📋 Cabecera del pedido

  • Fecha: fecha en que se registra el pedido.
  • Nombre: cliente o persona que realiza el pedido. Se vincula con la tabla de contactos; se puede seleccionar por NIT o por nombre.
  • NIT / C.I.:
    • IdProv: búsqueda por NIT o C.I. (doble clic abre el catálogo de contactos).
    • IdProv2: búsqueda por nombre del cliente.
    • Si el NIT / nombre no existe, el sistema permite crear el contacto directamente mediante AddContactoNit o AddContactoNombre.
  • Glosa: descripción general del pedido, por ejemplo: “Corresponde al pedido N° 5”. Aparece en reportes y ayuda a identificar el compromiso.
  • Estado predeterminado: estado que se asignará a cada producto del detalle (por ejemplo “OK”). Si necesita un nuevo estado, use la opción emergente que abre el catálogo de estados.
  • Recibido por: persona que eventualmente firma la recepción cuando el pedido se convierte en entrega (opcional, según operación).
  • Vínculos / N° de pedido N°: campos especiales para enlazar este documento con otros sistemas, portales o numeraciones externas de pedidos.

🧾 Detalle (grid de productos)

El detalle lista los productos que se reservan para el cliente. Cada línea representa un ítem con su cantidad solicitada.

Campo Uso
Código Código interno del producto (CodProd). Al salir del campo, el sistema busca el ítem en almitem:
  • Si lo encuentra, carga automáticamente Descripción e IdItem (Descripcion).
  • Si no existe, se actualiza la tabla busq y se abre el formulario busq_prodNS para elegir o crear el producto.
Descripción Nombre del producto. Al cambiarla se actualiza el orden de la línea y el estado del producto con el valor del Estado predeterminado de cabecera.
Lote Si el ítem maneja lotes, el sistema verifica en la tabla Lote y, de existir, usa el formulario LoteNe para elegir el lote reservado. Doble clic en el campo permite cambiar el lote (en modo Modificar).
Umedid. Unidad de medida del producto.
Cantidad Cantidad pedida (salida en el detalle). Se encuentra sujeta a control de stock según la configuración del ítem.
Estado product. Texto descriptivo del estado del producto (OK, Dañado, Vencido, etc.). Por defecto toma el valor del estado predeterminado y puede ajustarse línea por línea.
Orden Número de línea. Al presionar F3 en este campo, el sistema renumera todas las líneas del pedido desde 1 hasta CantReg.

📦 Control de stock y reservas

  • Cada producto tiene un campo ControlInv:
    • Si es False o está vacío, el pedido no aplica control de stock para ese ítem; la cantidad se registra sin validar existencias.
    • Si es True, el sistema consulta PvStock para obtener el saldo disponible en el almacén.
  • Si VenSinSal está activado para la empresa:
    • El sistema permite registrar el pedido aunque el saldo sea 0 o negativo, pero muestra mensajes informativos indicando el saldo actual.
  • Si no está permitido vender sin saldo:
    • Si no hay entradas registradas para el producto, se muestra “No se han registrado entradas del producto” y se impide continuar.
    • Si el saldo es menor o igual a 0, se muestra un mensaje y la cantidad vuelve a 0.
    • Si la cantidad pedida excede el saldo, se cancela el cambio y se indica que solo puede registrarse una cantidad menor o igual al saldo disponible.
  • Al modificar la cantidad, el evento Antes de actualizar del campo aplica esta lógica y, si la regla se viola, cancela la edición.

🧱 Flujo sugerido

  1. Al abrir el formulario, seleccione el almacén en la ventana ElegirAlmacén.
  2. Pulse Nuevo para crear un pedido, se asignará un número correlativo dentro del rango del almacén.
  3. Complete la Fecha, el Nombre del cliente, el NIT/C.I., la Glosa y el Estado predeterminado.
  4. En el detalle, escriba el Código del producto o use el formulario de búsqueda para seleccionarlo. Si corresponde, elija el Lote.
  5. Registre la Cantidad. El sistema controlará el stock disponible y reservará la cantidad pedida.
  6. Si es necesario, ajuste el Estado del producto línea por línea.
  7. Revise el pedido, utilice Ver para vista previa y luego Imprimir si requiere entregar un comprobante al cliente.
  8. Cuando la empresa genere la Nota de venta y la Nota de salida, estas utilizarán las cantidades reservadas en el pedido para evitar sobredespachar.

🔎 Búsquedas y atajos

  • El botón Buscar permite localizar texto en el registro actual (número, cliente, NIT, etc.).
  • F3 en el campo Orden del detalle renumera automáticamente todas las líneas del pedido.
  • Doble clic en NIT o Nombre abre la ventana de contactos para seleccionar o crear un cliente nuevo.
  • Doble clic en Lote abre el selector de lotes si el formulario está en modo Modificar.

⚠️ Reglas y permisos

  • La disponibilidad de acciones (Nuevo, Modificar, Eliminar, Ver, Imprimir, Anular) depende de los permisos y la contratación del módulo de ventas en Moyata.
  • Si funCom = False, el usuario solo puede consultar los pedidos existentes, pero no crear nuevos.
  • Para preservar la trazabilidad es preferible Anular pedidos en lugar de borrarlos, especialmente si ya se usaron como base para una nota de venta o de salida.