Venta mensual por ramo y agente

Función general

En esta transacción se emite un reporte que muestra las ventas mensuales por ramo, agencia y agente.

Información técnica

 

Venta mensual por ramo y agente

(AGL875)

Parámetros

Validaciones

No aplica.

Frecuencia de ejecución

A petición del usuario.

Requisitos

No aplica.

Instrucciones de ejecución

Este reporte se ejecuta desde el módulo de reportes de intermediarios con la opción menú de reportes de intermediarios.

Instrucciones en caso de interrupción

Volver a ejecutar.

Proceso batch

Proceso

Para seleccionar los campos de parámetros:
  • Agencia: Para mostrar los valores posibles para este campo se lee la tabla de agencias (table5555), y se muestran los registros de la tabla cuyo estado sea igual a '1-activo' (table5555.sStatregt = '1').

  • Para la determinación de la fecha de 'inicio' del período de búsqueda de pólizas, se toma la fecha del día (sysdate) y se le restan 6 meses, de ese resultado se toma el mes y el año y se arma la fecha pero con el primero de mes. Para la determinación de la fecha de 'fin' del período de búsqueda de pólizas, se toma la fecha del día (sysdate) y se toma el mes y el año y se arma la fecha pero con el último de mes. Para esto debe tomarse en cuenta el mes indicado para saber si el último día es 30 o 31 y si el mes es febrero, se debe verificar si el año es bisiesto o no, para saber, si el último día es 28 o 29. Por ejemplo, si la fecha del día es '15/02/2002', la fecha de inicio es '01/08/2001' y la fecha de fin es '28/02/2002'

    Para obtener la información que se mostrará en este reporte, se realiza el siguiente proceso:

    • Se leen de la tabla de certificados y pólizas (certificat y policy), todos aquellos registros de pólizas activas y emitidas en período determinado. Se utiliza la tabla temporal (temp_agl875), para guardar la información.
    • Al momento de ejecutar el reporte se lee la información de la tabla temporal (temp_agl875) agrupada y ordenada agencia (temp_agl875.nagency), agente (temp_agl875.intermed), ramo (temp_agl875.nbranch) y mes-año (temp_agl875.smonthyear).
    • La descripción de la agencia se ubica en la tabla de agencias (table5555), según el código de la agencia en tratamiento. Para el nombre del supervisor de la agencia se ubica en las tablas de agentes y clientes (intermedia y client, para agencia), según el código de la agencia en tratamiento. Para el nombre y el rut del agente, se busca en las tablas de agentes y clientes (intermedia y client, para agentes), según el código del agente en tratamiento. La descripción del ramo se ubica en la tabla de ramos (table10), según el código del ramo en tratamiento

    Efecto

    Se almacenan los datos en la tabla temporal denominada temp_agl875.
    Antes de usar la tabla, la misma no debe tener datos, por lo que se deberá eliminar toda la información que se encuentre en ella.

    Notas al programador

    Búsqueda de valores posibles de la tabla de agencias (table5555)

    Campos a seleccionar

  • nagency
  • sdescript
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Agencia nagency > 0 Se toman todas las agencias
    Estado del registro sstatregt = '1' Se toman las agencias válidas

    Búsqueda para la tabla de certificados y pólizas (certificat y policy)

    Campos a seleccionar

    • certificat.nbranch
    • certificat.nproduct
    • certificat.npolicy
    • certificat.ncertif
    • mes(certificat.ddate_origi)
    • año(certificat.ddate_origi)
    • policy.nintermed
    • policy.nagency

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Tipo de registro certificat.scertype = '2' Se toman sólo pólizas
    Código de ramo certificat.nbranch > 0 Se toman los certificados de cualquier todos los ramos
    Código de producto certificat.nproduct > 0 Se toman certificados de todos los productos
    Número de póliza certificat.npolicy > 0 Se toman todas las pólizas
    Número de certificado certificat.ncertif > 0 Se toman todos los certificados de todas las pólizas
    Estado del registro certificat.sstatusva not in ('2', '3') Se toman sólo las pólizas válidas. Valores según table181
    Fecha de efecto de la póliza certificat.ddate_origi >= 'Fecha inicial' calculada Fecha calcula en función del año indicado como parámetro en la transacción
    y certificat.ddate_origi <= 'Fecha final' calculada Fecha calcula en función del año indicado como parámetro en la transacción
    Mes de la fecha de efecto mes(certificat.ddate_origi) = table7013.ncodigint Mes en tratamiento
    Tipo de registro policy.scertype = certificat.scertype Tipo de registro en tratamiento
    Código de ramo policy.nbranch = certificat.nbranch Ramo en tratamiento
    Código de producto policy.nproduct = certificat.nproduct Producto en tratamiento
    Número de póliza policy.npolicy = certificat.npolicy Póliza en tratamiento
    Código de agente policy.nintermed is not NULL Pólizas con agante asociado
    Código de agencia policy.nagency = agencia indicada como parámetro Si se indicó una agencia como parámetro.
    o (or) policy.nagency is not NULL Si NO se indicó una agencia como parámetro.

    Búsqueda de descripción en la tabla de agencias (table5555)

    Campos a seleccionar

    • sdescript

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de la agencia nagency = temp_agl875.nagency Agencia en tratamiento

    Búsqueda para la tabla de agentes y clientes, por agencia (intermedia y client).

    En caso que la lectura arroje mas de un registro debe tomarse el primero de los registros

    Campos a seleccionar

    • client.scliename (nombre del supervisor de la agencia)

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de agencia intermedia.nagency = temp_agl875.nagency Agencia en tratamiento
    Tipo de agente intermedia.nintertyp = 5 Se toman el supervisor de la agencia
    Estado del agente intermedia.nint_status = 1 Se toman los agentes activos
    Fecha de anulación intermedia.dnulldate is NULL Se toman los agentes activos
    Código de cliente client.sclient = intermedia.sclient Cliente en tratamiento

    Búsqueda para la tabla de agantes y clientes, por agente (intermedia y client).

    Campos a seleccionar

    • client.sclient (nombre del agente)
    • client.scliename (rut del agente)

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de agente intermedia.nintermed = temp_agl875.nintermed Agente en tratamiento
    Código de cliente client.sclient = intermedia.sclient Cliente en tratamiento

    Búsqueda de descripción en la tabla de ramos (table10)

    Campos a seleccionar

  • sdescript
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de los ramos nbranch = temp_agl875.nbranch Ramo en tratamiento

    Archivo TEMP_AGL875

    En la tabla temporal temp_agl875 se almacena la información determinada en las condiciones de búsqueda antes indicada. Al momento de ejecutar el reporte, se extrae la información agrupada y ordenada por agencia (nagency), agente (nintermed), ramo (nbranch) y mes-año (smonthyear). Los campos que se deberán colocar en la tabla temporal son:

    Información

    Campo

    Valor

    Observación

    Código de ramo nbranch certificat.nbranch Ramo en tratamiento
    Código de producto nproduct certificat.nproduct Producto en tratamiento
    Número de póliza npolicy certificat.npolicy Certificado en tratamiento
    Número de certificado ncertif certificat.ncertif Certificado en tratamiento
    Código del agente nintermed certificat.nintermed Agente en tratamiento
    Código de agencia nagency certificat.nagency Agencia en tratamiento
    Mes-Año smonthyear mes(certificat.ddate_origi) + '-' + año(certificat.ddate_origi) Mes en tratamiento concatenado con un guión y concatenado con el año en tratamiento, con formato 'mm-yyyy'

    Fórmulas

    Sólo se van a mencionar los campos que manejen fórmula
    Totales
  • Productividad promedio: Campo 'Total pólizas emitidas' / 6, para la agencia, agente y ramo en tratamiento.
  • Total productividad promedio: Campo 'Total pólizas emitidas' / 6, para la agencia y agente en tratamiento.
  • Listados

    Encabezado
  • Página: "Página" + 'número de página'.
    • Título: "Venta mensual por ramo y agente".
    • "Al: " + 'fecha del día (sysdate)'.
    Cuerpo
    • Agencia-supervisor: Código de la agencia (temp_agl875.nagency), descripción de la agencia (table5555.sdescript) y nombre del supervisor (client.scliename). Se debe hacer ruptura de control por la agencia (temp_agl875.nagency).
    • Agente: Nombre del agente (client.scliename) y RUT (client.sclient). Se debe hacer ruptura de control por el agente (temp_agl875.nintermed).
    • Ramo: Descripción del ramo (table10.sdescript). Se debe hacer ruptura de control por el ramo (temp_agl875.nbranch).
    • Mes-año:  Mes y año de la información (table7013.smonthyear).
    • Pólizas emitidas: Es el número de registros contados en la tabla temp_agl875, según la agencia (temp_agl875.nagency), el agente (temp_agl875.nintermed), el ramo (temp_agl875.nbranch) y el mes-año (table7013.smonthyear).
    Totales
    • Total pólizas emitidas: Sumatoria de la columna 'Pólizas emitidas', para la agencia, agente y ramo en tratamiento.
    • Productividad promedio: Productividad promedio de los 6 meses en tratamiento, para la agencia, agente y ramo en tratamiento. Ver fórmula.
    • Total productividad promedio: Productividad promedio de los 6 meses en tratamiento, para la agencia y agente en tratamiento. Ver fórmula.