Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
usuario usuariows incorrecto
Aplicar descuentos según condiciones en el TPV
Supongamos un terminal de punto de venta, en una tienda, en el que queremos que según ciertas condiciones complejas, se aplique cantidades, descuentos o precios concretos. Puede tratarse de campañas de venta, artículos a los que queremos forzar una cierta cantidad, etc.
Existe tres posibles eventos en el momento de escoger un artículo que permiten forzar precio, cantidad y descuento:
- EjeTPV.Articulo.Precio: Ejecuta un script que permite sobreescribir el precio con el valor devuelto.
- EjeTPV.Articulo.Descuento: Ejecuta un script que permite sobreescribir el descuento a aplicar con el valor devuelto.
- EjeTPV.Articulo.Cantidad: Ejecuta un script que permite sobreescribir la cantidad a vender con el valor devuelto.
A continuación se presenta tres ejemplos para cada uno de los tres eventos:
Precio
Function Main (Criterio, Orden, Opciones)
'Averiguar la código del artículo
Grupo = BD.Cmp ("Articulo", "Codigo", Criterio, false)
'Condiciones de grupos
If Grupo = "Accesorios" Then Precio = 0 'Los accesorios se entregan gratuitamente
'El formulario TPV propondrá por defecto este precio para los artículos
'que cumplen la condición
Main = Cantidad
End Function
Cantidad
Function Main (Criterio, Orden, Opciones)
'Averiguar la código del artículo
Codigo = BD.Cmp ("Articulo", "Codigo", Criterio, false)
'Condiciones de códigos
If Codigo = "M23X" Then Cantidad = 2 'Este artículo necesita dos unidades
If Codigo = "M23RT" Then Cantidad = 4 'Este artículo necesita cuatro unidades
'El formulario TPV propondrá por defecto esta cantidad al escoger
'alguno de los artículos que cumplen la condicion
Main = Cantidad
End Function
Descuento
Function Main (Criterio, Orden, Opciones)
'Comprobar si el descuento está activado para la fecha actual.
'Los parámetros DescuentoTPVDesde y DescuentoTPVHasta indican
' el rango de fechas en que está activado
Desde = fpc.cFecha(Bd.Cnf ("DescuentoTPVDesde", "", ""))
Hasta = fpc.cFecha(Bd.Cnf ("DescuentoTPVHasta", "", ""))
If Date() < Desde Or Date() > Hasta Then Main = "" : Exit Function
'Si llegamos aqui, entonces descuento del 20%
Main = 20
End Function
El siguiente script, configurado, por ejemplo, en una opción de menú, permitiría editar cómodamente el rango de fechas para los descuentos y que se almacenarían en los parámteros "DescuentoTPVDesde" y "DescuentoTPVHasta".
Sub Main (Criterio, Orden, Opciones)
'Valores configurados actualmente
Desde = Bd.Cnf ("DescuentoTPVDesde", "", "")
Hasta = Bd.Cnf ("DescuentoTPVHasta", "", "")
If Not Interact.Aceptado Then
'Preguntar los valores, ofreciendo por defecto los configurados actualmente
Interact.Reinicia "Datos", "Rango de fechas para el descuento" : Interact.Cancelable = False
Interact.NuevoValor "Desde", "Desde", "Fecha", 0, Desde,"",""
Interact.NuevoValor "Hasta", "Hasta", "Fecha", 0, Hasta,"",""
Else
'Guardar los valores introducidos por el usuario como parámetros
Desde = fpc.CFe (Interact.Valor("Desde"))
Hasta = fpc.CFe (Interact.Valor("Hasta"))
Bd.CnfS "DescuentoTPVDesde", Desde, "",""
Bd.CnfS "DescuentoTPVhasta", Hasta, "",""
Interact.Reinicia "MensajeFinal", "Configurado desde " & Desde & " y hasta " & Hasta
End If
End Sub
