Preparación de Cuentas Corrientes de Cobradores

Función general

Permite preparar y afectar las cuentas corrientes de los cobradores con sus respectivas comisiones.

Información técnica

.

Preparación de Cuentas Corrientes de Cobradores

(COL686)

Parámetros

Tipo de proceso:
Fecha inicial:  Fecha a partir de la cual se ejecuta el proceso. En su defecto muestra la última fecha de ejecución de este proceso (ctrol_date) y el usuario no puede cambiar su contenido. Fecha final:  Fecha hasta la cual se ejecuta el proceso. En su defecto muestra la fecha del día.
Tipo de cobrador:  Tipo de cobrador para el que se ejecuta el proceso. Valores posibles según tabla 5551.

Validaciones

Campo

Descripción

Error/adv

Fecha final

Debe estar lleno
09072
Debe ser posterior a la fecha inicial
60113

Tipo de cobrador

Debe estar lleno
55571

Frecuencia de ejecución

Normalmente es de ejecución mensual, pero se puede ejecutar a petición del usuario.

Instrucciones de ejecución

Este proceso se ejecuta desde el módulo de listados de este módulo con la opción menú de reportes por módulo.

Instrucciones en caso de interrupción

Volver a ejecutar

Proceso batch

Proceso

  • Para los recibos no financiados, se leen de las tablas de recibos, movimientos de recibos y cobradores (premium, premium_mo y collector), todos los movimientos de pago de recibos que tengan cobrador y cuya fecha esté comprendida entre el rango de fechas indicado como parámetro y que pertenezcan al área de seguros indicada como parámetro, la información debe extraerse ordenada por recibo (premium_mo.nreceipt) y transacción (premium_mo.ntransac).
  • Si el tipo de recibo es de cobro (premium_mo.ntype = 2) y el tipo de cobrador es igual al indicado como parámetro y la fecha de vigencia del movimiento del recibo está dentro del período indicado como parámetro.
    • Se determinan los días de atraso y se colocan en la variable 'dias_atraso', el valor viene de (premium_mo.dstatdate - premium.dlimitdate), si el valor es menor a cero se toma como cero.
    • Se lee la relación donde fue cobrada el recibo (colformref) de manera de obtener el canal o forma de ingreso, el cual es utilizado para obtener la comisión.
  • Se lee de la tabla de comisiones asignada al cobrador en tratamiento (collect_comm), para ello se utiliza la variable 'ndays_delay' y el monto del movimiento del recibo convertido a UT, para ello se convierte de la moneda del movimiento del la recibo (premium_mo.ncurrency) a UT (moneda 4), con la fecha del día (sysdate). Se hace uso de la rutina de conversión del sistema: 'insCalConvertExchange2', el resultado se coloca en la variable 'lcommis_uf'
  • De la lectura de la tabla de comisiones por cobrador se aplica el porcentaje (collect_comm.ncommpercent) al monto del movimiento (premium_mo.namount) y el monto (collect_comm.commamount) se convierte de la moneda de la comisión (collect_comm.ncurrency) a la moneda del movimiento (premium_mo.ncurrency) con la fecha del día, utilizando la rutina de conversión del sistema: 'insCalConvertExchange2'. De estos dos valores (porcentaje o monto) se toma el mayor y se coloca en la variable 'ncommission_pre', sabiendo que está expresado en la moneda del movimiento (premium_mo.ncurrency)
  • La información obtenida y calculada se almacena en la tabla temporal (tdetail_comis_collect). Antes de almacenar se debe ubicar el cliente asociado al cobrador del recibo (collector).
  • Para los recibos financiados, se leen de la tabla de recibos (premium) los recibos financiados
  • Por cada recibo financiado se lee de las tablas de giros de financiamiento, historia de giros y cobradores (financ_dra, draft_hist y collector), todos los movimientos de giros que tengan cobrador y cuya fecha esté comprendida entre el rango de fechas indicado como parámetro y que pertenezcan al área de seguros indicada como parámetro, la información debe extraerse ordenada por giro (draft_hist.ndraft) y transacción (draft_hist.ntransac).
  • Si el tipo de movimiento del giro es de cobro (draft_hist.ntype = 2) y el tipo de cobrador es igual al indicado como parámetro y la fecha de vigencia del movimiento del recibo está dentro del período indicado como parámetro.
    • Se determinan los días de atraso y se colocan en la variable 'dias_atraso', el valor viene de (premium_mo.dstatdate - premium.dlimitdate), si el valor es menor a cero se toma como cero.
    • Se lee la relación donde fue cobrada la cuota (colformref) de manera de obtener el canal o forma de ingreso, el cual es utilizado para obtener la comisión.
  • Se lee de la tabla de comisiones del cobrador en tratamiento (collect_comm), para ello se utiliza la variable 'ndays_delay' y el monto del movimiento del recibo covertido a UT, para ello se convierte de la moneda del movimiento del la recibo (draft_hist.ncurrency) a UT (moneda 4), con la fecha del día (sysdate). Se hace uso de la rutina de conversión del sistema: 'insCalConvertExchange2', el resultado se coloca en la variable 'lcommis_uf'
  • De la lectura de la tabla de comisiones por cobrador se aplica el porcentaje (collect_comm.ncommpercent) al monto del movimiento (draft_hist.namount) y el monto (collect_comm.commamount) se convierte de la moneda de la comisión (collect_comm.ncurrency) a la moneda del movimiento (draft_hist.ncurrency) con la fecha del día, utilizando la rutina de conversión del sistema: 'insCalConvertExchange2'. De estos dos valores (porcentaje o monto) se toma el mayor y se coloca en la variable 'ncommission_pre', sabiendo que está expresado en la moneda del movimiento (draft_hist.ncurrency)
  • La información obtenida y calculada se almacena en la tabla temporal (tdetail_comis_collect). Antes de almacenar se debe ubicar el cliente asociado al cobrador del giro (collector).
    • Por cada registro leido en la tabla, se utiliza la rutina del sistema "insmove_acc"
  • Para la emisión del listado se busca en la tabla tdetail_comis_collect. El nombre del cliente se ubica en la tabla de clientes (client), según el código de cliente, la descripción de la moneda se ubica en la tabla de monedas (table11), según el código de moneda, la descripción del ramo se ubica en la tabla de ramos (table10), según el código de ramo, la descripción del producto se ubica en la tabla de producto (prodmaster), según el código de ramo y el código de producto, la descripción de la sucursales se ubica en la tabla de sucursales (table9), según el código de sucursal, el contratante de la póliza se ubica en la tabla de pólizas (policy), según el ramo, producto y póliza .
  • Efecto

    Sólo si el proceso es definitivo, por cada cobrador procesado:
  • Se crea un movimiento en la cuenta corriente del cobrador en tratamiento tomando el monto mayor entre: el monto de comisión fijo de la tabla y el calculado según el porcentaje (move_acc) y se afecta el saldo de la cuenta (curr_acc). El tipo de cuenta que se afecta para cada cobrador es la cuenta que corresponda al tipo "Cuenta corriente de cobradores". Se almacena los datos en una tabla temporal, denominada tdetail_comis_collect. Antes de usar la tabla, la misma no debe tener datos, por lo que se deberá eliminar toda la información que se encuentre.
    • Si el régimen tributario del cobrador es "Retención", se crea un movimiento de retención en su cuenta corriente (move_acc)
    • Se actualiza el saldo de la cuenta corriente del cobrador (curr_acc)
    • Al finalizar el proceso se actualiza la tabla de última fecha de ejecución de procesos (ctrol_date).

    Notas al programador

    Búsqueda de recibos no financiados en las tablas de recibos, movimientos de recibos y cobradores (premium, premium_mo y collector)

    Campos a seleccionar

  • premium_mo.nreceipt
  • premium_mo.ntransac
  • premium_mo.namount
  • premium_mo.ncurrency
  • premium_mo.dstatdate
  • premium_mo.ntype
  • premium_mo.ncollector
  • premium.nbranch
  • premium.nproduct
  • premium.dlimitdate
  • premium.sreject
  • premium_mo.nexchange
  • collector.ncollectortype
  • collector.ncontype
  • premium.nstatus_pre
  • premium.npolicy
  • premium.noffice
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Estado del recibo premium.nstatus_pre in (2,5,6,7) Se toman los recibos activos/cobrados
    Tipo de recibo nvl(premium.ntype,1) = decode(premium.nstatus_pre,2,nvl(premium.ntype,1),1) Se toman los recibos de cobro
    Número de recibo premium_mo.nreceipt = premium.nreceipt Recibo en tratamiento
    Tipo de recibo premium_mo.scertype = premium.scertype Tipo de recibo en tratamiento
    Ramo premium_mo.nbranch = premium.nbranch Ramo en tratamiento
    Producto premium_mo.nproduct = premium.nproduct Producto en tratamiento
    Dígito premium_mo.ndigit = premiun.ndigit Dígito en tratamiento
    Parte del recibo premium_mo.npaynumbe = premium.npaynumbe Parte en tratamiento
    Código de cobrador collector.ncollector (+) = nvl(premium_mo.ncollector, 0) Cobrador en tratamiento

    Búsqueda de comisiones de para cobradores (collect_comm)

    Campos a seleccionar

  • collect_comm.ncommamount
  • collect_comm.ncurrency
  • collect_comm.ncommpercent
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Tipo de cobrador collect_comm.ncollectortype = collector.ncollectortype Tipo de cobrador en tratamiento
    Tipo de contrato del cobrador collect_comm.ncontype = collector.ncontype Tipo de contrato del cobrador en tratamiento
    Indicador de asignación de comisión collect_comm.scollecasig = premium.sreject Indicador de asignación de comisión en tratamiento
    Ramo collect_comm.nbranch = premium.nbranch Ramo en tratamiento
    Producto collect_comm.nproduct = premium.nproduct Producto en tratamiento
    Número inicial del rango de días de atraso de cobro collect_comm.ndaysini <= Variable 'ndays_delay' Días de atraso dentro del rango
    Número final del rango de días de atraso de cobro collect_comm.ndaysend >= Variable 'ndays_delay'
    Rango inicial de monto cobrado collect_comm.ninitrange <= Variable 'lcommis_uf' Comisión dentro del rango
    Rango final de monto cobrado collect_comm.nendrange >= Variable 'lcommis_uf'

    Búsqueda de recibos financiados en la tabla de recibos (premium)

    Campos a seleccionar

  • premium.nbranch
  • premium.nproduct
  • premium.dlimitdate
  • premium.sreject
  • premium.ncontrat
  • premium.nreceipt
  • premium.npolicy
  • premium.noffice
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Estado del recibo premium.nstatus_pre in (2,5,6,7,8) Se toman los recibos activos cobrados
    Tipo de recibo nvl(premium.ntype,1) = decode(premium.nstatus_pre,2,1,nvl(premium.ntype,1)) Se toman los recibos de cobro
    Número de recibo nvl(premium.ncontrat,0) > 0 Se toman los recibos financiados

    Búsqueda de giros de financiamiento, historia de giros y cobradores (financ_dra, draft_hist y collector)

    Campos a seleccionar

  • draft_hist.namount
  • draft_hist.ncurrency
  • draft_hist.ndraft
  • draft_hist.dstat_date
  • draft_hist.ntype
  • draft_hist.ncollector
  • collector.ncollectortype
  • financ_dradlimitdate
  • collector.ncontype
  • draft_hist.ntransac
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Estado del recibo financ_dra.nstat_draft in (1,2) Se toman los giros activos
    Tipo de recibo draft_hist.ncontrat = financ_dra.ncontra Contrato en tratamiento
    Número de recibo draft_hist.ndraft = financ_dra.ndraft Giro en tratamiento
    Tipo de recibo collector.ncollector = nvl(draft_hist.ncollector,0) Cobrador en tratamiento

    Búsqueda de cliente para cobrador, para recibo (collector)

    Campos a seleccionar

  • collector.sclient
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de cobrador collector.ncollector = premium_mo.ncollector Número de cobrador

    Búsqueda de cliente para cobrador, para contrato (collector)

    Campos a seleccionar

  • collector.sclient
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de cobrador collector.ncollector = draft.ncollector Número de cobrador

    Búsqueda del nombre del cliente (client)

    Campos a seleccionar

  • client.scliename
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de cliente client.sclient = tdetail_comis_collect.sclient Cliente en tratamiento

    Búsqueda de la descripción de la moneda (table11)

    Campos a seleccionar

  • table11.sdescript
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de la moneda table11.ncurrency = tdetail_comis_collect.ncurrency Moneda en tratamiento

    Búsqueda de la descripción del ramo (table10)

    Campos a seleccionar

    • sdescript

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de ramo nbranch = tdetail_comis_collect.nbranch Ramo en tratamiento

    Búsqueda de la descripción del producto (prodmaster)

    Campos a seleccionar

    • sdescript

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de ramo nbranch = tdetail_comis_collect.nbranch Ramo en tratamiento
    Código de producto nproduct = tdetail_comis_collect.nproduct Producto en tratamiento

    Búsqueda de la descripción de la sucursal (table9)

    Campos a seleccionar

    • sdescript

    Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Código de sucursal noffice = tdetail_comis_collect.noffice Sucursal en tratamiento

    Búsqueda del contratante (policy)

    Campos a seleccionar

  • policy.sclient
  • client.scliename
  • Condición de búsqueda

    Información

    Campo

    Operador

    Valor

    Observación

    Tipo de registro policy.scertype = '2' Sólo pólizas
    Código de ramo policy.nbranch = tdetail_comis_collect.nbranch Ramo en tratamiento
    Código de product policy.nproduct = tdetail_comis_collect.nproduct Producto en tratamiento
    Número de póliza policy.npolicy = tdetail_comis_collect.npolicy Póliza en tratamiento
    Código de cliente client.sclient = policy.sclient Cliente en tratamiento
     

    Archivo TDetail_Comis_Collect

    En la tabla temporal tdetail_comis_collect se almacena la información obtenida durante el proceso.
     
    Los campos que se deberán colocar en la tabla temporal son:

    Información

    Campo

    Valor

    Código de cobrador ncollector premium_mo.ncollector o draft_hist.ncollector
    Código de moneda ncurrency premium_mo.ncurrency o draft_hist.ncurrency
    Código de cliente sclient collector.sclient
    Identificador único nid búsqueda de siguiente consecutivo para el cobrador, moneda y cliente
    Tipo de cobrador ncollectortype Tipo de cobrador indicado como parámetro
    Código de ramo nbranch premium.nbranch
    Código de producto nproduct premium.nproduct
    Número de póliza npolicy premium.npolicy
    Número de recibo nreceipt premium_mo.nreceipt
    Número de contrato ncontrat premium.ncontrat
    Número de giro ndraft draft_hist.ndraft
    Monto de comisión ncommission sumatoria de la comisión determinada en el proceso
    Monto de retención nRetent Monto de retención calculado para cobradores por honorarios 
    Fecha límite dlimitdate premium.dlimitdate
    Fecha de cobro dcollectdate premium_mo.dstatdate ó draft_hist.dstat_date
    Sucursal noffice premium.noffice 
    Prima npremium premium_mo.namount ó draft_hist.namount 

    Listados

    Listado detalle
    En el encabezado:
    • Titulo: “Preparación de cuenta corriente de cobradores”
    • Tipo de proceso: (se debe mostrar la glosa "Preliminar" o "Definitivo", según corresponda).
  • Subtitulo: “Listado detalle”
  • Tipo de cobrador (tdetail_comis_collect.ncollector)
  • Cobrador (código y nombre) (tdetail_comis_collect.ncollector y client.scliename)
  • Fecha inicial
  • Fecha final
  • Moneda (table11.sdescript)
  • En el detalle:
  • Ramo (table10.sdescript)
  • Producto (prodmaster.sdescript)
  • Póliza (tdetail_comis_collect.npolicy)
  • Recibo (tdetail_comis_collect.nreceipt)
  • Contrato (Si el contrato asociado a la cuota procesada, incluye mas de un recibo de diferentes pólizas, en los campos anteriores se mostrará la palabra "varios". (tdetail_comis_collect.ncontrat)
  • Cuota (tdetail_comis_collect.ndraft)
  • Monto en moneda origen (la indicada en el encabezado) (tdetail_comis_collect.ncommission)
  • Fecha de límite de pago del recibo o cuota (tdetail_comis_collect.dlimitdate)
  • Fecha de cobro del recibo o cuota (tdetail_comis_collect.dcollectdate)
  • En los totales:
  • Total cobrado (sumatoria de los montos de los recibos y/o cuotas cobrados para el cobrador en tratamiento)
  • Número de recibos y/o cuotas cobrados
  • Listado resumen
    Encabezado:
  • Titulo: “Preparación de cuenta corriente de cobradores”
  • Subtitulo: “Libro comisiones  cobradores”
  • Sucursal (table9.sdescript)
  • Período inicio: Fecha inicial indicada como parámetro
  • Período termino: Fecha final indicada como parámetro
  • Cuerpo
  • Póliza: Número de póliza (tdetail_comis_collect.npolicy)
  • Ramo: Descripción del ramo (table10.sdescript)
  • Moneda: Descripción de la moneda (table11.sdescript)
  • Contratante: Nombre del contratante de la póliza (cliente.scliename, para contratante)
  • Prima pagada: Prima del movimiento (tdetail_comis_collect.npremium)
    • % de comisión: Porcentaje de comisión ("Comisión bruta" * 100 / "Prima pagada")
    • Comisión bruta: Monto de la comisión (sumatoria del tdetail_comis_collect.ncommission, por sucursal, póliza, ramo y moneda)
    • Monto de retención: monto de la retención calculada cuando se trata de un cobrador por honorarios.
    • Total comisión a pagar: monto total de comisión a pagar = comisión bruta - monto de retención

    Otros Enlaces Relacionados

    Mas Información ver el Índice