Sistema Servidor Corporativo Alaro
alaro.no-ip.org
Principal
Documentación
Descargas

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.