Generación de cesiones de primas

Función general

Este proceso se encarga de generar las cesiones de coaseguro, reaseguro facultativo y reaseguro obligatorio proporcional correspondientes a las pólizas emitidas por la empresa.
El programa también genera una "cesión" para el negocio aceptado, sea de reaseguro o coaseguro. Obviamente, en este caso se trata de un registro para efectos de cálculo, que no guarda relación con el documento de cesión propiamente dicho.

Información técnica

Notas para el programador

El usuario introduce la fecha hasta la cual quiere generar las cesiones.
En la tabla de realización de los últimos procesos se encuentra un registro que indica la última vez que fue ejecutado el programa (ctrol_date)..

Generación de cesiones de prima

(CRL001)

Parámetros

Fecha desde: Fecha de efecto minima de los movimientos de recibos que deben ser tomados en cuenta para la generación de cesiones de prima.

Fecha hasta: Fecha de efecto máxima de los movimientos de recibos que deben ser tomados en cuenta para la generación de cesiones de prima.

Tipo de ejecución:

Preliminar: Indica que el proceso se genera de modo preliminar (se lista la información procesada, pero no se realiza la cesión de primas cuando corresponda ni se realizan actualizaciones a la base de datos). Esta opción se muestra seleccionada en su defecto.

Definitivo: Indica que el proceso se genera de modo definitivo (se lista la información procesada, se realiza la cesión de primas cuando corresponda y también se realizan las actualizaciones de a la base de datos).

:

Validaciones

Campo

Descripción

 Error/adv

Fecha hasta 

Debe estar llena.
06025
Si este campo está lleno, debe ser posterior a la última fecha de ejecución del proceso.
06024
 
Debe ser mayor a la fecha del día.
7161
 
La fecha hasta debe ser mayor o igual a la fecha desde.
1132

Frecuencia de ejecución

Mensual, pero puede ser a petición del usuario.

Requisitos

Se deben ejecutar antes los procesos: Renovación/Facturación de pólizas, Aniversario de coberturas, Exclusión automática de asegurados, Cancelación automática de pólizas, Imputación automática de PAC/Transbank.
Se recomienda que se ejecute después de haber generado los asientos contables automáticos de primas (CPL011) del módulo de Contabilidad.

Instrucciones de ejecución

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

Instrucciones en caso de interrupción

Volver a ejecutar el reporte.

Proceso batch

Proceso

Se ejecuta el proceso de cesiones pasándole como parámetros:
  • Fecha hasta del proceso, dado como parámetro.
  • Si el "tipo de procesamiento='1' (cesiones de primas) entonces :
    Se leen las pólizas (policy) que cumplan con las siguientes condiciones:
    Si el tipo de procesamiento ='1' y  la póliza en tratamiento se encuentra en “coaseguro” (policy.sCoinsuri=1):
    • Se leen los movimientos de recibos (premium_mo) que cumplan con las siguientes condiciones:
      • Fecha del computador (premium_mo.dCompdate) sea menor o igual a la fecha de ejecución del proceso.
      • El indicador de movimiento tomado en cuenta para la generación de cesiones de co/reaseguro esté apagado (premium_mo.sCessiCoi<>1).
      • El tipo de movimiento del recibo (premium_mo.nType) sea igual a: Cobro de prima (2), Devolución de prima (3), Reverso de cobro (4), Reverso de devolución (5), Reverso de cobro por devolución de cheque (19), Rechazo de pago (22).
    • Se verifica el tipo de movimiento del recibo y el tipo de recibo (cobro o devolución) para asignarle el signo a la cesión:
      • Cobro de prima (2) signo positivo (+)
      • Devolución de prima (3) signo negativo
      • Reverso de cobro (4) signo negativo (-)
      • Reverso de devolución (5) signo positivo (+)
      • Reverso de cobro por devolución de cheque (19): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-)
      • Rechazo de pago (22): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-)
    • Por cada recibo involucrado se busca el desglose de prima (detail_pre) asociado a este recibo. Los desgloses de prima a tomar en cuenta son todos a excepción de los del tipo "impuesto".
    • Se lee la tabla de distribución de coaseguro (coinsuran) para buscar la distribución de coaseguro vigente de la póliza a la fecha de ejecución del proceso.
    • Por cada desglose de prima y distribución de coaseguro (compañía participante) se realiza el cálculo y generación de la cesión de prima de coaseguro:
      • Cesión de prima = Monto de prima (detail_pre.nPremium) * Porcentaje de participación (coinsuran.nShare) / 100
      • Gastos administrativos = Cesión de prima * Porcentaje de gastos (coinsuran.nExpenses) / 100
    Si la póliza - certificado en tratamiento se encuentra en “reaseguro” (certificat.sReinsura=1):
    • Se lee la tabla de distribución de reaseguro (reinsuran) para buscar la distribución de reaseguro vigente de la póliza - certificado a la fecha de ejecución del proceso. La información se ordena por los campos: Cliente, Módulo, Cobertura, Tipo de contrato y código de compañía.
    • Si el tipo de registro es diferente a  “facultativo puro” (reinsuran.nType_rein <>4):
      • Se lee la tabla de contratos proporcionales (contrproc) para buscar las condiciones del contrato en asociado a la distribución en tratamiento.
      • Si la opción de de generación de cesiones según lo recaudado está encendida (contrproc.sGencess=1):
        • Si tipo de procesamiento ='1' (cesiones de primas):
          • Se leen los movimientos de recibos (premium_mo) que cumplan con las siguientes condiciones:
              • Fecha del computador (premium_mo.dCompdate) sea menor o igual a la fecha de ejecución del proceso.
              • El indicador de movimiento tomado en cuenta para la generación de cesiones de co/reaseguro esté apagado (premium_mo.sCessiCoi<>1).
              • El tipo de movimiento del recibo (premium_mo.nType) sea igual a: Cobro de prima (2), Devolución de prima (3), Reverso de cobro (4), Reverso de devolución (5), Reverso de cobro por devolución de cheque (19), Rechazo de pago (22).
          • Se leen los movimientos de las cuotas de contratos (draft_hist) que cumplan con las siguientes condiciones:
            •  
              • Fecha del computador (draft_hist.dCompdate)  sea menor o igual a la fecha de ejecución del proceso.
              • El indicador de movimiento tomado en cuenta para la generación de cesiones de co/reaseguro sea igual a "no procesado" (draft_hist.sCessicoi is Null or sCessiCoi='2') .
              • El tipo de movimiento de la cuota (draft_hist.nType) sea igual a: Cobro de prima (2), Reverso de cobro (3), Reverso de cobro por devolución de cheque (8), Rechazo de pago (11).
        • Si tipo de procesamiento ='2' (margen de solvencia):
            • Se leen los movimientos de recibos (premium_mo) que cumplan con las siguientes condiciones:
              • Nro de recibo = recibo procesado (el seleccionado de Margin_polDet).
             
              • El tipo de movimiento del recibo (premium_mo.nType) sea igual a: Cobro de prima (2), Devolución de prima (3), Reverso de cobro (4), Reverso de devolución (5), Reverso de cobro por devolución de cheque (19), Rechazo de pago (22).
            • Se leen los movimientos de las cuotas de contratos (draft_hist) que cumplan con las siguientes condiciones:
                            •  
                • Fecha del computador (draft_hist.dCompdate)  sea menor o igual a la fecha de ejecución del proceso.

                •  
                • Nro de contrato= Nro de contrato del margen (el seleccionado de Margin_polDet).
                • El tipo de movimiento de la cuota (draft_hist.nType) sea igual a: Cobro de prima (2), Reverso de cobro (3), Reverso de cobro por devolución de cheque (8), Rechazo de pago (11).
        • Se verifica el tipo de movimiento del recibo/cuota y el tipo de recibo (cobro o devolución) para asignarle el signo a la cesión:
          • Del recibo (premium_mo):

          • Cobro de prima (2) signo positivo (+)
            Devolución de prima (3) signo negativo
            Reverso de cobro (4) signo negativo (-)
            Reverso de devolución (5) signo positivo (+)
            Reverso de cobro por devolución de cheque (19): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-)
            Rechazo de pago (22): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-) De la cuota (draft_hist):
            Cobro de prima (2) signo positivo (+)
            Reverso de cobro (3) signo negativo (-)
            Reverso de cobro por devolución de cheque (8): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-)
            Rechazo de pago (11): Si el recibo es de "cobro", signo positivo (+). Si el recibo es de "devolución" signo negativo (-)
        • El importe de cesión de prima a calcular es por un mes (cesión de prima mensual).
          Nota: Si tipo de procesamiento ='1' (cesiones de primas) y la frecuencia de pago de la póliza es distinta a “mensual”, el sistema no actualiza el registro de movimiento de recibo (premium_mo) como procesado. Esta actualización se realiza solo cuando la “fecha hasta del recibo” (premium.dExpirdat) sea menor o igual a la fecha de ejecución del proceso.
      • Si la opción de de generación de cesiones según lo recaudado está apagada (contrproc.sGencess<>1):
        • El importe de cesión de prima a calcular es por un mes (cesión de prima mensual).
    • Si el tipo de registro es igual a “facultativo puro” (reinsuran.nType_rein=4):
      • Se obtiene el monto de prima para el asegurado/cobertura en tratamiento de la tabla de coberturas de la póliza (cover.nPremium).
      • Al monto encontrado se le aplica el porcentaje de participación indicado para la distribución de reaseguro (reinsuran.nShare).
      • El importe de cesión de prima a calcular es por un mes (cesión de prima mensual).
      • Cesión de prima = Monto de prima * Porcentaje de participación (reinsuran.nShare) / 100
      • Comisión = Cesión de prima * Porcentaje de comisión (reinsuran.nCommissi) / 100
    Si el tipo de capital que maneja el contrato para calcular la cesión de prima es “Capital en riesgo” (contrproc.sCap_Nom_ri=1):

    Se procede a calcula el capital a utilizar en la cesión de prima

  • Se lee la tabla de coberturas (cover) para obtener el capital de la cobertura en tratamiento
  • Se ejecuta la rutina de calculo de la "reserva matemática” asociada a la cobertura
  • Se obtiene el importe de retención asociado a la cobertura (reinsuran) para la cobertura en tratamiento
  • Capital = (Capital de la cobertura – Reserva) – Retención
  • Si el tipo de capital que maneja el contrato para calcular la cesión de prima es “Capital nominal” (contrproc.sCap_Nom_ri=2):

    Se procede a calcula el capital a utilizar en la cesión

        • Se lee la tabla de coberturas (cover) para obtiene el capital de la cobertura en tratamiento
        • Capital = Capital de la cobertura (cover.nCapital)
      Si tipo de procesamiento ='2' (margen de solvencia):
        El capital calculado anteriormente para la cesión es el que corresponde al capital cedido en el margen de solvencia.
    Si la opción de calculo de cesión de prima por cobertura está encendida (contrproc.sCessPrcov = 1):
      • Según la cobertura asociada a la distribución de reaseguro en tratamiento, se lee la tabla de cálculo de cesiones por cobertura (contr_cescov) para buscar la forma de calcular la cesión de prima.
      • Si el tipo de capital que maneja el contrato para calcular la cesión de prima para la cobertura es “Capital en riesgo” (contr_cescov.sCap_Nom_ri=1):
      • Si el tipo de capital que maneja el contrato para calcular la cesión de prima es “Capital nominal” (contr_cescov.sCap_Nom_ri=2):
      • Si se indicó una “Tasa fija” (contr_cescov.nRate <> 0), entonces:
          Cesión de prima = Capital * Tasa / 1000
      • Si se indicó una “Monto fijo” (contr_cescov.nCessPrFix <> 0), entonces:
          Cesión de prima = Cesión de prima + Monto fijo
      • Si se indicó una “Rutina” (contr_cescov.sRouCess <> " "), entonces
      • Si se indico que la cesión se encuentra incluida en otra cobertura (contr_cescov.sInOtherCov=1), entonces el sistema no realiza el calculo de la cesión de prima para esta cobertura (no aplicaría ni recargos ni comisión).
      • Si no se indicó ninguna forma de calculo de cesión de prima, o no se encontró información en la tabla (contr_cescov) para la cobertura en tratamiento:
      • Pasos a ejecutar si no existe forma de cálculo de la cesión de prima:
        • Si la opción de de generación de cesiones según lo recaudado está encendida (contrproc.sGencess=1), se obtiene el monto de prima para el asegurado/cobertura en tratamiento de la tabla de desglose de prima (detail_pre.nPremium) según el recibo asociado al movimiento que se procesa.
        • Si la opción de de generación de cesiones según lo recaudado está apagada (contrproc.sGencess<>1), se obtiene el monto de prima para el asegurado/cobertura en tratamiento de la tabla de coberturas de la póliza (cover.nPremium).
        • Al monto encontrado se le aplica el porcentaje de participación indicado para la distribución de reaseguro asociada al asegurado/cobertura y compañías participantes en el contrato (part_contr).
            Cesión de prima = Monto de prima * Porcentaje de participación (reinsuran.nShare) / 100
    Si la opción de calculo de cesión de prima por cobertura está apagada (contrproc.sCessPrcov <> 1):
  • Si se indicó una “Tasa fija” (contrproc.nRate <> 0), entonces: Cesión de prima = Capital * Tasa / 1000
  • Si se indicó una “Monto fijo” (contrproc.nCessPrFix <> 0), entonces: Cesión de prima = Cesión de prima + Monto fijo
  • Si no se indicó ninguna forma de calculo de cesión de prima:
  • Pasos a ejecutar si no existe forma de cálculo de la cesión de prima:
        • Cesión de prima = Monto de prima * Porcentaje de participación (reinsuran.nShare) / 100
      Si tipo de procesamiento ='2' (margen de solvencia):
        • Se obtiene la clasificación de la cobertura en tratamiento.
        • La cesión de prima se calcula en moneda origen y en moneda local Ésta última se obtiene al convertir la cesión de prima de la moneda original a la moneda local (código reservado de moneda 1). Para ello se debe hacer uso de la rutina de conversión del sistema: "insCalConvertExchange2". Es importante destacar que la fecha que se utilice para convertir los montos en el caso de este proceso es la fecha de emisión del recibo (premium.dIssuedat)


      Si tipo de procesamiento ='1' (cesiones de primas), se calcula la comisión sobre la cesión de prima calculada en los pasos anteriores. Se obtiene la comisión sobre la cesión de prima.

      Si la opción de aplicar recargos sobre la cesión de prima está encendida (contrproc.sExtraPrem=1), entonces se aplican los recargos para la cesión de prima calculada en los pasos anteriores (Cesión de sobreprima).
      Se calcula la cesión de prima: Cesión de prima + Cesión de sobreprima
      Si tipo de procesamiento ='1' (cesiones de primas), se calcula la comisión sobre la cesión de prima:  Comisión sobre la prima (sin recargos) + Comisión sobre la prima recargada
    Cálculo de la comisión sobre la cesión de prima
      Si la opción de comisión por cobertura está encendida (contrproc.sCommCov=1):
    • Se lee la tabla de comisión por cobertura de un contrato (contr_comm) para obtener el porcentaje de comisión correspondiente según la cobertura y contrato en tratamiento
    • Se identifica en que período (1er año o Años subsiguientes) se encuentra la póliza/certificado en tratamiento según la fecha de inicio de vigencia de la póliza y la fecha de ejecución del proceso
    • Si el período es “1er año”: Comisión = Cesión de prima * Porcentaje de 1er año (contr_comm.nFirst_year) / 100
    • Si el período es “Años subsiguientes”: Comisión = Cesión de prima * Porcentaje años subsiguientes (contr_comm.nNext_year) / 100
      Si la opción de comisión por cobertura está apagada (contrproc.sCommCov<>1):
      • Comisión = Cesión de prima * Porcentaje / 100
    Cálculo de recargos sobre la cesión de prima:
    Se leen todos  los “Recargos/Descuentos” asociados a la póliza/certificado en tratamiento (disc_xprem). Por cada “recargo/descuento” se toman en cuenta solo aquellos que apliquen para el cliente (rol) / cobertura en tratamiento (dsex_condi).

    Si tipo de procesamiento ='2' (margen de solvencia) se obtiene la clasificación de la cobertura en tratamiento.

    Por cada recargo/descuento se procede a aplicar el cálculo correspondiente:
    • Si se indicó un porcentaje de recargo/descuento al nivel de la póliza/certificado en tratamiento (disc_xprem.nPercent <> 0), este es el porcentaje a tomar en cuenta para el cálculo. En caso contrario (disc_xprem.nPercent = 0), el porcentaje a tomar en cuenta es el indicado en el producto (dsex_condi.nRate):
      • Si el tipo de registro corresponde a "recargo": Cesión = (Cesión de prima * Porcentaje / 100)
      • Si el tipo de registro corresponde a "descuento": Cesión = - (Cesión de prima * Porcentaje / 100)
    • Se verifica si se indicó al nivel de la póliza/certificado en tratamiento un monto fijo de recargo/descuento (disc_xprem.nAmount <> 0):
      • Si el tipo de registro corresponde a "recargo": Cesión = Cesión + Monto fijo
      • Si el tipo de registro corresponde a "descuento": Cesión = Cesión - Monto fijo
    • Se realiza el calculo de la comisión sobre la "Cesión de sobreprima”:
      • Si la opción de comisión por cobertura está encendida (contrproc.sCommCov=1):
          • Se lee la tabla de comisión por cobertura de un contrato (contr_comm) para obtener el porcentaje de comisión correspondiente según la cobertura y contrato en tratamiento
          • Comisión = Cesión * Porcentaje recargo permanente (contr_comm.nPermExp) / 100)
        • Si la opción de comisión por cobertura está apagada (contrproc.sCommCov<>1):
          • Comisión = Cesión * Porcentaje / 100
      • Se acumula la cesión de sobreprima: Cesión de sobreprima = Cesión de sobreprima + Cesión
      • Se acumula la comisión sobre la prima recargada: Comisión sobre la prima recargada = Comisión sobre la prima recargada + Comisión
    Se leen todos los recargos/descuentos por asegurado (insured_expdis) asociados a la cobertura que se procesa. Además, se toman en cuenta los registros que no tienen asociada una cobertura en especifica (insured_expdis.nCover = 0).
    Por cada recargo/descuento se procede a aplicar el cálculo correspondiente:
    • Si el tipo de registro corresponde a "recargo":
      • Si la unidad es igual a "tasa" (insured_expdis.sUnit=1), entonces: Cesión = Capital * Tasa / 1000
      • Si la unidad es igual a "porcentaje" (insured_expdis.sUnit=2), entonces: Cesión = Cesión de prima * Porcentaje / 100
      • Si se indicó un monto fijo, entonces: Cesión = Cesión + Monto fijo
    • Si el tipo de registro corresponde a "descuento":
    • Si la unidad es igual a "tasa" (insured_expdis.sUnit=1), entonces: Cesión = - (Capital * Tasa / 1000)
    • Si la unidad es igual a "porcentaje" (insured_expdis.sUnit=2), entonces: Cesión = - (Cesión de prima * Porcentaje / 100)
    • Si se indicó un monto fijo, entonces: Cesión = Cesión - Monto fijo
  • Se realiza el calculo de la comisión sobre la "Cesión de sobreprima”:
    • Si la opción de comisión por cobertura está encendida (contrproc.sCommCov=1):
    • Se lee la tabla de comisión por cobertura de un contrato (contr_comm) para obtener el porcentaje de comisión correspondiente según la cobertura y contrato en tratamiento.
    • Si el tipo de recargo es “permanente” (insured_expdis.sPerm_Temp =1): Comisión = Cesión * Porcentaje recargo permanente (contr_comm.nPermExp) / 100)
    • Si el tipo de recargo es "temporal" (insured_expdis.sPerm_Temp =2): Comisión = Cesión * Porcentaje recargo temporal (contr_comm.nTempExp) / 100)
    • Si la opción de comisión por cobertura está apagada (contrproc.sCommCov<>1):
    • Comisión = Cesión * Porcentaje / 100
  • Se acumula la cesión de sobreprima: Cesión de sobreprima = Cesión de sobreprima + Cesión
  • Se acumula la comisión sobre la prima recargada: Comisión sobre la prima recargada = Comisión sobre la prima recargada + Comisión
  • Si tipo de procesamiento ='2' (margen de solvencia), a medida que se procesa la información, se irá agrupando y totalizando por:
     
    • Ramo (nBranch), Producto (nProduct), Moneda (Premium.nCurrency), Tipo de detalle (Cob, Rgo, Dcto), Módulo (nModulec), Cobertura (nCover) - Clasificación.
    • Ramo (nBranch), Producto (nProduct), Póliza (nPolicy), Moneda (Premium.nCurrency), Tipo de detalle (Cob, Rgo, Dcto), Módulo (nModulec), Cobertura (nCover)  - Clasificación .

    Efecto

    Por cada cesión de prima de coaseguro se genera un registro en la tabla de cesiones de prima de reaseguro (cession_prco)
    Por cada cesión de prima de reaseguro se genera un registro en la tabla de cesiones de prima de reaseguro (cession_pr)
    Por cada movimiento de recibo (premium_mo) tomado en cuenta para el proceso, se actualiza el indicador de tomado en cuenta para el proceso de cesiones.
    Por cada movimiento de cuota (Draft_hist) tomado en cuenta para el proceso, se actualiza el indicador de procesado en cesiones (sCessicoi).
    Al finalizar la ejecución del proceso:
  • Se actualiza el archivo de ejecución del proceso (ctrol_date) a fin de colocar la fecha de ejecución del proceso (pasado como parámetro) como fecha de última ejecución del proceso.
  • Se actualiza el archivo numerador (numerator) a fin de actualizar el número asociado a la relación de cesiones generada.
  • Otros Enlaces Relacionados

    Para mas información ver Index.html