3.6 Punto de Venta : Promociones
Modo de Promoción : Porcentaje de Descuento
El sistema permite otorgar promociones del modo "Porcentaje de Descuento" directamente en el ticket en lugar de entregar un producto u objeto promocional.
La configuración se hace directamente en el módulo corporativo de control de promociones.
La selección de artículos participantes se hace de forma normal (un producto, todo un proveedor o cualquier mezcla que se necesite).
En la sección "En la compra de" en la "Cantidad" deberá indicar las escalas en pesos a partir de las cuales se manejarán los diferentes porcentajes.
En la sección "En la compra de" en "Tipo" deberá seleccionar la opción "PESOS".
En la sección "Se entrega en promoción" en la "Cantidad" deberá especificar los porcentajes correspondientes por escala.
En la sección "Se entrega en promoción" en "Tipo" deberá especificar la opción "PORCIENTO" y no es necesario seleccionar ningún producto a entregar.
No es necesario asignar existencias a este tipo de promociones. El control de vigencia se podrá hacer por medio de las fechas de inicio y fin de promoción.
En el ejemplo se interpreta que, sobre la mezcla de productos participantes se otorga un
10% en la compra de más de $ 100.00 pesos.
20% en la compra de más de $ 500.00 pesos.
30% en la compra de más de $ 1000.00 pesos.
Observaciones para el Punto de Venta
TIP : Recuerde que el signo "#" ingresado en donde se lee el código de barras le permite visualizar las promociones obtenidas en el ticket antes de emitirlo.
El sistema se ha optimizado para calcular también las devoluciones al precio disminuido en el porcentaje de descuento.
Manual (Sección Estructural)
Ubicación aplicativa | Punto de venta - Cálculo de promociones |
Ubicación configurativa | Corporativo - Compras -- Promociones --- Control |
Tipos de movimiento | caj01 prm01 |
Diccionario de Datos y Relaciones
Campo | Tabla | Tipo de Movimiento | Variable | Detalle |
vfoliog | movimientos | prm01 | prom_vfoliog | Folio de la promoción |
vcodpro | movimientos | prm01 | prom_vcodor1 | Código de la promoción |
vnumcte | movimientos | prm01 | prom_vnompro | Nombre de la promoción |
vrazaux | movimientos | prm01 | prom_vrazaux | Descripción en el ticket |
vrefer1 | movimientos | prm01 | prom_vrefer1 | Observaciones |
mcantid | movimientos | prm01 | prom_ecanti1 | En la compra de : Cantidad (rango 1) |
vdescri subcampo 1 (separador :) | movimientos | prm01 | prom_ecanti2 | En la compra de : Cantidad (rango 2) |
vdescri subcampo 3 (separador :) | movimientos | prm01 | prom_ecanti3 | En la compra de : Cantidad (rango 3) |
vdescri subcampo 5 (separador :) | movimientos | prm01 | prom_ecanti4 | En la compra de : Cantidad (rango 4) |
vdescri subcampo 7 (separador :) | movimientos | prm01 | prom_ecanti5 | En la compra de : Cantidad (rango 5) |
vdescri subcampo 9 (separador :) | movimientos | prm01 | prom_ecanti6 | En la compra de : Cantidad (rango 6) |
vatenci | movimientos | prm01 | prom_vatenci | En la compra de : Tipo |
vrazons | movimientos | prm01 | prom_vproart | En la compra de : Proveedor |
vnombre | movimientos | prm01 | prom_vnombre | En la compra de : Línea |
vfletey | movimientos | prm01 | prom_vespexc | En la compra de : Especial Excluyente |
vcodpro | movimientosd | prm01 | prom_vcodpro | Del producto : Código |
vfoliog | movimientosd | prm01 | prom_vfoliof | Del producto : Folio de la promoción |
vdescri | movimientosd | prm01 | prom_vdescri | Del producto : Descripción del producto |
mcanti1 | movimientos | prm01 | prom_mcanti1 | Doy : Cantidad (rango 1) |
vdescri subcampo 2 (separador :) | movimientos | prm01 | prom_mcanti2 | Doy : Cantidad (rango 2) |
vdescri subcampo 4 (separador :) | movimientos | prm01 | prom_mcanti3 | Doy : Cantidad (rango 3) |
vdescri subcampo 6 (separador :) | movimientos | prm01 | prom_mcanti4 | Doy : Cantidad (rango 4) |
vdescri subcampo 8 (separador :) | movimientos | prm01 | prom_mcanti5 | Doy : Cantidad (rango 5) |
vdescri subcampo 10 (separador :) | movimientos | prm01 | prom_mcanti6 | Doy : Cantidad (rango 6) |
vtelefa | movimientos | prm01 | prom_vtelefa | Doy : Tipo |
vcomori | movimientos | prm01 | prom_vcomori | Doy : Del producto |
vrefere | movimientos | prm01 | prom_vrefere | Doy : Descripción |
vgtotal | movimientos | prm01 | | Cantidad Inicial |
vimpdre | movimientos | prm01 | | Cantidad Entregada |
(vgtotal-vimpdre) | movimientos | prm01 | prom_vimpdre | Existencia disponible (límite 1) |
vpagosh | movimientos | prm01 | | Existencia reservada |
(vgtotal-vpagosh) | movimientos | prm01 | prom_vgtotal | Existencia disponible (límite 2) |
vimpdes | movimientos | prm01 | prom_vimpdes | Máximo a entregar |
vrefer7 | movimientos | prm01 | prom_vrefer7 | Porcentaje |
vfecham | movimientos | prm01 | | Fecha de inicio de promoción |
vfecapl | movimientos | prm01 | prom_vfecapl | Fecha de fin de promoción |
vsgsem1 | movimientos | prm01 | prom_vsgsem1 | Número de Expo |
vsgsem2 | movimientos | prm01 | prom_vsgsem2 | Sólo Cupones |
vsgsem3 | movimientos | prm01 | prom_vsgsem3 | Sólo App |
vdes001 | movimientos | prm01 | prom_vdes001 | Tope Promoción |
vcomres | movimientos | prm01 | prom_vcomres | Límite de Asignación |
vimpdes | movimientos | prm01 | prom_vimpdes | Máximo por Ticket |
vdes002 | movimientos | prm01 | prom_vdes002 | Tope Por Cliente |
vfletet | movimientos | prm01 | prom_vfletet | Tope de Entrada |
Algoritmos (en pseudocódigo) diferenciados para la obtención de los datos del "producto" que doy en promoción en el modelo normal y en modelo de descuento.
if {$prom_vtelefa=="PORCIENTO"} {
.set prom_vcomori "PORCIENTO"
.set prom_x_descri "DESCUENTO"
.set prom_x_unimed "%"
.set prom_u_exiact 1000000000
.set prom_y_exiact 1000000000
.set prom_x_exiact 1000000000
.set prom_vimpdre 10000000
.set prom_vgtotal 10000000
} else {
.set prom_x_datoor {split {msql "select vdescri,vunimed,vexiact from articulos where vcodpro=`$prom_vcomori`"}}
.set prom_x_descri {valchr {lindex $prom_x_datoor 1}}; if {{clength $prom_x_descri}==0} {set prom_x_descri $prom_vrefere}
.set prom_x_unimed {valchr {lindex $prom_x_datoor 2}}
.set prom_u_exiact {valnum {lindex $prom_x_datoor 3}}
.set prom_y_datoor {split {msql "select (vunicaj*vexiact) from articulos where vcodpro=`{cconcat $prom_vcomori C}`"}}
.set prom_y_exiact {valnum {lindex $prom_y_datoor 1}}
.set prom_x_exiact {expr $prom_u_exiact+$prom_y_exiact}
}
Algoritmos (en pseudocódigo) diferenciados para la cantidad del "producto" que doy en promoción en el modelo normal y en modelo de descuento así como cálculo de escalas.
if {$prom_vtelefa=="PORCIENTO"} {
.if {($prom_ecanti1>0)&&($prom_cantid_mul>=$prom_ecanti1)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti1)}}
.if {($prom_ecanti2>0)&&($prom_cantid_mul>=$prom_ecanti2)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti2)}}
.if {($prom_ecanti3>0)&&($prom_cantid_mul>=$prom_ecanti3)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti3)}}
.if {($prom_ecanti4>0)&&($prom_cantid_mul>=$prom_ecanti4)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti4)}}
.if {($prom_ecanti5>0)&&($prom_cantid_mul>=$prom_ecanti5)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti5)}}
.if {($prom_ecanti6>0)&&($prom_cantid_mul>=$prom_ecanti6)} {set prom_cantid_dee 1; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti6)}}
} else {
.if {($prom_ecanti1>0)&&($prom_cantid_mul>=$prom_ecanti1)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti1)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti1)}}
.if {($prom_ecanti2>0)&&($prom_cantid_mul>=$prom_ecanti2)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti2)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti2)}}
.if {($prom_ecanti3>0)&&($prom_cantid_mul>=$prom_ecanti3)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti3)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti3)}}
.if {($prom_ecanti4>0)&&($prom_cantid_mul>=$prom_ecanti4)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti4)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti4)}}
.if {($prom_ecanti5>0)&&($prom_cantid_mul>=$prom_ecanti5)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti5)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti5)}}
.if {($prom_ecanti6>0)&&($prom_cantid_mul>=$prom_ecanti6)} {set prom_cantid_dee {expr int($prom_cantid_mul/$prom_ecanti6)}; set prom_cantid_doy {expr int($prom_cantid_dee*$prom_mcanti6)}}
}
Algoritmos (en pseudocódigo) para insertar el descuento alcanzado en el ticket como una escala virtual alcanzada por los productos participantes.
if {$prom_vtelefa=="PORCIENTO"} {
.set l_pc {split {msql "select d.vrenglo,d.vcodpro from $ticket_promo where length(d.vcodpro)>$long_cod and POSITION(d.vcodpro IN `$prom_mcodpro`)"} \n}
.set y_pc {expr {llength $l_pc}-2}
.for {set x_pc 1} {$x_pc<=$y_pc} {incr x_pc 1} {
..set d_pc {split {lindex $l_pc $x_pc} }
..set pc_vcodpro {valchr {lindex $d_pc 2}}
. msq "update movimientosd set vcospro=(vimport*(1.00-($prom_cantid_doy/100.00))),vdto001=0,vdto002=1 where vtipmov=`caj01` and vfoliog=($v_vfocapg+0) and vcodpro=`$pc_vcodpro`"
.}
}
Modo de Promoción : Lleve y Pague Agrupando Iguales
El sistema permite otorgar promociones del modo "lleve y pague" realizando la mezcla de productos "iguales" para obtener el total y validar si se obtuvo la promoción.
Observaciones para el Punto de Venta
TIP : Recuerde que el signo "#" ingresado en donde se lee el código de barras le permite visualizar las promociones obtenidas en el ticket antes de emitirlo.
El sistema se ha optimizado para calcular también las devoluciones de sólo un tipo de mercancía aplicando proporcionalmente el valor del producto entregado sin cargo.
Los avisos descriptivos (que involucren la descripción del producto "regalado") podrán mostrar de forma aleatoria cualquiera de los "sabores" que lleva el cliente de forma indistinta.
En la impresión del ticket se señalará adjunto a sólo uno de los "sabores" de los productos agrupados el detalle de la promoción.
Observaciones para el Diseñador de Promociones
Sólo se agruparán para promociones "lleve y pague" aquellos productos que contengan un código agrupador en el campo "Igual con los" del módulo de "Productos y Servicios".
TIP : Los productos agrupados deberán tener condiciones idénticas para la promoción (campos : lleve, pague, fecha inicio, fecha fin, etc). Se recomienda activar el señalamiento "Iguales" en la pestaña de "Sucursales" del "Control de Productos y Servicios" para aplicar cambios y sincronizar todos los productos al mismo tiempo.
Manual (Sección Estructural)
Ubicación | Punto de venta - Cálculo de promociones |
Tipos de movimiento | caj01 |
Condiciones : productos con mismo articulos.smodelo y condiciones vigentes de mercancía sin cargo.
Modo de Promoción : Lleve y Pague Limitado
El sistema permite otorgar promociones del modo "lleve y pague" limitando el total de productos de regalo por ticket para un mejor control y distribución de presupuestos.
Observaciones para el Punto de Venta
En la consulta de productos se muestran promociones vigentes. En caso de limitadores se agrega la leyenda : (Limitado a 23 por ticket).
TIP : Recuerde que el signo "#" ingresado en donde se lee el código de barras le permite visualizar las promociones obtenidas en el ticket antes de emitirlo.
Observaciones para el Diseñador de Promociones
La configuración se realiza con la misma herramienta en donde se especifica la mercancía sin cargo (carpeta de sucursales). Es decir, que es posible aplicar difirentes límites a diferentes sucursales.
Manual (Sección Estructural)
Ubicación aplicativa | Punto de venta - Cálculo de Promociones |
Ubicación configurativa | Productos y Servicios - Sucursales -- Editar Mercancía Sin Cargo |
Tipos de movimiento | cajsc |
Módulos | pruebas_promos comun_emite_promos garmsc |
Diccionario de Datos y Relaciones
Campo | Tabla | Tipo de Movimiento | Variables | Detalle |
slimite | articulos | | | Limite (sucursal) |
slimite | sucursalesp | | | Limite (corporativo) |
Requerimientos
Es necesario reiniciar el sistema en la terminal de configuración de promociones para acceder al nuevo campo.
Es necesario reiniciar el sistema en el servidor de la sucursal ya que el nuevo limitador se alimenta por cambio de precios.
Es necesario reiniciar el sistema en la terminal de punto de venta para que tenga efecto el limitador.
Cálculo y Registro de Promociones de Mercancía sin Cargo
El sistema realiza el cálculo de la mercancía sin cargo obtenida en el ticket excepto en los siguientes casos :
Cuando el cliente está marcado para excepción de promociones.
Cuando la venta es a una sucursal marcada para excepción de promociones.
La señalización de excepción de promociones puede hacerse en el directorio dentro de la carpeta comercial.
Si el cliente o sucursal están marcados como excepción de promociones no serán calculadas ninguno de los dos tipos de promociones : ni promociones regulares ni de mercancía sin cargo.
De forma predeterminada todos los registros de directorio se dan de alta con las promociones activas.
Una vez emitido el ticket, en caso de existir promociones de tipo mercancía sin cargo se generarán los registros (cajsc) para consulta, estadística y facturación.
Si el usuario consulta únicamente las promociones obtenidas del ticket (con el signo "#") los registros cajsc no serán guardados en la base de daots sino hasta el momento de la emisión.
Manual (Sección Estructural)
Ubicación aplicativa | Punto de venta - Cálculo de Promociones |
Ubicación configurativa | Directorio - Comercial |
Tipos de movimiento | cajsc |
Permisos (1=NO 0=SI) | directorio.vpromoc |
Valor predeterminado | directorio.vpromoc = 0 |
Módulos | pruebas_promos comun_emite_promos garmsc |
Cálculo y Registro de Promociones de Mercancía sin Cargo
El sistema realiza el cálculo de la mercancía sin cargo obtenida en el ticket excepto en los siguientes casos :
Cuando el cliente está marcado para excepción de promociones.
Cuando la venta es a una sucursal marcada para excepción de promociones.
La señalización de excepción de promociones puede hacerse en el directorio dentro de la carpeta comercial.
Si el cliente o sucursal están marcados como excepción de promociones no serán calculadas ninguno de los dos tipos de promociones : ni promociones regulares ni de mercancía sin cargo.
De forma predeterminada todos los registros de directorio se dan de alta con las promociones activas.
Una vez emitido el ticket, en caso de existir promociones de tipo mercancía sin cargo se generarán los registros (cajsc) para consulta, estadística y facturación.
Si el usuario consulta únicamente las promociones obtenidas del ticket (con el signo "#") los registros cajsc no serán guardados en la base de daots sino hasta el momento de la emisión.
Manual (Sección Estructural)
Ubicación aplicativa | Punto de venta - Cálculo de Promociones |
Ubicación configurativa | Directorio - Comercial |
Tipos de movimiento | cajsc |
Permisos (1=NO 0=SI) | directorio.vpromoc |
Valor predeterminado | directorio.vpromoc = 0 |
Módulos | pruebas_promos comun_emite_promos garmsc |
Información relativa a la versión 1.6.10217 del Sistema Servidor Corporativo Alaro. El contenido de esta información puede variar con la versión actual del sistema dependiendo de modificaciones, adaptaciones y desarrollos particulares generados para cada cliente.
Estamos trabajando en estas páginas para proporcionar a Uds. acceso en forma electrónica a nuestros manuales estructurales y de operación. Ponemos a su disposición secciones selectas como demostracción recordándoles que el acceso ilimitado a la documentación completa se adquiere, por contrato, una vez adquiridos y liquidados nuestros productos y servicios a clientes que no presenten adeudos.