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 (
Nº) 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.
- 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 / N° (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 − Pedidopara 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.
-
Si la empresa permite ventas sin saldo
(
🧱 Flujo sugerido
- Haga clic en Nuevo para crear una nueva Nota de traspaso.
- En modo edición, complete la Fecha, el Almacén de origen, el Almacén de destino y, si corresponde, marque Inventario inicial.
- 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).
- Verifique el costo unitario sugerido (última nota de entrada) y capture la cantidad a traspasar. El sistema validará el stock.
- Repita el proceso para todos los productos que desee trasladar.
- 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.
- Use Físico (vista previa o impresión) para obtener los documentos NE y NS para firma y archivo.
- 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 N° 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.