Permite realizar el calculo del valor póliza de los productos de
Vida especial. Esta rutina es ejecutada desde varias partes del sistema
(Proceso de cálculo del valor póliza, Ilustraciones, Solicitud
de ilustración, movimiento de una cuenta de valor póliza,
etc.), en cada caso se toman algunas consideraciones especiales dependiendo
de los parámetros de entrada que se pasen a la rutina.
Información técnica
Identificación
Tipo
InsCalVP
Procedimiento
Parámetros de entrada
Ramo: Código de ramo asociado a la póliza en tratamiento.
Producto: Código del producto asociado a la póliza
en tratamiento.
Póliza: Número identificativo de la póliza
en tratamiento.
Certificado: Número identificativo del certificado en tratamiento.
Fecha de ejecución del proceso
Período de ejecución: Año y Mes en que se requiere
realizar el cálculo del valor póliza
Opción de ejecución del proceso:
1 – Actualizar el VP
2 – Proyectar el VP
3 – Recalcular el VP
4 – Proyectar el VP (sin pagos)
5 – Calculo temporal
Valor póliza al período anterior (solo si el proceso
en ejecución es “2”, “3”, “4”)
Prima adicional (solo si el proceso en ejecución es “2”,
“4”)
Prima proyectada anual (solo si el proceso en ejecución es
“2” )
Interes proyectado (solo si el proceso en ejecución es “2”,
“4”)
Valor de rescate (solo si el proceso en ejecución es “2”,
“4”)
Proceso
Se lee la tabla de datos particulares asociada a la póliza en
tratamiento (activelife) a la fecha de ejecución del proceso.
Se lee el código del módulo/plan asociado a la póliza
en tratamiento (modules) a la fecha de ejecución del proceso.
Si la póliza tiene asociado un “Convenio” (activelife.nAgrement
<> 0), la información a buscar en las tablas de comisiones (tab_comm_al)
y deducciones (disc_pb) se realiza según el código convenio
asociado a la póliza en tratamiento. En caso que la póliza
no se encuentre en convenio (activelife.nAgrement = 0 ó sin información),
la información a buscar en las tablas de comisiones (tab_comm_al)
y deducciones (disc_pb) se realiza con código convenio igual a cero
(0).
Se calcula el año y mes en que se encuentra la póliza
según la fecha de inicio de vigencia de la póliza y la fecha
de ejecución del proceso.
Se obtienen los intermediarios asociados a la póliza (commission),
código de la tabla de comisiones asociado al intermediario (intermedia)
y el porcentaje de participación de cada uno de ellos.
Se procede a llenar el vector de trabajo de coberturas con la información
de las coberturas asociadas a la póliza (cover) vigentes a la fecha
de ejecución del proceso. La información debe estar ordenada
por: Módulo, Código de cobertura y Asegurado.
El vector de trabajo de coberturas tiene la siguiente información:
Módulo
Cobertura (código de la cobertura)
Indicador de "cobertura básica". Los valores posibles son: 1 - Básica,
2 - Adicional
Tipo de duración de los pagos. Los valores posibles son: 1 – Edad
alcanzada , 2 – Años, 3 – según póliza
Duración del pago
Rutina de cálculo del costo cobertura (información de tab_covrol)
Tasa fija para el costo cobertura (información de tab_covrol)
Monto fijo para el costo cobertura (información de tab_covrol)
Indicador de "monto sobre el cual aplica el costo cobertura" (información
de tab_covrol). Los valores posibles son: 1 – Capital, 2 – Monto neto de
riesgo, 3 – No aplica
Indicador de cobertura afecta (información de life_cover).
Fecha de efecto de la cobertura
Asegurado (código de cliente)
Sexo asociado al asegurado (información de roles)
Fecha de nacimiento asociada al asegurado (información de roles)
Condición de fumador asociado al asegurado (información de
roles)
Capital
Prima básica de la cobertura (PBC)
Monto pagado a la cobertura (MPC)
Se obtiene la sumatoria del monto de prima (prima básica – PB)
de todas las coberturas vigentes a la fecha de ejecución del proceso
de la póliza en tratamiento.
Se procede a llenar el vector de trabajo de las capas con la información
de los movimientos de las coberturas asociadas a la póliza (lifecov_var)
vigentes a la fecha de ejecución del proceso, cuyo monto de prima
sea mayor a cero y sin fecha de anulación. La información
debe estar ordenada por módulo, cobertura, asegurado y número
de movimiento (capa).
El vector de trabajo de las capas tiene la siguiente información:
Módulo
Cobertura (código de la cobertura)
Asegurado (código de cliente)
Número de movimiento (capa)
Tipo de endoso o variación. Los valores posibles son: 1 - Endoso
de aumento, 2 - Endoso de disminución
Monto de prima asociado a la variación/capa (PC)
Monto de prima básica acumulada (PBA)
Monto de prima en exceso acumulada (PXA)
Monto pagado asociado a la variación/capa (PPC)
Monto pagado sobre la básica asociado a la variación/capa
(PPBC)
Monto pagado sobre el exceso asociado a la variación/capa (PPXC)
Cantidad de prima básica pagada asociada a la variación/capa
(CPPC)
Porcentaje de interés (i):
Si la opción de ejecución del proceso es igual a "1" o "3":
Se lee la tabla de rentabilidad del mes (tab_interest) según el
tipo de rentabilidad asociada a la póliza en tratamiento y la fecha
de ejecución del proceso.
Si el tipo de rentabilidad es “Fija”, se verifica si el porcentaje de rentabilidad
(RM) es menor al % de interés garantizado mínimo (IGM) asociado
a la póliza:
Si RM > IGM, entonces i = RM
Si RM <= IGM, entonces i = IGM
Si la opción de ejecución del proceso es igual a “2”, “4”
o “5”:
Se obtienen dos porcentajes de interes, ya que el
cálculo del valor póliza se debe realiza para ambos casos:
Si el parámetro "Interes proyectado" tiene valor,
entonces: iRM = Porcentaje de interés indicado como parámetro.
Si el parámetro "Interes proyectado" no tiene valor,
entonces: iRM = Porcentaje de interés o rentabilidad para la proyección
del valor póliza (activelife.nIntProyect)
iGM = Porcentaje de interés mínimo garantizado (activelife.nWarMinInt)
Si el tipo de rentabilidad es “Fija”, se verifica si el porcentaje de rentabilidad
(RM) es menor al % de interés garantizado mínimo (IGM) asociado
a la póliza:
Si iRM <= iGM, entonces iRM = iGM
Aportes del mes (primas pagadas). Solo si la opción
de ejecución del proceso es diferente a “4” y “5”:
Si la opción de ejecución del proceso es igual a "1":
Se buscan todos los movimientos de aportes de prima "AP" (move_accpol.nTypemov
= 8,9,10) que aún no han sido tomados en cuenta por este proceso
(move_accpol.sUse <> 1) y que su fecha (move_accpol.dMovedate) sea menor
o igual a la fecha de ejecución del proceso.
Por cada movimiento encontrado:
Se verifica si el movimiento de aporte de prima fue cancelado con “Cheque”,
para realizar esto se lee la tabla de movimientos de caja (cash_mov) según
el número de relación asociado al movimiento (move_accpol.nBordereaux).
Si existe un cheque asociado a la relación y el mismo no está
depositado, el movimiento no se toma en cuenta para procesarlo en el valor
póliza de este mes.
Si el movimiento se toma en cuenta, entonces se actualiza el indicador
para que no sea tomado en cuenta en la siguiente ejecución del proceso
(move_accpol.sUse = 1). Además, se totaliza el monto asociado al
movimiento para obtener el monto de aportes realizados en el mes (APM).
Si la opción de ejecución del proceso es igual a “2”:
Si se indicó como parámetro “prima proyectada anual”:
Se toma en cuenta este valor como el “aporte de prima anual” (prima proyectada)
para realizar el cálculo. Este monto puede ser igual a cero.
Si no se indicó como parámetro “prima proyectada anual” (sin
valor):
Se busca el importe de aporte de prima anual (prima proyectada) que corresponda
según el año en que se encuentra la póliza y la tabla
de “plan de pago de aportes” (per_deposit).
Si para el año en que se encuentra la póliza “no se encuentra
información” en la tabla de “plan de pago de aportes”, entonces
no se tienen aportes para el período a procesar (APM = 0).
Se calcula el monto del aporte de prima según el aporte de prima
anual, la frecuencia de pago asociada a la póliza y el factor que
corresponda según la tabla de “Frecuencias de pago permitidas para
el producto” (pay_fracti): AP = Aporte de prima anual * Factor según
frecuencia de pago
Si como parámetro fue informado el monto de “prima adicional”, el
sistema toma en cuenta este monto como el monto de “aporte del mes” (APM).
Si la opción de ejecución del proceso es igual a “3”:
Se buscan todos los movimientos de aportes de prima (move_accpol.nTypemov
= 8,9,10) en donde el año y mes asociado a cada movimiento
corresponda al período de ejecución indicado como parámetro
de entrada.
Se totalizan todos los movimientos encontrados en el paso anterior (APM).
Por cada aporte de prima se realiza la distribución del mismo
en prima básica y prima de exceso solo si la opción
de ejecución del proceso es diferente a "2":
Se calcula el “Monto pagado sobre la básica” (PSPB) = Aporte de
prima (AP) – (PB * Factor según frecuencia de pago)
Distribución del monto del aporte de prima entre las coberturas
de la póliza. Se recorre el vector de trabajo de coberturas,
y por cada registro:
Se calcula y actualiza en el vector de trabajo el “Monto pagado a la cobertura”
(MPC) = AP * PBC / PB.
Si la cobertura en tratamiento es la “básica” (información
de tab_lifcov), y el monto pagado sobre la básica (PSPB) es mayor
a cero:
El monto pagado a la cobertura es: MPC = MPC + PSPB
El monto de aporte de prima es: AP = AP - PSPB
Distribución del monto pagado a la cobertura (MPC) entre las
variaciones de la cobertura (capas), para obtener el monto pagado a la
cobertura/asegurado/capa (MPCC). Se recorre el vector de trabajo de
coberturas, y por cada registro:
Se recorre el vector de trabajo de las capas asociado al cobertura/asegurado
en tratamiento.
Por cada registro del vector de trabajo de las capas, se distribuye el
monto pagado de la cobertura (MPC) entre las diferentes “capas” o registros
del vector de trabajo de las capas:
Se calcula el monto de prima pagada asociada a la capa de la cobertura
(MPCC) = MPC * PC / PBC
Se calcula y actualiza, en el vector de trabajo de las capas, el “monto
pagado a la capa”: PPC = PPC + MPCC
Se calcula y actualiza, en el vector de trabajo de las capas, la cantidad
de prima básica pagada asociada a la variación/capa (CPPC):
CPPC = PPC / PC
Se realiza la distribución del monto pagado a la capa (MPCC) en
“Aplicada a básica de la capa” (PABC) y “Aplicada a exceso de la
capa” (PAXC):
Si el registro de la capa que se procesa corresponde a un “endoso de disminución”:
Se recorre el vector de trabajo de las capas asociados
a la cobertura/asegurado en tratamiento, y se obtiene la sumatoria de las
primas básicas acumuladas (SPBA), las primas de exceso acumuladas
(SPXA), y las primas (SPB) básicas de la capas.
Se calcula el “Número de primas acumuladas” (NPA) = (SPBA + SPXA)
/ SPB
Cálculo de la comisión correspondiente según el
monto pagado (aporte de prima):
Se lee la tabla de comisiones de Vida especial (tab_comm_al) según
la siguiente información: código de la tabla de comisión
asociado al intermediario, tipo de intermediario, canal de venta asociada
a la póliza, vía de pago asociada a la póliza, ramo
de la póliza, producto de la póliza, módulo asociado
a la variación/capa, cobertura a la variación/capa, código
de convenio asociado a la póliza, cantidad de prima básica
pagada a la variación/capa, y fecha de ejecución del proceso.
Se obtiene el porcentaje a aplicar para la prima pagada a básica
(PER_PB), y el porcentaje a aplicar para la prima pagada a exceso (PER_PX)
Se calcula el monto de comisión aplicada a la prima básica
(COM_PB): COM_PB = PPBC * PER_PB / 100
Se calcula el monto de comisión aplicada a la prima exceso (COM_PX):
COM_PX = PPXC * PER_PX / 100
Por cada registro del vector de trabajo de las capas procesado, solo si
la opción de ejecución del proceso es "1" o "3":
Se crea o actualiza el registro (dependiendo de la existencia previa del
mismo) en la tabla temporal de variaciones de coberturas de vida (t_lifecov_var)
con la siguiente información:
Monto de prima básica acumulada (PBA)
Monto de prima en exceso acumulada (PXA)
Monto pagado asociado a la variación/capa (PPC)
Monto pagado sobre la básica asociado a la variación/capa
(PPBC)
Monto pagado sobre el exceso asociado a la variación/capa (PPXC)
Cantidad de prima básica pagada asociada a la variación/capa
(CPPC)
Se crea o actualiza el registro (dependiendo de la existencia previa del
mismo) en la tabla temporal de desglose de un abono a la cuenta corriente
(t_det_payment) con la siguiente información.
Número de movimiento en la cuenta corriente (nIdMov)
debe ser igual al número de movimiento asociado al aporte de prima
en tratamiento.
Monto pagado sobre la básica asociado a la variación/capa
(PPBC)
Comisión sobre el monto pagado a la básica (COM_PB).
Monto pagado sobre el exceso asociado a la variación/capa (PPXC)
Comisión sobre el monto pagado en exceso (COM_PX).
Cantidad de prima básica pagada asociada a la variación/capa
(CPPC)
Cálculo de la comisión por cada aporte
realizado. Solo si la opción de ejecución del proceso es
igual “1” o “3”:
Se lee la tabla la tabla temporal de desglose de un abono a la cuenta corriente
(t_det_payment), se agrupa la información (se suman los montos de
comisión) por número de movimiento en la cuenta corriente
(nIdMov). De esta manera obtenemos el monto de comisión por cada
movimiento de aporte de prima procesado.
Por cada "grupo de registros" (aportes de prima) se procede de la siguiente
manera:
Se obtiene el número de recibo asociado al movimiento de aporte
de prima (move_accpol.nReceipt)
Se genera la información de la tabla temporal de comisiones de un
recibo (t_commiss_pr) según los intermediarios asociados a la póliza,
el porcentaje de participación de cada uno de ellos y el monto de
comisión corresponde al monto de comisión obtenido en los
pasos anteriores.
Cálculo de la prima neta. Solo si la opción
de ejecución del proceso es diferente a “4” y “5”:
Se calcula la “cantidad de primas básicas pagadas
” (CPBP), para realizar esto se suman todos los movimientos
de aportes de prima realizados hasta la fecha(SAP). Luego se obtiene el
monto de prima básica de la póliza (PB), y se calcula la
cantidad de primas básicas pagadas : CPBP = SAP / PB
Se lee la tabla de descuentos por prima básica (disc_pb) según
la siguiente información: tipo de intermediario, ramo de la póliza,
producto de la póliza, módulo asociado a la póliza,
código de convenio asociado a la póliza, cantidad de prima
básica pagada (CPBP), y fecha de ejecución del proceso.
Si la opción de ejecución del proceso es igual a “1” o "3":
Se obtiene el monto de prima pagada en el mes (SAPM), para realizar esto
se suman todos los movimientos de aportes de prima realizados eb el mes
procesados por el valor póliza.
La prima neta (PN) se calcula de la siguiente manera: Prima neta (PN) =
SAPM – (SAPM * % descuento)
Si la opción de ejecución del proceso es diferente de “1”
o "3":
La prima neta (PN) se calcula de la siguiente manera: Prima neta (PN) =
SAP – (SAP * % descuento)
Si la opción de ejecución del proceso es igual a “1” o “3”:
Se genera un movimiento en la tabla temporal de movimientos de una cuenta
corriente de la póliza (tmp_move_accpol) por el monto de prima neta
calculado (movimiento sin afectar el crédito o débito, solamente
indicando el monto).
Se actualiza el total de “primas netas” en la tabla temporal de cuenta
corriente de la póliza (t_account_pol).
Cálculo del interés ganado en el mes:
Si la opción de ejecución del proceso es igual a “1” o "3":
Se obtiene el Valor póliza al período anterior “VP(t-1)”.
Es decir, se busca el movimiento correspondiente a “Valor póliza”
en la tabla de movimientos de la cuenta corriente (move_accpol) para el
año/mes anterior que esté pendiente de procesar.
Si la opción de ejecución del proceso es diferente de “1”,
"3" y “5”:
El valor póliza al período anterior “VP(t-1)” es el indicado
como parámetro.
Se obtiene la sumatoria de “Rescates” realizados en el mes (SRt). Se toman
en cuenta todos los movimientos correspondientes a “Rescate de póliza”
en la tabla de movimientos de la cuenta corriente (move_accpol) según
el año y mes en proceso.
Por cada movimiento de rescate se realiza lo siguiente:
Se obtiene el día en que se realiza el rescate según la fecha
asociada al movimiento de recate.
Se calcula la cantidad de días que tiene el mes en que se realizó
el rescate.
Se obtiene el día en que se está ejecutando el proceso según
la fecha de ejecución del proceso.
Se aplica la siguiente formula y por cada rescate se totaliza el valor:
SR = Monto del rescate * (i/12) * ((Día del mes
– Día del rescate + 1) / Días del mes)
Si el parámetro "Valor de rescate" tiene valor, se aplica la siguiente
formula:
SR = Monto del rescate * (i/12)
Donde:
Monto de rescate = Valor del parámetro "Valor de rescate"
i = Porcentaje de interes
Si la opción de ejecución del proceso es igual a “1”o "3”:
Se calcula el interés ganado en el mes aplicando la siguiente formula:
Interés = ((VP(t-1) – SRt) * (i/12)) + SR
Se genera un movimiento en la tabla temporal de movimientos de una cuenta
corriente de la póliza (tmp_move_accpol) por el monto de interés
ganado (movimiento de crédito).
Se actualiza el total de “Intereses ganados” en la tabla temporal de cuenta
corriente de la póliza (t_account_pol).
Si la opción de ejecución del proceso es igual a “2”, “4”,
,
o “5”:
Se calcula el "interés ganado"
según la rentabilidad para la proyección Int_RM =
(VP(t-1) – SRt) * (iRM/12)
Se calcula el "interés ganado"
según el interés mínimo garantizado Int_GM
= (VP(t-1) – SRt) * ( iGM/12)
Cálculo de los costos de cobertura:
Se recorre se recorre el vector de trabajo de las coberturas, y por cada
elemento se realiza lo siguiente:
Se verifica si corresponde o no cobrar la cobertura según el tipo
de duración de los pagos asociada la misma:
Si el tipo de duración de los pagos es por "Edad Alcanzada":
Se calcula la edad real del asegurado asociado a la cobertura según
la fecha de nacimiento y la fecha de ejecución del proceso.
Si la edad calculada anteriormente supera la edad máxima permitida
para el período de pago asociado a la cobertura en tratamiento,
no se realiza el cálculo del costo cobertura para el asegurado/cobertura
en tratamiento.
Si el tipo de duración de los pagos es por "Años" , "Meses"
o "Días":
Se calcula la cantidad de años , meses o días (según
el tipo de duración de los pagos se calcula la que corresponda)
transcurridos desde la fecha de efecto de la cobertura y la fecha de ejecución
del proceso
Si la cantidad de años , meses o días calculados anteriormente,
supera los años , meses o días (según el tipo de duración
de los pagos que corresponda) máximos permitidos para el pago de
la cobertura en tratamiento, no se realiza el cálculo del costo
cobertura para el asegurado/cobertura en tratamiento.
Se verifica sobre que monto de suma asegurada se calcula el costo cobertura:
Si el indicador tipo de “aplica sobre” es igual a “capital”: El capital
a utilizar (K) es el asociado a la cobertura/asegurado en tratamiento.
Si el indicador de “aplica sobre” es igual a “monto neto de riesgo”: El
capital a utilizar (K) es el monto neto de riesgo, el cual se calcula
de la siguiente manera:
Si la opción de si opción de indemnización asociada
a la póliza es “A”, y el capital de la cobertura es mayor o igual
a la suma del Valor póliza del mes anterior y el 10% del capital
de la cobertura, entonces el capital a utilizar (K) es: Kc - VP
Si la opción de si opción de indemnización asociada
a la póliza es “A”, y el capital de la cobertura es menor a la suma
del Valor póliza del mes anterior y el 10% del capital de la cobertura,
entonces el capital a utilizar (K) es: 10% Kc.
Si la opción de si opción de indemnización asociada
a la póliza es “B”, entonces el capital a utilizar (K) es: Kc.
Kc = Capital asegurado asociado a la cobertura/asegurado.
VP = Valor póliza al período anterior (move_accpol).
Se busca el movimiento correspondiente a “Valor póliza” en la tabla
de movimientos de la cuenta corriente (move_accpol) para el año/mes
anterior que esté pendiente de procesar.
Se calcula el costo cobertura para la cobertura/asegurado en tratamiento:
Si el campo de "monto fijo para el costo cobertura" está lleno,
entonces: Costo cobertura = Monto fijo
Si el campo de "Tasa fija para el costo cobertura" está lleno, entonces:
Costo cobertura = K * Tasa/1000
Si el campo "Rutina de calculo para el costo cobertura" está lleno,
se realiza el llamado a la rutina de "costo cobertura" calculo asociada
a la cobertura (por ejemplo, ver rutina CC_VIDACTIVA).
Si la cobertura es “Afecta” se debe realizar el calculo del IVA asociado
a esta cobertura (buscar el porcentaje de IVA en la tabla tax_fixval).
El valor del impuesto calculado se debe llevar al campo correspondiente
en la tabla temporal de desglose de costos cobertura (t_det_costcov.nTax)
Se genera un registro en la tabla temporal de desglose de costos cobertura
(t_det_costcov) con el importe a cobrar por la cobertura/asegurado. Esto
se realiza solo si la opción de ejecución del proceso es
"1" o "3":
Nota: Se debe verificar la fecha de inicio de vigencia
de la cobertura, en caso que la misma sea mayor que el 1er día del
mes en proceso se debe “prorratear” el monto de costo de cobertura (y el
impuesto) por la cantidad de días que corresponda. Por ejemplo,
si la cobertura entró en vigencia el 15 de enero, y se está
procesando el mes de enero, el monto de prima (Costo cobertura) a cobrar
debe ser el correspondiente a 15 días (no el mes completo)
Si la opción de ejecución del proceso es "1" o "3":
Se genera un movimiento en la tabla temporal de cuenta corriente de la
póliza (tmp_move_accpol) por la sumatoria de todos los cargos realizados
(movimiento de débito).
Se actualiza el total de “Cargos por costos de coberturas” en la tabla
temporal de cuenta corriente de la póliza (t_account_pol).
Cálculo de los “Cargos fijos”:
Se calcula la cantidad de meses transcurridos de
la póliza según la fecha de inicio de vigencia y la fecha
de ejecución del proceso
Se procede a leer la tabla de “Cargos por plan” (plan_loads) según
los meses de vigencia de la póliza
y el capital de la cobertura básica . Por cada “cargo” se realiza
lo siguiente:
Si el tipo de cargo es “Cargo por capital”:
Se obtiene el capital de la cobertura de básica (cobertura de fallecimiento)
Cargo por Capital = (Capital de la cobertura básica * Tasa/100)
+ monto fijo
Si el tipo de cargo es diferente a “Cargo por capital”:
Cargo = Monto fijo
Si existe prorrateo del costo fijo se procede de la siguiente manera:
Se calcula el "delta costo": Costo fijo calculado – Costo a cobrar según
prorrateo.
Si el "delta costo" es mayor a cero, se calcula el mes y año en
donde se cobrará el delta costo según el mes y año
del proceso y la cantidad de meses a sumar (plan_loads.nMonths).
Se actualiza la información en la temporal de cuenta corriente (t_account_pol)
Se verifica si el año y mes en proceso corresponde al "año
y mes" en donde se cobra el "delta costo" (según los datos de la
tabla t_account_pol o account_pol, según el proceso que se ejecuta).
Si coinciden el costo del mes es igual al costo del mes + el "delta costo".
Si la opción de ejecución del proceso es "1" o "3":
Se genera un movimiento en la tabla temporal de cuenta corriente de la
póliza (tmp_move_accpol) por el cargo realizado (movimiento de débito)
Se actualiza el total de “Cargos fijos” en la tabla temporal de cuenta
corriente de la póliza (t_account_pol).
Nota: Se debe verificar la fecha de inicio de vigencia de la
póliza, en caso que la misma sea mayor que el 1er día del
mes en proceso se debe “prorratear” el monto del “Cargo” por la cantidad
de días que corresponda. Por ejemplo, si la póliza entró
en vigencia el 15 de enero, y se está procesando el mes de enero,
el monto de cargo debe ser el correspondiente a 15 días (no el mes
completo).
Cálculo del valor póliza:
Se buscan todos los movimientos de ajustes (12 al 17) y prima de
exceso (18) y prima de inyección (11) que aún
no han sido tomados en cuenta por este proceso (move_accpol.sUse <>
1) y que su fecha sea menor o igual a la fecha de ejecución del
proceso (se totalizan todos los movimientos). Por cada registro/movimiento
de ajuste tomado en cuenta se actualiza su indicador (move_accpol.sUse
=1) para que no sea tomado en cuenta en la siguiente ejecución del
proceso.
Se totalizan los “Costos de cobertura” y “Cargos” calculados en el proceso.
Se totalizan los “Rescates” (Rt) realizados en el mes (movimientos de la
cuenta corriente asociado a la póliza del tipo “rescate”)
Si la opción de ejecución del proceso es igual a “1" o “3”:
Se calcula el “Valor póliza” = VP(t-1) + PN + Intereses – Costos
– Cargos – Rt + Ajustes + Prima inyección + prima exceso
Se genera un movimiento en la tabla temporal de cuenta corriente de la
póliza (tmp_move_accpol) por el monto del valor póliza calculado
(movimiento sin afectar el crédito o débito, solamente indicando
el monto).
Se actualiza el “Valor póliza” en la tabla temporal de cuenta corriente
de la póliza (t_account_pol) indicando la fecha del último
movimiento.
Si la opción de ejecución del proceso es igual a “1”, entonces
se calcula el año/mes de próximo calculo del VP, y el mismo
se actualiza en la tabla temporal de cuenta corriente de la póliza
(t_account_pol)
Si el valor póliza era positivo y al realizar el cálculo
del nuevo valor póliza el mismo es menor que cero, entonces se actualiza
la fecha en que el valor póliza se hizo negativo (t_account_pol.dVP_Neg).
Si el valor póliza es positivo, y la fecha de “Valor póliza
en negativo” tiene valor, se actualiza este campo con valor “nulo” (sin
información), ya que el valor póliza pasó a ser positivo.
Si la opción de ejecución del proceso es igual a “2”, “4”,
“”, o “5”:
Si el parámetro "Valor de rescate" tiene valor, a los rescates realizados
en el mes (Rt) se le suma este valor: Rt = Rt + Valor de rescate
Se calcula el "valor póliza" según
la rentabilidad para la proyección = VP(t-1) + PN + Int_RM
– Costos – Cargos – Rt + Ajustes + Prima inyección+
prima exceso
Se calcula el "valor póliza" según
interés
mínimo garantizado = VP(t-1) + PN + Int_GM – Costos – Cargos – Rt
+ Ajustes + Prima inyección+ prima exceso
Notas para el programador
Si la opción de ejecución del proceso es igual a “1”:
Se deben crear y/o actualizar las tablas (move_accpol, account_pol, det_costcov,
det_payment, lifecov_var, commiss_pr) según los registros creados
en las respectivas tablas temporales.
Al realizar la actualización de la tabla de comisiones de un recibo
(commiss_pr) con la información de la tabla temporal (t_commiss_pr),
se totaliza el monto de comisión calculado y se actualiza el mismo
en la tabla de desglose de prima un recibo (detail_pre).
Se borran todos los registros asociados a la póliza en tratamiento
que se encuentren en las tablas temporales (tmp_move_accpol, t_account_pol,
t_det_costcov, t_det_payment, t_lifecov_var, t_commiss_pr)
Si la opción de ejecución del proceso es igual a “3”:
Para realizar la búsqueda de la información asociada a la
póliza (cover, activelife, commission, per_deposit, disco_expr,
roles, modules, etc.), la fecha a tomar en cuenta es la “fecha de ejecución
del proceso” (indicada como parámetro). De esta manera obtenemos
la información de la póliza a la fecha de ejecución
del proceso.
Se comparan los registros de variaciones de coberturas de vida entre lo
calculado por la función (t_lifecov_var) y los ya registrados en
la tabla de variaciones de coberturas de vida (lifecov_var)
Se comparan los movimientos de cuentas corrientes, para el mismo año
y mes indicado como parámetro, entre lo calculado por la rutina
(tmp_move_accpol) y los ya registrados en la tabla de movimientos de cuenta
corriente (move_accpol)
Por cada movimiento de aportes de prima (tmp_move_accpol.nTypemov
= 8,9,10), se comparan los registros de desglose de abono de cuentas corrientes
entre lo calculado por la función (t_det_payment) y los ya registrados
en la tabbla de desglose de abono a cuentas corrientes (det_payment).
Por cada movimiento de costo cobertura (tmp_move_accpo.nTypemov
= 5), se comparan los registros de desglose de costos cobertura entre lo
calculado por la función (t_det_costcov) y los ya registrados en
la tabla de desglose de costos cobertura (det_costcov).
Por cada registro en donde no exista una diferencia (movimiento de cuenta
corriente, variaciones de coberturas, desglose de abono a cuenta corriente,
costos cobertura) se elimina físicamente de las tablas temporales
(tmp_move_accpol, t_det_costcov, t_det_payment, t_lifecov_var). De esta
manera el sistema deja solo aquellos registros donde exista “diferencia”
en las tablas temporales, para luego ser tomados por los procesos correspondientes.
Parámetros de salida
Dependiendo de la opción de ejecución del proceso la
rutina devuelve los siguientes parámetros:
1 – Actualizar el VP: No se indican parámetros de salida.
2 – Proyectar el VP: Monto de valor póliza.
3 – Recalcular el VP: Información en las tablas temporales
4 – Proyectar el VP (sin pagos): Monto de valor póliza