Saltar a contenido

Lista - Ventas / Ingresos

Gestiona exhaustivamente cada producto o servicio incluido en facturas de venta o ingresos. Controla precios, cantidades, descuentos múltiples (fijos, porcentuales, generales), impuestos, categorías, saldo extra promocional, y validaciones de precios mínimos. Incluye gestión avanzada de inventario con control de stock disponible y físico, movimientos automáticos o manuales, lotes, sustituciones de productos, y rectificaciones. Soporta vinculación con presupuestos previos, suscripciones, ampliaciones, recursos únicos, tarifas de envío, y proyectos. Incorpora clasificación fiscal completa para España (SII), inversión del sujeto pasivo, y operaciones intracomunitarias. Calcula automáticamente costes, márgenes, y gestiona la contabilidad analítica por venta.

Información General

Propiedad Valor
ID c59f4af2-da6b-4671-ad4f-8cf2d71c3a73
Tabla PostgreSQL tpr_50040105521_e
Etiqueta Plural Elementos de Ventas
Texto principal automatico No
Sección Listadora Ventas / Ingresos (0ce4c6ac-54aa-488d-b8b8-e3a20d79f7a4)
Sección Base Base Lista - Ventas / Ingresos (e0a2b422-8962-4680-89af-a4952e4f5f13)

Campos

Total de campos: 107 (12 del sistema, 95 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Lista - Ventas / Ingresos -
Concepto 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 - -
Venta / Ingreso (Listador) (Relación) Relación - idrelacionlistador Ventas / Ingresos 🔴 Obligatorio
Venta / Ingreso (Listador) Eliminadoa * Sí/No - listadoreliminado - -

Campos Personalizados

Campo Tipo Pestaña Columna Atributos Notas
Fecha Alta del registro Fecha Y Hora Registro pr_500401055221 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Suma descuentos de producto (Con impuestos) Decimal Detalles pr_5004010553163 🔒 Bloqueado, 📊 Cualquier valor numérico -
Entidad Relacionada Relación Referencias pr_60040105653 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Cliente
Total descuentos (Sin Impuestos) Decimal Detalles pr_5004010553160 🔒 Bloqueado, 📊 Cualquier valor numérico -
Porcentaje de impuestos Decimal Impuestos pr_5004010553169 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Total concepto (Sin impuestos) Decimal Detalles pr_5004010553171 🔒 Bloqueado, 📊 Cualquier valor numérico -
Fecha Dato Fecha Y Hora Registro pr_500401055219 🔴 Obligatorio, 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Fecha Dato
Suma descuentos Porciento Decimal Detalles pr_5004010553173 🔒 Bloqueado, 📊 Cualquier valor numérico -
Total concepto (Con impuestos) Decimal Detalles pr_5004010553174 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma descuentos generales Decimal Detalles pr_5004010553179 🔒 Bloqueado, 📊 Cualquier valor numérico -
Motivo no sustitución Texto Detalles pr_5004010553186 - Motivo que ha dado el cliente por el que no ha deseado realizar la sustitución del producto por el recomendado.
Producto es sustitución Sí/No Avanzado pr_5004010553192 🔒 Bloqueado, 👁 Oculto Indica si el producto seleccionado ha sido una sustitución.
Total descuentos (Con Impuestos) Decimal Detalles pr_5004010553200 🔒 Bloqueado, 📊 Cualquier valor numérico -
Cantidad (Medida Base Por Und.) Decimal Avanzado pr_5004010553196 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Producto / Cantidad (Medida Base)
Suma descuentos de producto Decimal Detalles pr_5004010553206 🔒 Bloqueado, 📊 Cualquier valor numérico -
Importe descuento porcentual (Por unidad) (Con impuestos) Decimal Detalles pr_5004010553208 🔒 Bloqueado, 📊 Cualquier valor numérico -
Saldo extra emitido Decimal General pr_5004010553204 🔒 Bloqueado, 📊 Cualquier valor numérico -
Autor del alta Relación Registro pr_500401055218 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Suma Decimal General pr_5004010553106 🔒 Bloqueado, 📊 Cualquier valor numérico -
Total concepto Decimal General pr_5004010553104 🔒 Bloqueado, 📊 Cualquier valor numérico -
Descuento fijo unidad (Con impuestos) Decimal Detalles pr_5004010553116 🔒 Bloqueado, 📊 Cualquier valor numérico -
Precio unidad (Sin impuestos) Decimal Detalles pr_5004010553109 🔒 Bloqueado, 📊 Cualquier valor numérico -
Descuentos Generales Porciento Decimal General pr_5004010553120 🔒 Bloqueado, 📊 Positivos o 0 -
Descuento fijo unidad (Sin impuestos) Decimal Detalles pr_5004010553119 🔒 Bloqueado, 📊 Cualquier valor numérico -
Precio mínimo unidad Decimal General pr_5004010553140 👁 Oculto, 📊 Cualquier valor numérico -
Lote Relación General pr_5004010553139 - Autorrellenado (Siempre): Campo : Producto / Lote por defecto producto · Lote asociado a esta transacción.
Aplicar recargo de equivalencia Sí/No Detalles pr_5004010553130 🔒 Bloqueado -
Producto sustituido Relación Referencias pr_5004010553147 🔒 Bloqueado, 👁 Oculto -
Cantidad (Unidades) Decimal Avanzado pr_500401055359 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Ubicación Principal Relación General pr_500401055217 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Ubicación Principal
Total descuentos Decimal General pr_500401055360 🔒 Bloqueado, 📊 Cualquier valor numérico -
Hora local Hora Registro pr_500401055220 🔒 Bloqueado, 👁 Oculto -
Destinador Relación General pr_500401055224 🔒 Bloqueado, 👁 Oculto -
Cantidad de productos que deben de salir Decimal Avanzado pr_500401055381 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Precio unidad (Con impuestos) Decimal Detalles pr_50040106486 🔒 Bloqueado, 📊 Cualquier valor numérico -
Movimiento interno de inventario Relación General pr_40040106601 🔒 Bloqueado, 👁 Oculto -
Total concepto impuestos Decimal General pr_500401055393 🔒 Bloqueado, 📊 Cualquier valor numérico -
Cantidad de productos que pueden rectificarse Decimal Avanzado pr_50040105533 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Elemento de presupuesto de venta Relación General pr_50040105792 👁 Oculto -
Tipo movimiento Relación Avanzado pr_50040105535 🔴 Obligatorio, 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Tipo de Factura
Importe descuento porcentual (Por unidad) Decimal Detalles pr_50040105532 🔒 Bloqueado, 📊 Cualquier valor numérico -
Impuestos incluidos Sí/No General pr_500401055313 🔒 Bloqueado Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Precios con impuestos incluidos
Catálogo Relación Referencias pr_500401055321 🔒 Bloqueado, 👁 Oculto Catálogo referencia de precios.
Medida (Base) Relación Avanzado pr_500401055319 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre): Campo : Producto / Medida (Base)
Producto no sustituido Relación Referencias pr_500401055316 🔒 Bloqueado, 👁 Oculto -
Suma descuentos generales (Con impuestos) Decimal Detalles pr_500401055318 🔒 Bloqueado, 📊 Cualquier valor numérico -
Importe descuento porcentual (Por unidad) (Sin impuestos) Decimal Detalles pr_500401055327 🔒 Bloqueado, 📊 Cualquier valor numérico -
Cantidad (Medida Base) Decimal Avanzado pr_500401055322 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Empleado Relación General pr_500401055216 🔴 Obligatorio, 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Empleado
Presupuesto de venta Relación General pr_50040105791 👁 Oculto -
Evaluar stock Sí/No Detalles pr_500401055337 - Autorrellenado (Siempre): Campo : Producto / Evaluar Stock
Elemento Catálogo Relación Referencias pr_500401055342 🔒 Bloqueado, 👁 Oculto -
Suma (Con impuestos) Decimal Detalles pr_50040106484 🔒 Bloqueado, 📊 Cualquier valor numérico -
Elemento de pack Relación Referencias pr_20040148294 👁 Oculto -
Unidades deseadas Decimal General pr_100401699816 👁 Oculto, 📊 Cualquier valor numérico .
Cantidad de productos que deben entrar Decimal General pr_40040242012 👁 Oculto, 📊 Cualquier valor numérico -
Tipo de factura Entero Detalles pr_60040242001 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Tipo factura
Rectificando -Venta Relación General pr_30040241991 👁 Oculto -
Rectificando - Producto vendido Relación General pr_20040241993 👁 Oculto -
Suma descuentos de producto (Sin impuestos) Decimal Detalles pr_40040255192 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma (Sin impuestos) Decimal Detalles pr_40040255191 🔒 Bloqueado, 📊 Cualquier valor numérico -
Peso unidad Decimal Detalles pr_20040256621 🔒 Bloqueado, 📊 Cualquier valor numérico Autorrellenado (ExisteRelacion): Campo : Producto / Peso en unidad básica · Autorrellenado (ExisteRelacion): Campo : Recurso / Peso en unidad base · Autorrellenado (Siempre): Número: 0
Suma descuentos generales (Sin impuestos) Decimal Detalles pr_10040266802 🔒 Bloqueado, 📊 Cualquier valor numérico -
Actividad Relación General pr_60040281353 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Actividad
Ampliación de suscripción Relación General pr_200401606422 - -
Suscripción de cliente Relación General pr_60040159763 - -
Tarifa de envío aplicada Relación General pr_200405060916 - -
Movimiento de inventario automático Sí/No Detalles pr_500401055335 - Determina que el sistema realizará la salida de inventario de forma automática al realizar la transacción.
ES - Impuestos Causa Entero Avanzado pr_10732793 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Impuestos / ES - Causa (Sujeción)
Coste (Und.) Decimal Avanzado pr_40040192151 📊 Cualquier valor numérico Autorrellenado (ExisteRelacion): Campo : Producto / Precio medio de Compra (Sin impuestos) · Autorrellenado (ExisteRelacion): Campo : Lote / Coste por unidad (Sin impuestos) · Autorrellenado (ExisteRelacion): Campo : Recurso / Coste (Sin impuestos) · Autorrellenado (Siempre): Número: 0
Inversión del sujeto pasivo Sí/No Avanzado pr_60733222 - Autorrellenado (Siempre): Campo : Impuestos / Inversión del sujeto pasivo
Clave de operación intracomunitaria Texto Avanzado pr_300402429916 - -
Categoría de venta Relación General pr_50040136172 🔴 Obligatorio Autorrellenado (Cadena_Rellenada): Campo : Producto / Categoría de Venta por defecto · Autorrellenado (Cadena_Rellenada): Campo (Empresa Actual): Categoría predeterminada de Venta
Tipo de Producto Entero General pr_20733501 📊 Cualquier valor numérico Autorrellenado (ExisteRelacion): Campo : Producto / Tipo de Producto
ES - Base imponible a coste Decimal Avanzado pr_30734541 🔒 Bloqueado, 📊 Cualquier valor numérico Campo reservado para versiones futuras.
Proyecto Relación General pr_30040336361 - -
ES - Clasificación de Operación Entero Avanzado pr_30734762 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Impuestos / ES - Clasificación de Operación
ES - Clave Régimen Entero Avanzado pr_40734762 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Impuestos / ES - Clave Régimen
Permitir productos fuera de catálogo Sí/No Avanzado pr_50040105531 - Autorrellenado (Siempre): Campo (Empresa Actual): Permitir vender productos fuera de catálogo · Indicando esta opción se permitirá seleccionar productos que no estén en el catálogo que se ha asignado a la entidad o transacción.
Coste Decimal Avanzado pr_50040192153 🔒 Bloqueado, 📊 Cualquier valor numérico -
Margen (Und.) Decimal Avanzado pr_50040192151 🔒 Bloqueado, 📊 Cualquier valor numérico -
Margen Decimal Avanzado pr_50040192152 🔒 Bloqueado, 📊 Cualquier valor numérico -
ES - Impuestos Tipo Entero Avanzado pr_10732794 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Impuestos / ES - Tipo
Tipo Entero General pr_60040504532 🔴 Obligatorio, 🔒 Bloqueado, 📊 Cualquier valor numérico Autorrellenado (Siempre): Número entero: 1
Recurso Relación General pr_20040441201 - -
Saldo extra unidad Decimal General pr_5004010553129 📊 Cualquier valor numérico -
Descuento % Decimal General pr_5004010553110 📊 Positivos o 0 -
Precio unidad Decimal General pr_500401055369 📊 Cualquier valor numérico -
Impuestos Relación General pr_500401055380 🔴 Obligatorio -
Cantidad Decimal General pr_5004010553107 🔴 Obligatorio, 📊 Mayores que 0 Autorrellenado (Siempre): Número: 1
Descuento fijo unidad Decimal General pr_500401055394 📊 Cualquier valor numérico -
Producto Relación General pr_5004010553185 - -
Medida Relación General pr_5004010553108 🔴 Obligatorio Autorrellenado (Siempre): Campo : Producto / Medida (Accesible)
Anulada Sí/No General pr_40744811001 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Anulada
Fecha contable Fecha General pr_30040252082 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre, Listador): Campo : Venta / Ingreso (Listador) (Relación) / Fecha contable

Scripts

Total de scripts: 29

Código de Scripts

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

Campo_Cambiado

if C.ReferenciaTarifaDeEnvioAplicada <> ''


    if C.ImpuestosIncluidos
        C.ImportePrecioUnidad = C.ReferenciaTarifaDeEnvioAplicada.ImportePrecioDeVentaConImpuestos 
    else
        C.ImportePrecioUnidad = C.ReferenciaTarifaDeEnvioAplicada.ImportePrecioDeVentaSinImpuestos 
    end if 



    C.ReferenciaProducto = C.ReferenciaTarifaDeEnvioAplicada.ReferenciaProductoEnVentas 
    C.Cantidad = 1
    C.ReferenciaImpuestos = C.ReferenciaTarifaDeEnvioAplicada.ReferenciaImpuestoEnVentas 
    C.ReferenciaCategoriaDeVenta = C.ReferenciaTarifaDeEnvioAplicada.ReferenciaCategoriaDeVenta 
    C.TextoPrincipal = C.ReferenciaTarifaDeEnvioAplicada.TextoPrincipal 

    C.ImporteCosteUnd = C.ReferenciaTarifaDeEnvioAplicada.ImporteCosteSinImpuestos 


end if

Campos utilizados: - Lista - Ventas / Ingresos > Tarifa de envío aplicada

Campo_Cambiado

if C.ReferenciaElementoDePresupuestoDeVenta <> ''
    C.ReferenciaProyecto = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaProyecto
end if

Campos utilizados: - Lista - Ventas / Ingresos > Elemento de presupuesto de venta

Campo_ComboAplicarFiltro

if C.TipoDeFactura = S.Enums.tipofactura.rectificativo 
    F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBusquedaRecursosPuedenDevolverseVenta.ID)
else
    F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBusquedaRecursosPuedenVenderse.ID)
end if

Campos utilizados: - Lista - Ventas / Ingresos > Recurso

Formulario_Iniciado_AgregarNuevo

if C.ReferenciaImpuestos = ''

    C.ReferenciaImpuestos = C.RelacionElementoContenedorListador.ReferenciaImpuestoPredeterminado 

end if 



if C.TipoDeFactura = S.Enums.tipofactura.ordinario


    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'E - Entregas intracomunitarias exentas, excepto las entregas en otros Estados miembros subsiguientes a adquisiciones intracomunitarias exentas en el marco de operaciones triangulares, que se consignará «T», y las entregas intracomunitarias de bienes posteriores a una importación exenta, que se consignarán con las claves «M» o «H» según corresponda.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'M - Entregas intracomunitarias de bienes posteriores a una importación exenta, de acuerdo con el artículo 27. 12.º de la Ley del Impuesto sobre el Valor Añadido.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'H - Entregas intracomunitarias de bienes posteriores a una importación exenta, de acuerdo con el artículo 27. 12.º de la Ley del Impuesto sobre el Valor Añadido, efectuadas por el representante fiscal según lo previsto en el artículo 86.Tres de la Ley del Impuesto.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'A - Adquisiciones intracomunitarias sujetas.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'T - Entregas en otros Estados miembros subsiguientes a adquisiciones intracomunitarias exentas en el marco de operaciones triangulares. Cuando se realice alguna entrega de bienes de las mencionadas en el artículo 79, apartado cinco del Reglamento del IVA.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'S - Prestaciones intracomunitarias de servicios realizadas por el declarante.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'I - Adquisiciones intracomunitarias de servicios localizadas en el TAI prestadas por empresarios o profesionales establecidos en otros EM cuyo destinatario es el declarante.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'R - Transferencias de bienes efectuadas en el marco de acuerdos de ventas de bienes en consigna.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'D - Devoluciones de bienes desde otro Estado miembro al que previamente fueron enviados desde el TAI en el marco de acuerdos de ventas de bienes en consigna.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'C - Sustituciones del empresario o profesional destinatario de los bienes expedidos o transportados a otro Estado miembro en el marco de acuerdos de ventas de bienes en consigna.') 


else
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'E - Rectificaciones de las entregas intracomunitarias exentas, excepto las que deban consignarse, según corresponda, con las claves T, M ó H.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'M - Rectificaciones de las entregas intracomunitarias de bienes posteriores a una importación exenta, de acuerdo con el artículo 27.12º de la Ley del Impuesto sobre el Valor Añadido.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'H - Rectificaciones de las entregas intracomunitarias de bienes posteriores a una importación exenta efectuadas por el representante fiscal, de acuerdo con el artículo 27. 12.º de la Ley del Impuesto sobre el Valor Añadido, efectuadas por el representante fiscal según lo previsto en el artículo 86.Tres de la Ley del Impuesto.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'A - Rectificaciones a las adquisiciones intracomunitarias sujetas.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'T - Rectificaciones a las entregas en otros Estados miembros subsiguientes a adquisiciones intracomunitarias exentas en el marco de operaciones triangulares. Cuando se realice alguna entrega de bienes de las mencionadas en el artículo 79, apartado cinco del Reglamento del IVA.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'S - Rectificaciones a las prestaciones intracomunitarias de servicios realizadas por el declarante.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'I - Rectificaciones a las adquisiciones intracomunitarias de servicios localizadas en el TAI prestadas por empresarios o profesionales establecidos en otros EM cuyo destinatario es el declarante.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'R - Rectificaciones de transferencias de bienes efectuadas en el marco de acuerdos de ventas de bienes en consigna.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'D - Rectificaciones de devoluciones de bienes desde otro Estado miembro al que previamente fueron enviados desde el TAI en el marco de acuerdos de ventas de bienes en consigna.') 
    F.CampoTextoAgregarMemorizados(S.Fields.VentasIngresosLista.ClaveDeOperacionIntracomunitaria.ID,'C - Rectificaciones de sustituciones del empresario o profesional destinatario de los bienes expedidos o transportados a otro Estado miembro en el marco de acuerdos de ventas de bienes en consigna.') 

end if

Formuario_RecalcularListado

if C.RelacionElementoContenedorListador.DesactivarSaldo = 1
    C.ImporteSaldoExtraUnidad =0 
end if 


num PrecioDeVentaDeReferencia = C.ImporteTotalConceptoSinImpuestos 
C.ImporteCoste = C.ImporteCosteUnd * C.CantidadUnidades
C.ImporteMargen = v.PrecioDeVentaDeReferencia - C.ImporteCoste 
C.ImporteMargenUnd = C.ImporteMargen / C.CantidadUnidades

Formuario_RecalcularListado

if C.ClaveDeOperacionIntracomunitaria <> ''
    if F.Contains(C.ClaveDeOperacionIntracomunitaria,' - ')
        C.ClaveDeOperacionIntracomunitaria = F.Substring(C.ClaveDeOperacionIntracomunitaria,1,1)
    end if
end if

Campo_Cambiado

if C.ReferenciaElementoDePresupuestoDeVenta <> ''

elseif C.ImpuestosIncluidos
    C.ReferenciaImpuestos = C.ReferenciaElementoCatalogo.ReferenciaImpuesto 
    C.ImportePrecioUnidad = C.ReferenciaElementoCatalogo.ImportePrecioConImpuestos 
    C.ImporteDescuentoFijoUnidad = C.ReferenciaElementoCatalogo.ImporteDescuentoFijoImpuestosIncluidos 
    C.DescuentoPorciento = C.ReferenciaElementoCatalogo.DescuentoPorciento 
    C.ImporteSaldoExtraUnidad = C.ReferenciaElementoCatalogo.ImporteSaldoPromocionalFijoExtra 
else
    C.ReferenciaImpuestos = C.ReferenciaElementoCatalogo.ReferenciaImpuesto 
    C.ImportePrecioUnidad = C.ReferenciaElementoCatalogo.ImportePrecioSinImpuestos 
    C.ImporteDescuentoFijoUnidad = C.ReferenciaElementoCatalogo.ImporteDescuentoFijoImpuestosNoIncluidos 
    C.DescuentoPorciento = C.ReferenciaElementoCatalogo.DescuentoPorciento 
    C.ImporteSaldoExtraUnidad = C.ReferenciaElementoCatalogo.ImporteSaldoPromocionalFijoExtra 
end if

Campos utilizados: - Lista - Ventas / Ingresos > Elemento Catálogo

Formulario_Cargado

if C.RelacionElementoContenedorListador.ReferenciaVentaQueSeEstaRectificando <> ''
    F.CatalogoDesactivar(S.Catalogos.CatalogoVentasOrdinarias.ID,1)
end if

Campo_ComboAplicarFiltro

if C.ReferenciaEntidadRelacionada <> ''
    F.CampoDesplegableAplicarFiltro(S.Fields.SuscripcionesDeClientesBase.ReferenciaCliente.ID,'=',C.ReferenciaEntidadRelacionada)
    F.ListadoAvisoDesplegable(F.Concat2('Mostrando las suscripciones de ',C.ReferenciaEntidadRelacionada.TextoPrincipal),1)
End If

Campos utilizados: - Lista - Ventas / Ingresos > Suscripción de cliente

Campo_ComboAplicarFiltro

if C.ReferenciaSuscripcionDeCliente <> ''

    F.CampoDesplegableAplicarFiltro(S.Fields.AmpliacionesDeSuscripcionesDeClientesBase.ReferenciaSuscripcionDeCliente.ID,'=',C.ReferenciaSuscripcionDeCliente)
    F.ListadoAvisoDesplegable(F.Concat2('Mostrando renovaciones de suscripción ',C.ReferenciaSuscripcionDeCliente.TextoPrincipal),1)


elseif C.ReferenciaEntidadRelacionada <> ''

    F.CampoDesplegableAplicarFiltro(S.Fields.AmpliacionesDeSuscripcionesDeClientesBase.ReferenciaCliente.ID,'=',C.ReferenciaEntidadRelacionada)
    F.ListadoAvisoDesplegable(F.Concat2('Mostrando renovaciones del cliente',C.ReferenciaEntidadRelacionada.TextoPrincipal),1)



End If

Campos utilizados: - Lista - Ventas / Ingresos > Ampliación de suscripción

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.AmpliacionesDeSuscripcionesDeClientesBase.ReferenciaCliente.ID,C.ReferenciaEntidadRelacionada)
F.CopiarAgregarRelacion(S.Fields.AmpliacionesDeSuscripcionesDeClientesBase.ReferenciaSuscripcionDeCliente.ID,C.ReferenciaSuscripcionDeCliente)

Campos utilizados: - Lista - Ventas / Ingresos > Ampliación de suscripción

Formulario_PreACeptar

if C.ReferenciaAmpliacionDeSuscripcion  <> ''
    if C.ReferenciaSuscripcionDeCliente <> ''
        if C.ReferenciaSuscripcionDeCliente <> C.ReferenciaAmpliacionDeSuscripcion.ReferenciaSuscripcionDeCliente 
            F.MsgBox('La renovación no pertenece a la suscripción seleccionada.',1)
            F.CancelarEvento 
        End If
    end if
End If

Campo_Cambiado

if C.ReferenciaRecurso <> ''


    C.TextoPrincipal = C.ReferenciaRecurso.TextoPrincipal 

    if C.ReferenciaRecurso.ReferenciaDetalles.ReferenciaCategoriaDeVenta <> ''
        C.ReferenciaCategoriaDeVenta = C.ReferenciaRecurso.ReferenciaDetalles.ReferenciaCategoriaDeVenta 
    end if


    if C.ReferenciaRecurso.ReferenciaImpuestoDeVenta <> ''
        C.ReferenciaImpuestos = C.ReferenciaRecurso.ReferenciaImpuestoDeVenta
    else
        if C.ReferenciaRecurso.ReferenciaDetalles.ReferenciaImpuestoEnVentas <> ''
            C.ReferenciaImpuestos =  C.ReferenciaRecurso.ReferenciaDetalles.ReferenciaImpuestoEnVentas
        end if
    end if


    if C.ImpuestosIncluidos
        C.ImportePrecioUnidad = C.ReferenciaRecurso.ImportePrecioDeVentaConImpuestos 
    else
        C.ImportePrecioUnidad = C.ReferenciaRecurso.ImportePrecioDeVentaSinImpuestos 
    end if



end if

Campos utilizados: - Lista - Ventas / Ingresos > Recurso

Formulario_Iniciado_AgregarNuevo

if C.ReferenciaElementoDePresupuestoDeVenta <> ''

    C.ReferenciaSuscripcionDeCliente = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaSuscripcionDeCliente 
    C.ReferenciaAmpliacionDeSuscripcion = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaAmpliacionDeSuscripcion 

end if

Formulario_TickRecalculo

num Proyecto_BloqueadoPorGeneral = 0
txt Proyecto_BloqueadoPorGeneralMotivo = 'Este campo está bloqueado porque ha seleccionado un proyecto general.'

if C.RelacionElementoContenedorListador.ReferenciaProyectoGeneral <> ''
    C.ReferenciaProyecto = C.RelacionElementoContenedorListador.ReferenciaProyectoGeneral 
    V.Proyecto_BloqueadoPorGeneral = 1 
end if 




F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaProyecto.ID,v.Proyecto_BloqueadoPorGeneralMotivo,v.Proyecto_BloqueadoPorGeneral)

Formulario_TickRecalculo

if F.CampoHaSidoAfectadoEntreTicks(S.Fields.VentasIngresosLista.ReferenciaAmpliacionDeSuscripcion.id)

    if C.ReferenciaAmpliacionDeSuscripcion <> ''


        C.ReferenciaSuscripcionDeCliente = C.ReferenciaAmpliacionDeSuscripcion.ReferenciaSuscripcionDeCliente 


    End If

End If


num SuscripcionObligada = 0
if C.ReferenciaAmpliacionDeSuscripcion <> ''
    V.SuscripcionObligada = 1
End If

F.CampoObligatorioMotivo(S.Fields.VentasIngresosLista.ReferenciaSuscripcionDeCliente.ID,'',v.SuscripcionObligada)

Formulario_TickRecalculo

num categoriabloqueada = 0
num impuestobloqueado = 0

if C.RelacionElementoContenedorListador.ReferenciaCategoriaGeneral <> ''
    C.ReferenciaCategoriaDeVenta = C.RelacionElementoContenedorListador.ReferenciaCategoriaGeneral 
    V.categoriabloqueada = 1
end if


if C.RelacionElementoContenedorListador.ReferenciaImpuestoGeneral <> ''
    C.ReferenciaImpuestos = C.RelacionElementoContenedorListador.ReferenciaImpuestoGeneral
    V.impuestobloqueado = 1
end if


F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaCategoriaDeVenta.ID,'Se ha indicado en Categoria general.',V.categoriabloqueada)
F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaImpuestos.ID,'Se ha indicado en Impuesto general.',V.impuestobloqueado)

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.RelacionElementoContenedorListador.ImpedirAutorrellenadoDestinadores
    salir
end if

if C.ReferenciaRectificandoProductoVendido <> ''

    C.ReferenciaRecurso = C.ReferenciaRectificandoProductoVendido.ReferenciaRecurso 
    C.ReferenciaProducto = C.ReferenciaRectificandoProductoVendido.ReferenciaProducto
    C.ReferenciaLote = C.ReferenciaRectificandoProductoVendido.ReferenciaLote
    C.ReferenciaRecurso = C.ReferenciaRectificandoProductoVendido.ReferenciaRecurso
    C.ReferenciaImpuestos = C.ReferenciaRectificandoProductoVendido.ReferenciaImpuestos 
    C.ReferenciaImpuestos = C.ReferenciaRectificandoProductoVendido.ReferenciaImpuestos
    C.ImportePrecioUnidad = C.ReferenciaRectificandoProductoVendido.ImportePrecioUnidad * -1
    C.ImporteDescuentoFijoUnidad = C.ReferenciaRectificandoProductoVendido.ImporteDescuentoFijoUnidad * -1
    C.DescuentoPorciento = C.ReferenciaRectificandoProductoVendido.DescuentoPorciento
    C.ImporteSaldoExtraUnidad = C.ReferenciaRectificandoProductoVendido.ImporteSaldoExtraUnidad * -1
    C.Tipo = C.ReferenciaRectificandoProductoVendido.Tipo
    C.ReferenciaCategoriaDeVenta = C.ReferenciaRectificandoProductoVendido.ReferenciaCategoriaDeVenta
    C.ImportePrecioMinimoUnidad = C.ReferenciaRectificandoProductoVendido.ImportePrecioMinimoUnidad * -1
    C.EvaluarStock = C.ReferenciaRectificandoProductoVendido.EvaluarStock
    C.ImporteCoste = C.ReferenciaRectificandoProductoVendido.ImporteCoste * -1
    C.ImporteSaldoExtraUnidad = C.ReferenciaRectificandoProductoVendido.ImporteSaldoExtraUnidad 
    C.TextoPrincipal = C.ReferenciaRectificandoProductoVendido.TextoPrincipal



    C.TipoDeProducto = C.ReferenciaRectificandoProductoVendido.TipoDeProducto
    C.ESImpuestosTipo = C.ReferenciaRectificandoProductoVendido.ESImpuestosTipo
    C.ESClaveRegimen = C.ReferenciaRectificandoProductoVendido.ESClaveRegimen
    C.ESImpuestosCausa = C.ReferenciaRectificandoProductoVendido.ESImpuestosCausa
    C.ESClasificacionDeOperacion = C.ReferenciaRectificandoProductoVendido.ESClasificacionDeOperacion
    C.InversionDelSujetoPasivo = C.ReferenciaRectificandoProductoVendido.InversionDelSujetoPasivo
    C.ClaveDeOperacionIntracomunitaria = C.ReferenciaRectificandoProductoVendido.TextoPrincipal
    C.ImporteESBaseImponibleACoste = C.ReferenciaRectificandoProductoVendido.ImporteESBaseImponibleACoste

end if



if C.ReferenciaElementoDePresupuestoDeVenta <> ''


    C.ReferenciaRecurso = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaRecurso 
    C.ReferenciaProducto = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaProducto
    C.ReferenciaRecurso = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaRecurso
    C.ReferenciaImpuestos = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaImpuestos
    C.ImportePrecioUnidad = C.ReferenciaElementoDePresupuestoDeVenta.ImportePrecioUnidad 
    C.ImporteDescuentoFijoUnidad = C.ReferenciaElementoDePresupuestoDeVenta.ImporteDescuentoFijoUnidad 
    C.DescuentoPorciento = C.ReferenciaElementoDePresupuestoDeVenta.DescuentoPorciento
    C.ImporteSaldoExtraUnidad = C.ReferenciaElementoDePresupuestoDeVenta.ImporteSaldoExtraUnidad 
    C.Tipo = C.ReferenciaElementoDePresupuestoDeVenta.Tipo
    C.ReferenciaCategoriaDeVenta = C.ReferenciaElementoDePresupuestoDeVenta.ReferenciaCategoriaDeVenta
    C.ImportePrecioMinimoUnidad = C.ReferenciaElementoDePresupuestoDeVenta.ImportePrecioMinimo 
    C.EvaluarStock = C.ReferenciaElementoDePresupuestoDeVenta.EvaluarStock
    C.ImporteSaldoExtraUnidad = C.ReferenciaElementoDePresupuestoDeVenta.ImporteSaldoExtraUnidad 
    C.TextoPrincipal = C.ReferenciaElementoDePresupuestoDeVenta.TextoPrincipal




    C.TipoDeProducto = C.ReferenciaElementoDePresupuestoDeVenta.TipoDeProducto
    C.ESImpuestosTipo = C.ReferenciaElementoDePresupuestoDeVenta.ESImpuestosTipo
    C.ESClaveRegimen = C.ReferenciaElementoDePresupuestoDeVenta.ESClaveRegimen
    C.ESImpuestosCausa = C.ReferenciaElementoDePresupuestoDeVenta.ESImpuestosCausa
    C.ESClasificacionDeOperacion = C.ReferenciaElementoDePresupuestoDeVenta.ESClasificacionDeOperacion
    C.InversionDelSujetoPasivo = C.ReferenciaElementoDePresupuestoDeVenta.InversionDelSujetoPasivo
    C.ClaveDeOperacionIntracomunitaria = C.ReferenciaElementoDePresupuestoDeVenta.TextoPrincipal
    C.ImporteESBaseImponibleACoste = C.ReferenciaElementoDePresupuestoDeVenta.ImporteESBaseImponibleACoste


end if

Campo_Cambiado

if C.ReferenciaImpuestos.EsSuplido
    C.Tipo = S.Enums.cotizacionfilatipo.suplido 
else
    C.Tipo = S.Enums.cotizacionfilatipo.ordinario 
end if

Campos utilizados: - Lista - Ventas / Ingresos > Impuestos

Campo_Cambiado

salir
If C.MovimientoDeInventarioAutomatico
    If C.EvaluarStock = 0
        F.MsgBox('No se puede marcar como salida instantanea, una venta de un producto que no requiere seguimiento de existencias.',0)
        C.EvaluarStock = 0
    End If
End If

Campos utilizados: - Lista - Ventas / Ingresos > Movimiento de inventario automático

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.ImpuestosBase.Activo.id,'=',1)

Campos utilizados: - Lista - Ventas / Ingresos > Impuestos

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.LotesDeProductosBase.ReferenciaUbicacionPrincipal.id,'=',C.ReferenciaUbicacionPrincipal)
F.CampoDesplegableAplicarFiltro(S.Fields.LotesDeProductosBase.ReferenciaProducto.id,'=',C.ReferenciaProducto)
F.CampoDesplegableAplicarFiltro(S.Fields.LotesDeProductosBase.StockDisponible.id,'>',0)

Campos utilizados: - Lista - Ventas / Ingresos > Lote

Campo_ComboAplicarFiltro

If C.PermitirProductosFueraDeCatalogo = 0
    F.CampoDesplegableAplicarAlgoritmoCM(S.Algorithms.AlgoritmoBusquedaProductosEnCatalogosDeVentaPorTipoDeClienteYImpuestosIncluidosPorUbicacion.id,C.RelacionElementoContenedorListador.ReferenciaTipoCliente,C.ImpuestosIncluidos,C.ReferenciaUbicacionPrincipal)
    F.ListadoAvisoDesplegable('Únicamente se están mostrando los productos asociados a catálogos.',1)
else
    F.ListadoAvisoDesplegable('Únicamente se están mostrando los productos asociados a catálogos.',0)
End If

Campos utilizados: - Lista - Ventas / Ingresos > Producto

Campo_Cambiado

if C.UnidadesDeseadas <> 0
    C.Cantidad = C.ReferenciaElementoDePack.Cantidad 
end if

Campos utilizados: - Lista - Ventas / Ingresos > Lote

Formuario_RecalcularListado

txt bloqueoUnicoMotivo = 'Únicamente puede seleccionar 1: Recurso o Producto'
num bloqueUnicoRecurso = 0
num bloqueUnicoProducto = 0

if C.ReferenciaProducto <> '' y C.ReferenciaRecurso <> ''

elseif C.ReferenciaProducto <> ''


    V.bloqueUnicoRecurso = 1
elseif C.ReferenciaRecurso <> ''
    V.bloqueUnicoProducto = 1

else

end if

F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaProducto.ID,v.bloqueoUnicoMotivo,v.bloqueUnicoProducto)
F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaRecurso.ID,v.bloqueoUnicoMotivo,v.bloqueUnicoRecurso)




num bloqueoSuplido = 0
txt MotivoBloqueoSuplido = 'No disponible en suplidos.'
if C.Tipo = S.Enums.cotizacionfilatipo.suplido 

    if C.ReferenciaProducto <> ''
        C.ReferenciaProducto = ''
    end if 

       if C.ReferenciaRecurso <> ''
        C.ReferenciaRecurso = ''
    end if 
   if C.ReferenciaLote <> ''
        C.ReferenciaLote = ''
    end if 
    V.bloqueoSuplido = 1
end if


F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaRecurso.ID,v.MotivoBloqueoSuplido,v.bloqueoSuplido)
F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaProducto.ID,v.MotivoBloqueoSuplido,v.bloqueoSuplido)
F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaLote.ID,v.MotivoBloqueoSuplido,v.bloqueoSuplido)



@! #######################################
@! ############  LIMITADORES   ###########
@! #######################################
num CantidadMinima
num CantidadMaxima
num AfectaPositivamente
txt Motivo

txt CampoALimitar = S.Fields.VentasIngresosLista.CantidadUnidades.id 

num EsRectificativa = 0



if C.TipoDeFactura = S.Enums.tipofactura.ordinario 


    @!################################################
    @!             LIMITACIÓN DISP. PROD             #
    @!################################################
    txt CampoRelacion2 = S.Fields.VentasIngresosLista.ReferenciaProducto.id 
    txt CampoRelacionCantidad2 = S.Fields.ProductosBase.StockDisponible.id 
    V.CantidadMinima = 0
    V.CantidadMaxima = 9999999999
    V.AfectaPositivamente = 0
    V.Motivo = 'Disponibilidad de producto'
    if C.ReferenciaProducto <> '' and C.EvaluarStock = 1 
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion2,v.CampoRelacionCantidad2,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,1) 
    else
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion2,v.CampoRelacionCantidad2,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,0) 
    End If




    @################################################
    @             LIMITACIÓN DISP.  [LOTE]          #
    @################################################
    txt CampoRelacion4 = S.Fields.VentasIngresosLista.ReferenciaLote.id 
    txt CampoRelacionCantidad4 = S.Fields.LotesDeProductosBase.StockDisponible.id 
    V.CantidadMinima = 0
    V.CantidadMaxima = 9999999999
    V.AfectaPositivamente = 0
    V.Motivo = 'Disponibilidad de lote'
    if C.ReferenciaLote <> '' and C.EvaluarStock
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion4,v.CampoRelacionCantidad4,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,1) 
    else
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion4,v.CampoRelacionCantidad4,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,0) 
    End If



    @################################################
    @              STOCK FÍSICO [LOTE]              #
    @################################################
    txt CampoRelacion5 = S.Fields.VentasIngresosLista.ReferenciaLote.id 
    txt CampoRelacionCantidad5 = S.Fields.LotesDeProductosBase.StockInventario.id 
    V.CantidadMinima = 0
    V.CantidadMaxima = 9999999999
    V.AfectaPositivamente = 0
    V.Motivo = 'Stock Invetario (Lote)'
    if C.ReferenciaLote <> '' and C.EvaluarStock y C.MovimientoDeInventarioAutomatico 
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion5,v.CampoRelacionCantidad5,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,1) 
    else
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion5,v.CampoRelacionCantidad5,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,0) 
    End If



    @################################################
    @            STOCK FÍSICO [PRODUCTO]            #
    @################################################
    txt CampoRelacion6 = S.Fields.VentasIngresosLista.ReferenciaProducto.id 
    txt CampoRelacionCantidad6 = S.Fields.ProductosBase.StockEnInventario.id 
    V.CantidadMinima = 0
    V.CantidadMaxima = 9999999999
    V.AfectaPositivamente = 0
    V.Motivo = 'Stock Invetario (Producto)'
    if C.ReferenciaLote <> '' and C.EvaluarStock y C.MovimientoDeInventarioAutomatico 
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion6,v.CampoRelacionCantidad6,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,1) 
    else
        F.CampoLimitacionCantidadIndirecta(v.CampoRelacion6,v.CampoRelacionCantidad6,v.CantidadMinima,v.CantidadMaxima,v.CampoALimitar,v.AfectaPositivamente,v.Motivo,0) 
    End If


end 


@################################################
@          ADMINISTRACIÓN DE INVENTARIO         #
@################################################

num ModificadorStockDisponible 
num ModificadorStockInventario 
num CantidadDeProductosQueDebenDeSalir 
num CantidadDeProductosQueDebenEntrar 
num CantidadDeProductosQuePuedenRectificarse 


if C.TipoDeFactura = S.Enums.tipofactura.ordinario


    If C.EvaluarStock y C.ReferenciaProducto <> ''

            v.ModificadorStockDisponible = C.CantidadUnidades * -1 


        If C.MovimientoDeInventarioAutomatico 
            v.ModificadorStockInventario = C.CantidadUnidades * -1 
            v.CantidadDeProductosQueDebenDeSalir = 0
        Else
            v.ModificadorStockInventario = 0
            v.CantidadDeProductosQueDebenDeSalir = C.CantidadUnidades
        End If

    End If

    V.CantidadDeProductosQuePuedenRectificarse = C.CantidadUnidades

elseif C.TipoDeFactura = S.Enums.tipofactura.rectificativo



    If C.EvaluarStock y C.ReferenciaProducto <> ''


        If C.MovimientoDeInventarioAutomatico 
            v.ModificadorStockInventario = C.CantidadUnidades 
            v.CantidadDeProductosQueDebenEntrar = 0
            v.ModificadorStockDisponible = C.CantidadUnidades 
        Else
            v.ModificadorStockInventario = 0
            v.CantidadDeProductosQueDebenEntrar = C.CantidadUnidades 
            v.ModificadorStockDisponible = 0
        End If

    End If 

    V.CantidadDeProductosQuePuedenRectificarse = 0


end if


@ ____   Destinadores    ____   
C.CantidadDeProductosQueDebenDeSalir = v.CantidadDeProductosQueDebenDeSalir 
C.CantidadDeProductosQueDebenEntrar = V.CantidadDeProductosQueDebenEntrar 
C.CantidadDeProductosQuePuedenRectificarse = V.CantidadDeProductosQuePuedenRectificarse



@ ____   [Incrustación > Movimiento de inventario ]   ____ 
if v.ModificadorStockDisponible <> 0 or v.ModificadorStockInventario <> 0

    C.ReferenciaMovimientoInternoDeInventario.ReferenciaLote = C.ReferenciaLote 
    C.ReferenciaMovimientoInternoDeInventario.ReferenciaProducto = C.ReferenciaProducto 
    C.ReferenciaMovimientoInternoDeInventario.ReferenciaEntidadRelacionada = C.ReferenciaEntidadRelacionada 
    C.ReferenciaMovimientoInternoDeInventario.ModificadorStockDisponible = v.ModificadorStockDisponible 
    C.ReferenciaMovimientoInternoDeInventario.ModificadorStockInventario = v.ModificadorStockInventario

else

    C.ReferenciaMovimientoInternoDeInventario.ReferenciaLote = ''
    C.ReferenciaMovimientoInternoDeInventario.ReferenciaProducto = ''
    C.ReferenciaMovimientoInternoDeInventario.ReferenciaEntidadRelacionada = ''
    C.ReferenciaMovimientoInternoDeInventario.ModificadorStockDisponible = 0
    C.ReferenciaMovimientoInternoDeInventario.ModificadorStockInventario = 0
    C.ReferenciaMovimientoInternoDeInventario.ModificadorStockInventario = 0

end if

Formulario_PreACeptar

if C.CantidadUnidades = 0

    F.CancelarEvento 

elseIf C.ImportePrecioMinimoUnidad > 0 and C.ImportePrecioMinimoUnidad > C.ImportePrecioUnidad
    If F.PreguntarSiNo('Precio demasiado bajo','El precio de venta por unidad es inferior al precio de venta mínimo. ¿Desea continuar?',1) = 0 
        F.CancelarEvento 
    End If
Else

    If C.ImportePrecioMinimoUnidad > 0 and C.ImportePrecioMinimoUnidad > (C.ImporteTotalConcepto / C.CantidadUnidades)
        If F.PreguntarSiNo('Precio demasiado bajo','El precio final por unidad es inferior al precio de venta mínimo. ¿Desea continuar?',1) = 0 
            F.CancelarEvento 
        End If
    End If 

End If

Formulario_Iniciado_AgregarNuevo

if C.TextoPrincipal = ''
    C.TextoPrincipal = 'Sin concepto'
End If

Campo_Cambiado

@! Reserva
C.ReferenciaLote = ''


If C.ReferenciaProducto <> ''

    if C.ReferenciaProducto.EvaluarStock 
        F.CampoDesplegableAutoSeleccionarPrimerElemento(S.Fields.VentasIngresosLista.ReferenciaLote.id) 
    end if

    If C.ReferenciaProducto.AlertaAlVender <> '' 
        F.MsgBox(C.ReferenciaProducto.AlertaAlVender,0) 
    End If

End If


If C.ReferenciaProducto <> ''
    if C.ReferenciaProducto.NombrePublico <> ''
        C.TextoPrincipal = C.ReferenciaProducto.NombrePublico 
    else
        C.TextoPrincipal = C.ReferenciaProducto.TextoPrincipal 
    End If
End If


if C.ReferenciaElementoDePresupuestoDeVenta <> '' o C.ReferenciaRectificandoProductoVendido <> ''

else

    C.Cantidad = 1

end if

Campos utilizados: - Lista - Ventas / Ingresos > Producto

Formulario_TickRecalculo

num tipoBloqueado = 0

if C.ReferenciaProducto = ''
    if C.ReferenciaRecurso <> ''
        V.tipoBloqueado = 1
        C.Tipo = S.Enums.productonaturaleza.bien 
    end if 
else

    V.tipoBloqueado = 1
end if 



F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.TipoDeProducto.ID,'',v.tipoBloqueado)


If F.CampoHaSidoAfectadoEntreTicks(S.Fields.VentasIngresosLista.EvaluarStock.id)

    If C.ReferenciaProducto = '' 

        C.EvaluarStock = 0

    Else

        If C.ReferenciaProducto.EvaluarStock = 0 and C.EvaluarStock = 1 
            F.MsgBox('El producto no requiere seguimiento de lote.',0)
            C.EvaluarStock = 0
        End If

    End If


End If





F.CampoObligatorioMotivo(S.Fields.VentasIngresosLista.ReferenciaLote.id,'Requiere seguimiento de lote',C.EvaluarStock)

If C.EvaluarStock 
    F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaLote.id,'No requiere seguimiento de lote',0)
    F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.MovimientoDeInventarioAutomatico.id,'No evalúa inventario',0)
Else
    F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.ReferenciaLote.id,'No requiere seguimiento de lote',1)
    F.CampoBloqueadoMotivo(S.Fields.VentasIngresosLista.MovimientoDeInventarioAutomatico.id,'No evalúa inventario',1)
    C.ReferenciaLote = '' 
    C.MovimientoDeInventarioAutomatico = 0
End If

← Volver al índice