Nota de traspaso entre almacenes

Formulario para traspasar inventario de un almacén a otro dentro de la misma sucursal. El usuario solo captura el detalle una sola vez y el sistema genera en forma automática una Nota de salida en el almacén de origen y una Nota de entrada en el almacén de destino, con control de stock, validación de lotes y cálculo automático del costo unitario a partir de la última nota de entrada. Incluye bloqueo de edición después de generar, anulación en cascada y reglas estrictas para eliminar.


📘 Propósito

La Nota de traspaso permite mover existencias desde un almacén de origen hacia un almacén de destino sin volver a tipear dos veces el detalle. A partir de este formulario el sistema crea:

  • Una Nota de salida en el almacén de origen.
  • Una Nota de entrada en el almacén de destino.

Ambas notas quedan relacionadas con el traspaso y se anulan o eliminan en forma conjunta según las reglas de seguridad.

🔢 Numeración y alcance

  • Cada traspaso es un comprobante interno de tipo 8 con un Número de traspaso () propio por sucursal.
  • Al generar la operación se completan los campos:
    • Nota de salida Nº y su IdNS.
    • Nota de entrada Nº y su idNE.
    Estos números siguen la numeración normal de notas de salida (tipo 3) y notas de entrada (tipo 2) de cada almacén.
  • Una vez creada la relación, el traspaso y sus notas vinculadas no pueden editarse; solo es posible anular o, en ciertas condiciones, eliminar en cascada.

🧭 Barra de acciones

  • Nuevo:
    • Crea un nuevo comprobante de traspaso (tipo 8) con el siguiente número disponible para la sucursal.
    • Requiere que el módulo esté contratado y que no se haya alcanzado el límite de registros en la nube.
  • Editar / Bloquear:
    • Con el candado cerrado (solo lectura) haga clic en Editar para desbloquear fecha, almacenes e indicador de inventario inicial, además del detalle.
    • Con el candado abierto haga clic en Bloquear para dejar el traspaso en modo consulta.
    • Si el traspaso ya generó sus notas de salida y entrada, el sistema impide entrar en modo edición.
  • Generar:
    • Disponible solo cuando el registro está en modo edición y aún no existe idNE.
    • Crea en la base de datos la nota de salida y la nota de entrada ejecutando el procedimiento almacenado NotTraGen.
    • Asigna los números de NE y NS, guarda los Id relacionados y luego bloquea completamente la edición del traspaso.
    • Una vez generado, solo se podrá anular o, cumpliendo ciertas condiciones, eliminar en cascada.
  • Anular / Habilitar:
    • Anular: marca el traspaso como anulado y también marca como anuladas la nota de salida y la nota de entrada relacionadas.
    • Habilitar: revierte la anulación tanto en el traspaso como en sus notas asociadas.
  • Eliminar:
    • Verifica que las notas de salida y entrada asociadas sean las últimas del rango en sus respectivos almacenes.
    • Si existen notas posteriores, se impide la eliminación para proteger la numeración. En ese caso se sugiere anular.
    • Si no hay notas posteriores, elimina la nota de traspaso, su detalle y las notas de salida/entrada vinculadas.
  • Físico (Ver): muestra en vista previa el reporte de Nota de entrada (NE) y Nota de salida (NS) del traspaso.
  • Físico (Imprimir): envía ambos reportes NE y NS a impresión.
  • Buscar / (parte superior): permite localizar rápidamente traspasos por número. Al escribir, se despliega una lista con los últimos movimientos; al elegir uno, se carga en el formulario.
  • Ayuda: abre esta ayuda en línea.
  • Cerrar: cierra el formulario de Nota de traspaso.

📋 Cabecera de la nota

  • Fecha: fecha efectiva del traspaso.
  • Almacén de origen: almacén desde donde saldrá la mercadería.
    Al cambiar el almacén de origen, el sistema pone en cero todas las cantidades del detalle para evitar inconsistencias.
  • Almacén de destino: almacén que recibirá la mercadería. Solo se permiten trasladar productos con stock en el almacén de origen.
  • Inventario inicial: casilla usada cuando el traspaso forma parte del cargado inicial de existencias de un almacén nuevo. Permite distinguir estos movimientos en reportes especiales.
  • Nota de salida Nº / Nota de entrada Nº: números de NE/NS generados por el sistema. Son de solo lectura y se completan al ejecutar Generar.

🧾 Detalle (grid de productos)

El detalle se ingresa una sola vez y sirve tanto para la nota de salida como para la nota de entrada.

Campo Uso
orden Número de línea. Se genera automáticamente.
Buscar prod Al escribir, se abre una lista de resultados (Resultado) con los productos disponibles en el almacén de origen, mostrando código, descripción, lote, almacén y stock.
Código / Descripción Se completan automáticamente al elegir un ítem en la lista de búsqueda. El sistema impide registrar el mismo producto y lote más de una vez en el mismo traspaso.
Unidad Unidad de medida tomada de la ficha del producto.
Lote Si el producto maneja lotes, se llena con el lote seleccionado en la lista. El control de stock se hace lote por lote.
Cantidad Cantidad a traspasar (columna entrada en la tabla de movimientos). Antes de aceptar el valor se ejecuta un control de stock sobre el almacén de origen.
Estado Estado del producto (por ejemplo, “OK”).
Costo unitario Al seleccionar el producto, el sistema busca el último costo unitario registrado en notas de entrada para ese ítem (y lote, si aplica) con fecha menor o igual a la fecha del traspaso. Si no encuentra costo se muestra un mensaje y se asigna 0.

📦 Control de stock

  • Cada producto tiene un indicador ControlInv:
    • Si es False, el sistema no valida stock para ese ítem.
    • Si es True, se verifica que la cantidad a traspasar no supere el saldo del almacén de origen.
  • El saldo se calcula como: Saldo = Entradas − Salidas − Pedido para la sucursal, el almacén de origen, el producto (y lote, si corresponde) y los comprobantes de tipo 2, 3 y 7 no anulados.
  • Si no hay entradas registradas, o no hay stock en el lote, se muestra un mensaje de error indicando que primero debe registrarse la nota de entrada correspondiente.
  • Si la cantidad ingresada es mayor al saldo:
    • Si la empresa permite ventas sin saldo (VenSinSal), se permite la operación pero se muestra un aviso con el saldo actual.
    • Si no se permiten ventas sin saldo, el sistema cancela la edición, revierte el campo y muestra un mensaje indicando el máximo permitido.

🧱 Flujo sugerido

  1. Haga clic en Nuevo para crear una nueva Nota de traspaso.
  2. En modo edición, complete la Fecha, el Almacén de origen, el Almacén de destino y, si corresponde, marque Inventario inicial.
  3. En el detalle, use Buscar prod para localizar el producto por código, nombre o descripción. Seleccione de la lista el ítem correcto (del mismo almacén de origen).
  4. Verifique el costo unitario sugerido (última nota de entrada) y capture la cantidad a traspasar. El sistema validará el stock.
  5. Repita el proceso para todos los productos que desee trasladar.
  6. Cuando el detalle esté completo, haga clic en Generar para crear la nota de salida y la nota de entrada correspondientes. El traspaso quedará bloqueado.
  7. Use Físico (vista previa o impresión) para obtener los documentos NE y NS para firma y archivo.
  8. Si posteriormente debe revertirse la operación, utilice Anular; solo recurra a Eliminar cuando sea estrictamente necesario y se cumplan las condiciones (sin notas posteriores).

🔎 Búsquedas y atajos

  • El cuadro Buscar y el campo permiten localizar traspasos recientes por número de comprobante.
  • El campo Buscar prod del detalle muestra una lista de productos coincidentes en tiempo real; al seleccionar un registro se rellena toda la línea (producto, lote, unidad y costo).
  • El buscador de la barra inferior (Buscar) de Access permite avanzar rápidamente entre registros de traspaso.

⚠️ Reglas y permisos

  • El acceso a este módulo y a las acciones de Nuevo, Editar, Eliminar, Ver, Imprimir y Anular se controla mediante permisos del usuario (configurados en el sistema Moyata).
  • Si el módulo no está contratado (funCom = False), el usuario solo puede consultar traspasos existentes.
  • No se puede editar un traspaso que ya generó sus notas de salida y entrada.
  • No se pueden eliminar traspasos cuyas notas de salida o entrada tengan documentos posteriores en la numeración del almacén. En estos casos se debe usar Anular.