Saltar a contenido

Salidas de inventario

Esta sección permite registrar manualmente salidas de inventario que disminuyen el stock disponible sin estar vinculadas a facturas de venta. Almacena información del movimiento incluyendo producto, cantidad (en diferentes unidades de medida), lote de origen, almacén, tipo de salida, estado (bloqueado como completada), entidad relacionada, empleado responsable, puesto de trabajo, ubicación principal, observaciones, numeración/serie, fechas de registro, y movimiento interno asociado que reduce automáticamente el stock. Se utiliza para diversos motivos como rupturas o productos dañados, mermas, muestras gratuitas, consumo interno, robos o pérdidas, donaciones, transferencias a ubicaciones no gestionadas, o destrucción de productos vencidos. Valida límites de stock físico para evitar salidas que excedan existencias reales y mantiene trazabilidad completa del inventario negativo.

Información General

Propiedad Valor
ID f09b320f-e100-45c4-a677-0954455471d7
Tabla PostgreSQL tpr_20040105692
Etiqueta Plural Salidas
Texto principal automatico
Sección Base Base - Salidas de inventario (11c48ca7-9601-4465-90a8-0a294866e199)

Campos

Total de campos: 36 (10 del sistema, 26 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Salidas de inventario -
Referencia Texto - nombre - -
Fecha Alta Dato Fecha Y Hora - fecha - -
Editado Fecha Y Hora - fecham - -
Eliminado Sí/No - eliminado - -
Usuario Creador del dato Relación - usuarioid Base - Entidades -
Sección (Relación Sistema) Relación - plantillapid - 🔴 Obligatorio
Posición (Orden) Decimal - posicion - -
Modificado Sí/No - modificado - -
Fecha Indice Actividad Fecha Y Hora - fechaia - -

Campos Personalizados

Campo Tipo Pestaña Columna Atributos Notas
Empleado Relación Registro pr_1004010569106 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Movimiento interno Relación General pr_40040105741 🔒 Bloqueado, 👁 Oculto -
Numeración / Serie Relación Registro pr_400401056954 - -
Ubicación Principal Relación Registro pr_1004010569107 - Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Destinador Relación General pr_1004010569115 🔒 Bloqueado, 👁 Oculto -
Hora local Hora Registro pr_1004010569110 🔒 Bloqueado, 👁 Oculto -
Cantidad (Unidades) Decimal General pr_50040106031 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad (Medida Base Por Und.) Decimal General pr_50040106034 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Producto / Cantidad (Medida Base)
Observaciones Texto General pr_400401056960 - -
Cantidad (Medida Base) Decimal General pr_50040106033 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Autor del alta Relación Registro pr_1004010569108 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Puesto de trabajo Relación Registro pr_400401056953 - Autorrellenado (Siempre): Campo (Sesión): Puesto de trabajo
Texto Ticket Texto General pr_400401056959 👁 Oculto -
Entidad Relacionada Relación General pr_400401056952 - -
Referencia Ticket Entero General pr_400401056957 👁 Oculto, 📊 Cualquier valor numérico Es el número secuencial que el sistema emite cada vez que se realiza una transacción.
Fecha Alta del registro Fecha Y Hora Registro pr_1004010569112 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Cantidad Decimal General pr_50040106035 🔴 Obligatorio, 📊 Mayores que 0 -
Fecha Dato Fecha Y Hora General pr_1004010569109 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Medida Relación General pr_50040106032 🔴 Obligatorio Autorrellenado (Siempre): Campo : Producto / Medida (Accesible)
Lote Relación General pr_10040106052 🔴 Obligatorio Autorrellenado (Siempre): Campo : Producto / Lote por defecto producto
Tipo de movimiento Relación General pr_400401056950 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre): Campo (Empresa Actual): Configuración Salidas de inventario
Medida (Base) Relación General pr_50040106036 👁 Oculto Autorrellenado (Siempre): Campo : Producto / Medida (Base)
Producto Relación General pr_40040106021 🔴 Obligatorio -
Estado Relación General pr_60692084 🔴 Obligatorio, 🔒 Bloqueado Autorrellenado (Siempre): Referencia dato: Completada
Tipo Relación General pr_106920812 - -
Almacén Relación General pr_60692071002 🔒 Bloqueado Autorrellenado (Siempre): Campo : Lote / Almacén

Scripts

Total de scripts: 4

Código de Scripts

Lógica de negocio ejecutada en los formularios automáticamente

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.LotesDeProductosBase.ReferenciaProducto.ID,C.ReferenciaProducto)

Campos utilizados: - Salidas de inventario > Lote

Campo_ComboAplicarFiltro

if C.ReferenciaProducto = ''

    F.CampoDesplegableCancelar('Debe seleccionar un producto.')
else
    F.CampoDesplegableAplicarFiltro(S.Fields.LotesDeProductosBase.ReferenciaProducto.ID,'=',C.ReferenciaProducto)
    F.CampoDesplegableAplicarFiltro(S.Fields.LotesDeProductosBase.ReferenciaUbicacionPrincipal.ID,'=',C.ReferenciaUbicacionPrincipal)

End If

Campos utilizados: - Salidas de inventario > Lote

Formulario_TickRecalculo

num Unidades = C.CantidadUnidades 
C.ReferenciaMovimientoInterno.ModificadorStockInventario = V.Unidades * -1
C.ReferenciaMovimientoInterno.ModificadorStockDisponible = V.Unidades * -1
C.ReferenciaMovimientoInterno.ReferenciaLote = C.ReferenciaLote 
C.ReferenciaMovimientoInterno.ReferenciaProducto = C.ReferenciaProducto
C.ReferenciaMovimientoInterno.ReferenciaEntidadRelacionada = C.ReferenciaEntidadRelacionada 

@ ____   STOCK FÍSICO   ____ 

@ Limite de stock en inventario 
txt Producto = S.Fields.SalidasDeInventario.ReferenciaProducto.ID 
txt ProductoStockFisico = S.Fields.ProductosBase.StockEnInventario.ID 
txt CantidadSalida = S.Fields.SalidasDeInventario.CantidadUnidades.ID 
F.CampoLimitacionCantidadIndirecta(v.Producto,v.ProductoStockFisico,0,999999999,v.CantidadSalida,0,'Stock Inventario',1)


@ Limite de stock en Lote 
txt Producto2 = S.Fields.SalidasDeInventario.ReferenciaLote.ID 
txt ProductoStockFisico2 = S.Fields.LotesDeProductosBase.StockInventario.ID 
txt CantidadSalida2 = S.Fields.SalidasDeInventario.CantidadUnidades.ID 
F.CampoLimitacionCantidadIndirecta(v.Producto2,v.ProductoStockFisico2,0,999999999,v.CantidadSalida2,0,'Stock Inventario de lote',1)


@ ____   STOCK DISPONIBLE   ____ 
@ Se limita el stock físico, pero no el stock disponible, por eso cantidad mínima es un número negativo, para que aparezca la representación visual en el desplegable, sin afectar al límite 


@ Limite de stock en Lote 
txt Producto3 = S.Fields.SalidasDeInventario.ReferenciaLote.ID 
txt ProductoStockFisico3 = S.Fields.LotesDeProductosBase.StockDisponible.ID 
txt CantidadSalida3 = S.Fields.SalidasDeInventario.CantidadUnidades.ID 
F.CampoLimitacionCantidadIndirecta(v.Producto3,v.ProductoStockFisico3,0,0,v.CantidadSalida3,0,'Stock Disponible de lote',2)

@ Limite de stock en inventario 
txt Producto4 = S.Fields.SalidasDeInventario.ReferenciaProducto.ID 
txt ProductoStockFisico4 = S.Fields.ProductosBase.StockDisponible.ID 
txt CantidadSalida4 = S.Fields.SalidasDeInventario.CantidadUnidades.ID 
F.CampoLimitacionCantidadIndirecta(v.Producto4,v.ProductoStockFisico4,0,0,v.CantidadSalida,0,'Stock Disponible',2)

Formulario_PreACeptar

if C.ReferenciaLote.ReferenciaProducto <> C.ReferenciaProducto 
    F.MsgBox('El producto de la salida y el del lote debe ser el mismo.',1)
    F.CancelarEvento 
End If

if C.ReferenciaLote.ReferenciaUbicacionPrincipal <> C.ReferenciaUbicacionPrincipal 
    F.MsgBox('El lote no puede pertenecer a una ubicación distinta a la de la Salida.',1)
    F.CancelarEvento 
End If

← Volver al índice