Salidas de ventas¶
La sección Salidas de ventas registra los movimientos de salida de inventario que se generan automáticamente cuando se confirma una venta de productos que gestionan stock. Su objetivo es mantener actualizado el inventario, reduciendo el stock disponible conforme se realizan las ventas. Almacena información detallada del movimiento incluyendo referencia, fecha, venta origen asociada, concepto vendido, producto y cantidad salida, lote específico del que sale el producto, medida utilizada, almacén de origen, cliente receptor, empleado responsable, tipo de movimiento y estado de la salida. El módulo incluye validaciones para garantizar que el producto y lote coincidan, que el lote pertenezca a la misma ubicación de la salida, y que haya suficiente stock físico disponible tanto a nivel de producto como de lote específico. Se integra automáticamente con el módulo de Ventas/Ingresos, actualizando el stock en inventario y el stock disponible en tiempo real, proporcionando trazabilidad completa de cada producto vendido.
Información General¶
| Propiedad | Valor |
|---|---|
| ID | 2c7d5f11-1b45-4f3a-85fa-7aefa0699cfa |
| Tabla PostgreSQL | tpr_40040105741 |
| Etiqueta Plural | Salidas de venta |
| Texto principal automatico | Sí |
| Sección Base | Base - Salidas de ventas (2) (62fa537d-c5c9-444c-94d8-53f603b00529) |
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 ventas | - |
| 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_100401060512 |
🔒 Bloqueado, 👁 Oculto | Autorrellenado (Siempre): Campo : Producto / Medida (Base) |
| Producto | Relación |
General | pr_100401060511 |
🔴 Obligatorio | - |
| Cantidad (Medida Base) | Decimal |
General | pr_100401060516 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | - |
| Tipo de movimiento | Relación |
General | pr_400401057433 |
🔒 Bloqueado, 👁 Oculto | Autorrellenado (Siempre): Campo (Empresa Actual): Tipo predeterminado de salidas de venta |
| Cantidad (Unidades) | Decimal |
General | pr_100401057612 |
👁 Oculto, 📊 Cualquier valor numérico | - |
| Texto Ticket | Texto |
General | pr_400401057439 |
👁 Oculto | - |
| Referencia Ticket | Entero |
General | pr_400401057437 |
👁 Oculto, 📊 Cualquier valor numérico | Es el número secuencial que el sistema emite cada vez que se realiza una transacción. |
| Cantidad (Medida Base Por Und.) | Decimal |
General | pr_100401060515 |
🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico | Autorrellenado (Siempre): Campo : Producto / Cantidad (Medida Base) |
| Hora local | Hora |
Registro | pr_400401057415 |
🔒 Bloqueado, 👁 Oculto | - |
| Movimiento interno | Relación |
General | pr_400401057435 |
🔒 Bloqueado, 👁 Oculto | - |
| Destinador | Relación |
General | pr_400401057420 |
🔒 Bloqueado, 👁 Oculto | - |
| Venta | Relación |
General | pr_10040105769 |
🔒 Bloqueado | - |
| Concepto vendido | Relación |
General | pr_100401057610 |
🔒 Bloqueado | - |
| Autor del alta | Relación |
Registro | pr_400401057413 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* ) |
| Cliente | Relación |
General | pr_400401057432 |
🔒 Bloqueado | Autorrellenado (Siempre): Campo : Venta / Cliente · Entidad relacionada la transacción. |
| Observaciones y anotaciones | Texto |
General | pr_400401057438 |
- | - |
| Numeración / Serie | Relación |
Registro | pr_400401057430 |
- | - |
| Fecha Alta del registro | Fecha Y Hora |
Registro | pr_400401057417 |
🔴 Obligatorio | Autorrellenado (Siempre): Fecha y Hora actual |
| Puesto de trabajo | Relación |
Registro | pr_400401057434 |
👁 Oculto | Autorrellenado (Siempre): Campo (Sesión): Puesto de trabajo |
| Empleado | Relación |
Registro | pr_400401057411 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* ) |
| Ubicación Principal | Relación |
Registro | pr_400401057412 |
👁 Oculto | Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal |
| Tipo | Relación |
General | pr_60692085 |
- | Autorrellenado (Siempre): Referencia dato: Venta a cliente |
| Lote | Relación |
General | pr_100401060517 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo : Producto / Lote por defecto producto |
| Medida | Relación |
General | pr_100401060513 |
🔴 Obligatorio | Autorrellenado (Siempre): Campo : Producto / Medida (Accesible) |
| Fecha Dato | Fecha Y Hora |
General | pr_400401057414 |
🔴 Obligatorio | Autorrellenado (Siempre): Fecha y Hora actual |
| Cantidad | Decimal |
General | pr_100401060514 |
🔴 Obligatorio, 📊 Mayores que 0 | - |
| Almacén | Relación |
General | pr_10692071 |
🔒 Bloqueado | Autorrellenado (Siempre): Campo : Lote / Almacén |
| Estado | Relación |
General | pr_20692091003 |
🔴 Obligatorio, 🔒 Bloqueado | Autorrellenado (Siempre): Referencia dato: Completada |
Scripts¶
Total de scripts: 5
Código de Scripts¶
Lógica de negocio ejecutada en los formularios automáticamente
Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion¶
if C.ReferenciaDestinador = S.Destinadores.VentasIngresos.SalidaDeVenta.ID
if C.ReferenciaVenta <> ''
if C.ReferenciaConceptoVendido <> ''
C.ReferenciaProducto = C.ReferenciaConceptoVendido.ReferenciaProducto
C.ReferenciaLote = C.ReferenciaConceptoVendido.ReferenciaLote
end if
C.ReferenciaUbicacionPrincipal = F.GetRowById(S.Sections.Ubicaciones.ID,C.ReferenciaVenta.ReferenciaUbicacionPrincipal)
C.ReferenciaCliente = C.ReferenciaVenta.ReferenciaCliente
end if
end if
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 ventas > Lote
Campo_ComboAplicarFiltro¶
F.CampoDesplegableAplicarFiltro(S.Fields.ProductosBase.EvaluarStock.ID,'=',1)
Campos utilizados:
- Salidas de ventas > Producto
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 Venta]
@ Salida de una venta Ordinaria.
@ La disponibilidad la gestiona la propia venta
num Unidades = C.CantidadUnidades
C.ReferenciaMovimientoInterno.ReferenciaLote = C.ReferenciaLote
C.ReferenciaMovimientoInterno.ReferenciaProducto = C.ReferenciaProducto
C.ReferenciaMovimientoInterno.ReferenciaEntidadRelacionada = C.ReferenciaCliente
C.ReferenciaMovimientoInterno.ModificadorStockInventario = V.Unidades * -1
C.ReferenciaMovimientoInterno.ModificadorStockDisponible = 0
@ ____ STOCK FÍSICO ____
@ Producto
txt Producto = S.Fields.SalidasDeVentas.ReferenciaProducto.ID
txt ProductoStockFisico = S.Fields.ProductosBase.StockEnInventario.ID
txt CantidadSalida = S.Fields.SalidasDeVentas.CantidadUnidades.ID
F.CampoLimitacionCantidadIndirecta(v.Producto,v.ProductoStockFisico,0,0,v.CantidadSalida,0,'Stock Inventario',1)
@ Lote
txt Producto2 = S.Fields.SalidasDeVentas.ReferenciaLote.ID
txt ProductoStockFisico2 = S.Fields.LotesDeProductosBase.StockInventario.ID
txt CantidadSalida2 = S.Fields.SalidasDeVentas.CantidadUnidades.ID
F.CampoLimitacionCantidadIndirecta(v.Producto2,v.ProductoStockFisico2,0,0,v.CantidadSalida2,0,'Stock Inventario de lote',1)