Saltar a contenido

Salidas de Compras

La sección Salidas de Compras registra los movimientos de salida de inventario generados por devoluciones a proveedores, documentando la entrega de mercancías que deben ser retornadas y que saldrán del stock disponible. Su objetivo es mantener la integridad del inventario al procesar devoluciones a proveedores, reduciendo automáticamente el stock físico y disponible, y registrando la trazabilidad completa del producto devuelto. Almacena información del movimiento (referencia, fecha), factura de compra rectificativa origen, concepto comprado original, producto y cantidad a devolver, lote específico del que sale (especialmente importante para devoluciones, utilizando algoritmos para identificar lotes de la compra original), almacén de origen, medida utilizada, proveedor receptor, empleado responsable, tipo y estado del movimiento. El módulo incluye validaciones para garantizar coherencia entre producto y lote, correcta ubicación, suficiente stock físico, y utiliza algoritmos especiales para seleccionar los lotes correctos en compras rectificativas. Se integra automáticamente con Compras/Gastos (facturas rectificativas) e Inventario.

Información General

Propiedad Valor
ID 377ed111-4619-4c2e-b3ae-a959d6a71d89
Tabla PostgreSQL tpr_60040105745
Etiqueta Plural Salidas de compra
Texto principal automatico
Sección Base Base - Salidas de Compras (74b5c154-eccf-4806-9347-7935fa6ecbcf)

Campos

Total de campos: 38 (10 del sistema, 28 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Salidas de Compras -
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
Medida (Base) Relación General pr_10040106055 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre): Campo : Producto / Medida (Base)
Cantidad (Unidades) Decimal General pr_10040106058 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Referencia Ticket Entero General pr_6004010574176 👁 Oculto, 📊 Cualquier valor numérico Es el número secuencial que el sistema emite cada vez que se realiza una transacción.
Movimiento interno Relación General pr_6004010574169 🔒 Bloqueado, 👁 Oculto -
Observaciones y anotaciones Texto General pr_6004010574178 - -
Texto Ticket Texto General pr_6004010574177 👁 Oculto -
Cantidad (Medida Base) Decimal General pr_10040106054 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad (Medida Base Por Und.) Decimal General pr_10040106057 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Producto / Cantidad (Medida Base)
Tipo de movimiento Relación General pr_6004010574172 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre): Campo (Empresa Actual): Tipo predeterminado de salida de compra
Destinador Relación General pr_6004010574122 🔒 Bloqueado, 👁 Oculto -
Hora local Hora Registro pr_6004010574117 🔒 Bloqueado, 👁 Oculto -
Concepto Relación General pr_20040242022 🔒 Bloqueado -
Fecha Dato Fecha Y Hora General pr_6004010574116 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Autor del alta Relación Registro pr_6004010574115 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Fecha Alta del registro Fecha Y Hora Registro pr_6004010574119 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Producto Relación General pr_10040106053 🔴 Obligatorio -
Cantidad Decimal General pr_10040106056 🔴 Obligatorio, 📊 Mayores que 0 -
Puesto de trabajo Relación Registro pr_6004010574173 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Puesto de trabajo
Ubicación Principal Relación Registro pr_6004010574114 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Compra Relación General pr_20040242021 🔒 Bloqueado -
Estado Relación General pr_60692086 🔴 Obligatorio, 🔒 Bloqueado Autorrellenado (Siempre): Referencia dato: Completada
Tipo Relación General pr_60692087 - Autorrellenado (Siempre): Referencia dato: Devolución a proveedor
Medida Relación General pr_10040106059 🔴 Obligatorio Autorrellenado (Siempre): Campo : Producto / Medida (Accesible)
Empleado Relación Registro pr_6004010574113 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Proveedor Relación General pr_6004010574171 🔒 Bloqueado Autorrellenado (Siempre): Campo : Compra / Proveedor · Entidad relacionada la transacción.
Lote Relación General pr_100401060510 🔴 Obligatorio Autorrellenado (Siempre): Campo : Producto / Lote por defecto producto
Numeración / Serie Relación Registro pr_6004010574174 - -
Almacén Relación General pr_30692061002 🔒 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

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaDestinador = S.Destinadores.ComprasGastos.SalidaDeCompra.ID 
    if C.ReferenciaCompra <> ''


        C.ReferenciaProveedor = C.ReferenciaCompra.ReferenciaProveedor 
        C.ReferenciaUbicacionPrincipal = F.GetRowById(S.Sections.Ubicaciones.ID,C.ReferenciaCompra.ReferenciaUbicacionPrincipal)
        C.ReferenciaProducto = C.ReferenciaConcepto.ReferenciaProducto 




    end if 
end if

Campo_ComboAplicarFiltro

if C.ReferenciaProducto = ''
    F.CampoDesplegableCancelar('Debe seleccionar un producto.')
else


    F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoLotesUsadosEnComprasRectificativas.ID,C.ReferenciaCompra.ReferenciaCompraARectificar,C.ReferenciaProducto)

End If

Campos utilizados: - Salidas de Compras > Lote

Formulario_PreACeptar

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

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

Formulario_TickRecalculo

@ [Salida de compra]
@   Hace referencia a una compra rectificativa (Devolución de producto comprado)   

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

@ ____   STOCK FÍSICO   ____ 

@ Producto 
txt Producto = S.Fields.SalidasDeCompras.ReferenciaProducto.ID 
txt ProductoStockFisico = S.Fields.ProductosBase.StockEnInventario.ID 
txt CantidadSalida = S.Fields.SalidasDeCompras.CantidadUnidades.ID 
F.CampoLimitacionCantidadIndirecta(v.Producto,v.ProductoStockFisico,0,0,v.CantidadSalida,0,'Stock Inventario',1)

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

← Volver al índice