Movimientos de material
Los movimientos de material son las operaciones que agrupan transferencias de inventario. Cada tipo de movimiento tiene un propósito específico en el flujo de trabajo.
Tipos de movimientos
| Tipo | Acción | Origen | Destino |
|---|---|---|---|
| Asignación | Asignar materiales a stock operativo | Depósito proveedor o almacenamiento | Depósito almacenamiento u OT |
| Solicitud | Cuadrilla retira materiales | Depósito almacenamiento u OT | Depósito cuadrilla |
| Movimiento manual | Transferir libremente | Cualquier depósito | Cualquier depósito |
| Devolución | Devolver materiales | Depósito cuadrilla, OT o almacenamiento | Depósito OT, almacenamiento o proveedor |
| Pérdida | Registrar extravío | Depósito cuadrilla | Depósito pérdidas |
| Consumo | Registrar uso | Depósito cuadrilla | (sin destino) |
Al crear o editar un movimiento, los selectores de depósito muestran el nombre seguido de una abreviatura del tipo para ahorrar espacio.
Ejemplos habituales:
Depósito Central (D/Físico)Depósito Acme Corporation (D/Proveedor)OT 123 - Zona Sur (D/OT)
Diagrama general de flujos
Asignación
La asignación mueve materiales hacia stock operativo. Normalmente parte desde depósito de proveedor, pero también puede originarse en un depósito de almacenamiento para reubicar material asignable hacia una OT.
Uso típico:
- El proveedor libera medidores, caños u otros materiales para la obra
- Reasignar materiales desde un depósito físico hacia una OT
- Ingresar materiales al sistema desde el proveedor
Confirmación de recepción
Cuando la asignación queda pendiente y luego se confirma con Recibir:
- El modal permite cargar Referencia / N° remito.
- Si el origen es proveedor, esa referencia es obligatoria.
- Si el origen es almacenamiento, esa referencia es opcional.
- El valor se copia en cada movimiento de stock generado por esa confirmación y luego queda visible en su listado y detalle.
Materiales consumibles en asignaciones desde proveedor
Cuando el material es de tipo consumible y la asignación parte desde proveedor, la recepción tiene una lógica especial:
- En esta versión, cada línea consumible representa una única unidad consumible. Físicamente puede ser una bobina o un tramo.
- El valor cargado en Recibido define la longitud real inicial de esa unidad.
- Esa longitud puede ser distinta de la solicitada originalmente. Por ejemplo, podés solicitar
1000 my recibir una bobina real de990 mo1030 m. - Al confirmar la recepción, la línea queda registrada con esa longitud real, no con la cantidad solicitada originalmente.
- En la UI, la trazabilidad de esa línea se muestra como Unidad / Identificador y el selector de origen usa Unidad origen.
- El formulario mantiene el campo Longitud Real Del Tramo (m) para la medida y permite completar Unidad / Serial de bobina de forma opcional.
- Si ese dato se deja vacío, el sistema genera un identificador interno automáticamente.
Aunque no es estrictamente necesario, conviene que los materiales asignados a una cuadrilla pasen en algún punto por la OT. Esto mejora la trazabilidad y el control de lo que se usa en cada obra.
Solicitud
La cuadrilla solicita el retiro de materiales desde un depósito (almacenamiento u OT) hacia su propio depósito.
Uso típico:
- Cuadrilla retira materiales necesarios para ejecutar los trabajos
- Solicitar equipos, herramientas o insumos para una OE
Movimiento manual
Transferencia libre entre cualquier par de depósitos.
Uso típico:
- Redistribuir stock entre depósitos centrales
- Corregir ubicaciones incorrectas
- Movimientos no cubiertos por los otros tipos
En movimientos manuales, el selector de depósito origen se filtra por permisos de depósitos y por disponibilidad de materiales visibles para el usuario.
Devolución
Retorno de materiales para deshacer o corregir asignaciones previas.
Uso típico:
- Devolver sobrantes al finalizar una OE
- Retornar materiales incorrectos o dañados para revisión
Reglas de destino
- Desde depósito de cuadrilla: puede volver a depósito OT o almacenamiento.
- Desde depósito OT: puede volver a almacenamiento o proveedor.
- Desde depósito de almacenamiento: puede volver a proveedor.
Pérdida
Registro de materiales perdidos, robados o dañados irreparablemente.
Uso típico:
- Documentar extravíos para trazabilidad
- Dar de baja materiales irrecuperables
Consumo
Registro de materiales utilizados o instalados en la obra. No tienen depósito destino porque salen del sistema.
Uso típico:
- Registrar materiales instalados en una conexión
- Documentar insumos consumidos en el trabajo
Estado operacional
Cada movimiento de material tiene un estado operacional:
| Estado | Significado |
|---|---|
| Pendiente | Ningún ítem fue recibido aún |
| Parcial | Algunos ítems recibidos, otros pendientes |
| Completado | Todos los ítems fueron recibidos |
El estado operacional se calcula automáticamente según cuántos ítems tienen cantidad recibida.
Estado de ciclo
Además del estado operacional, cada movimiento tiene un estado de ciclo:
| Estado | Significado |
|---|---|
| Activo | Permite registrar nuevas entregas/recepciones |
| Cerrado | Bloquea nuevas entregas/recepciones |
Reglas de cierre:
- Aplica a todos los tipos de movimientos (Asignación, Solicitud, Manual, Devolución, Pérdida y Consumo).
- Cierre manual: un usuario con permiso puede cerrar el movimiento en cualquier momento.
- Cierre automático: cuando el movimiento queda Completado, pasa automáticamente a Cerrado.
- Un movimiento puede quedar Cerrado + Parcial si se cerró antes de completar todas las cantidades.
- No existe reapertura en esta versión: un movimiento cerrado no vuelve a activo.
Visualización en la interfaz
En el detalle del movimiento se muestran:
- Estado operacional (Pendiente/Parcial/Completado).
- Estado de ciclo como indicador independiente (
Activo > Cerrado). - Si está cerrado, el estado Cerrado se muestra con ícono de candado.
Permisos
El cierre manual requiere el permiso de acción close sobre material_movements.
Impacto en pendientes de solicitudes
Para cálculo de pendientes de solicitudes de materiales:
- Solo se consideran movimientos de tipo Solicitud (
MaterialRequest) con ciclo Activo. - Si una solicitud vieja se cierra, deja de computar como pendiente para nuevas solicitudes.
Selección de materiales desde el depósito origen
Al crear o editar un movimiento, después de elegir el depósito origen se carga un panel de Materiales disponibles para armar el movimiento más rápido.
- Permite buscar por nombre o matrícula.
- Muestra el stock disponible del depósito origen para cada material.
- En depósitos que sí validan stock, también informa la cantidad pendiente en otras solicitudes.
- El botón Agregar crea la línea del material en el formulario y evita repetirlo mientras ya esté seleccionado.
Si el material es consumible y el depósito origen valida stock, el panel además muestra:
Total disponibleen metrosUnidadescomo cantidad de bobinas/tramos disponiblesLongitud mayorpara la unidad disponible más larga- Un selector Unidad origen; si no hay opciones aparece Sin unidades disponibles
Qué pasa según el tipo de depósito origen
- Depósito de proveedor: no valida stock. El panel avisa explícitamente que el stock no se controla en ese origen.
- Otros depósitos: por defecto muestra solo materiales con stock disponible.
- Opción
Incluir sin stock: permite ampliar el listado para ver también materiales sin existencias. Esta opción no aparece en Asignación, donde el flujo suele partir desde proveedor o desde stock ya conocido.
Recepción de materiales
En Asignación, Solicitud, Movimiento manual y Devolución, cuando se crea un movimiento los ítems quedan pendientes y la entrega/recepción se registra después:
- Ir al movimiento de material
- Ver los ítems pendientes
- Confirmar la cantidad recibida de cada uno
- El sistema crea los movimientos de stock correspondientes
En recepciones de Asignación:
- Si el origen es un depósito de proveedor, la confirmación exige completar Referencia / N° remito.
- Si el origen es un depósito de almacenamiento, esa referencia es opcional.
- El valor queda guardado en cada movimiento de stock generado.
Unidades consumibles y cortes parciales
Los materiales consumibles se usan cuando no alcanza con saber el total en metros y también importa la distribución física del stock.
- El stock se sigue viendo en metros, pero además se conserva la identidad de cada unidad consumible.
- Esa unidad puede ser una bobina completa, un tramo o un remanente reutilizable.
- Cuando movés una unidad completa, se traslada el mismo identificador.
- Cuando movés solo una parte, el sistema hace el corte en forma automática:
- deja el remanente en origen
- crea una nueva unidad en destino por la longitud movida
- En esta versión no hace falta crear manualmente el remanente ni dividir la bobina antes del movimiento.
Si el movimiento está Cerrado, no se podrán registrar nuevas entregas/recepciones.
La recepción puede ser parcial. Por ejemplo, si se solicitan 100 metros de cable pero solo llegan 80, se registra la cantidad recibida y el movimiento queda en estado "Parcial".
Los movimientos de tipo Pérdida y Consumo no pasan por esta recepción posterior. El sistema procesa sus ítems automáticamente al crearlos, genera los movimientos de stock correspondientes y, si todo quedó completado, los cierra también de forma automática.
Remitos de retiro (Material Request)
Los remitos de retiro aplican solo para movimientos de tipo Solicitud (MaterialRequest).
- Al confirmar la entrega/recepción de materiales, el sistema genera un remito PDF.
- En esa confirmación se puede cargar una observación opcional de hasta 500 caracteres.
- El remito queda visible en la tabla Remitos dentro del detalle del movimiento.
- Cada remito incluye materiales retirados, la columna Unidad / Identificador, cantidades, depósitos, referencia operativa y usuario que registró el retiro.
- Si se cargó una observación, queda impresa en el PDF original y también aparece en la pantalla de firma táctil.
- Siempre se puede descargar el comprobante base con el botón PDF original.
Firma de remitos
Las acciones de firma están disponibles para usuarios con permisos específicos:
- Subir PDF firmado de remitos para adjuntar un PDF ya firmado.
- Firmar remitos en pantalla táctil para generar la firma desde la app.
Fase 1: subir PDF firmado
- Usar Subir PDF firmado para adjuntar un PDF firmado manualmente.
- Si el remito ya tenía un firmado, se muestra Subir PDF firmado (reemplaza) y se solicita confirmación.
- La columna Firmado muestra check y fecha/hora de firma.
- El firmado vigente se descarga con PDF firmado.
Cada remito mantiene una sola versión firmada activa.
Cuando se reemplaza el archivo firmado, el blob anterior se purga si ya no tiene adjuntos activos.
Fase 2: firma táctil en pantalla
- Usar Firma táctil para abrir la pantalla de firma.
- Completar Nombre y aclaración de quien retira y dibujar la firma (dedo, lápiz o mouse).
- Al confirmar, el sistema genera un nuevo PDF firmado y lo adjunta al remito.
- Si existía un PDF firmado previo (subido o táctil), se reemplaza por el nuevo.
El bloque Responsable de depósito (sistema) se completa automáticamente con el usuario que generó el remito.
Corrección de retiros con error
Si un retiro se registró con error, no se debe borrar el movimiento original ni su remito.
La corrección se realiza mediante un movimiento inverso (compensatorio) para mantener trazabilidad.
Ver procedimiento completo en Compensación de movimientos.