Cheques por préstamos y rescates

Función general

Listar los cheques que se han emitidos por concepto de préstamos y rescates (ya sean parciales o totales) de pólizas.

Información técnica

.

Cheques emitidos por préstamos y rescates

(OPL855)

Parámetros

  • Período
  • Validaciones

    Campo

    Descripción

    Error/adv

    Período - Desde

    Debe estar lleno
    04160

    Período - Hasta

    Debe estar lleno
    07164
    Debe ser mayor que la fecha "Desde"
    12120

    Frecuencia de ejecución

    No tiene una frecuencia de ejecución establecida, queda a juicio del usuario.

    Requisitos

    No hay requerimientos pre-establecidos para la ejecución de este reporte, sin embargo, se debe tener en cuenta que deben existir cheques por concepto de: "Anticipos de vida" o "Rescate de pólizas".

    Instrucciones de ejecución

    Ejecutar desde la opción de menú correspondiente dentro del módulo de Caja y bancos.

    Instrucciones en caso de interrupción

    Ejecutar nuevamente, este reporte no tiene efecto alguno sobre la información que procesa.

    Proceso batch

    Proceso

    Se leen de la tabla de cheques (Cheques), aquellos que cumplen con las condiciones siguientes:
    • NO se encuentran en estado: "Anulado" o "Caducado",
    • Han tomado ese estado en una fecha que se encuentra dentro del período indicado para la ejecución del reporte y
    • Se han emitido para préstamos de pólizas o para pagar rescates de pólizas.
    Luego, para cada cheque encontrado se obtiene la siguiente información:
    • El nombre del contratante de la póliza que da origen al cheque, para lo cual se lee la tabla de clientes (Client) luego de haber obtenido el RUT del contratante de la póliza de la tabla de figuras de la póliza (Roles).
    • El nombre del beneficiario del cheque, para lo cual se lee la tabla de clientes (Client)
    • La descripción del concepto del cheque, para lo cual se lee la tabla de conceptos de solicitud de cheque (Table293)
    • La descripción del estado del cheque, para lo cual se lee la tabla de estados del cheque (Table187)
    • La descripción de la oficina destino del cheque, para lo cual se lee la tabla de sucursales / zonas (Table9)
    Por último, se calcula el porcentaje del rescate o préstamo / anticipo en función del total permitido, para lo que se toma en cuenta lo siguiente:
     
    • Cuando el cheque se ha elaborado para un préstamo:
      • Se obtiene el monto máximo del préstamo / anticipo permitido para el producto al que pertenece la póliza para la que se elabora el cheque. Para ello, se lee la tabla de información general de productos de vida (Product_li). Luego, dicho monto se convierte a la moneda local para calcular el porcentaje del préstamo en función del total permitido
  • Cuando el cheque se ha elaborado para el pago de un rescate:
  • Se determina si el rescate es total o parcial, para lo cuál se lee la tabla de información general de la póliza (Policy). Si se trata de un un rescate parcial:
        • Se obtiene el monto máximo del rescate parcial permitido para el producto al que pertenece la póliza para la que se elabora el cheque. Para ello, se lee la tabla de información general de productos de vida (Product_li). Luego, dicho monto se convierte a la moneda local para calcular el porcentaje del rescate en función del total permitido
  • Si se trata de un rescate total:
  • La información de este reporte se ordena por los campos: Operación, Folio y Póliza.

    Notas para el programador

    Condición de búsqueda para la tabla de cheques (Cheques)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Estado de la solicitud o cheque nSta_cheque NOT IN (5,7) Se toman en cuenta los cheques que NO se encuentren en estado: "Anulado" (5) o "Caducado" (7)
    Fecha de estado de la solicitud o cheque dStat_date >= 'fecha desde' Se toman en cuenta aquellos cheques cuya fecha de estado sea igual o posterior a la "Fecha desde", del período indicado para la ejecución del reporte
    dStat_date <= 'fecha hasta' Se toman en cuenta aquellos cheques cuya fecha de estado sea igual o anterior a la "Fecha hasta", del período indicado para la ejecución del reporte
    Concepto por el que se realiza el cheque nConcept IN (10, 11) Se toman en cuenta aquellos cheques que han sido emitidos por los conceptos: "Anticipos de vida" (10) o "Rescate de pólizas" (11)
    Condición de búsqueda para la tabla de figuras de la póliza (Roles)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Tipo de registro sCertype = '2' Se toman solo los registros de pólizas
    Código de ramo comercial nBranch = cheques.nBranch Se toma en cuenta el ramo de la póliza por la que se emite el cheque
    Código de producto nProduct = cheques.nProduct Se toma en cuenta el producto de la póliza por la que se emite el cheque
    Número de póliza nPolicy = cheques.nPolicy Se toma en cuenta la póliza por la que se emite el cheque
    Número de certificado nCertif = 0
    Figura del cliente en la póliza nRole = 1 Se toma en cuenta solo el contratante de la póliza
    RUT del cliente sClient > ''
    Fecha de efecto dEffecdate <=  cheques.dDat_propos Se toman en cuenta registros cuya fecha de efecto sea anterior o igual a la fecha de solicitud del cheque
    Fecha de anulación dNulldate IS NUL
    ó dNulldate > cheques.dDat_propos Se toman en cuenta registros cuya fecha de anulación sea posterior a la fecha de solicitud del cheque
    Condición de búsqueda para la tabla de clientes (Client, para obtener el contratante de la póliza)
     

    Información

    Campo

    Operador

    Valor

    Observación

    RUT del cliente sClient = roles.sClient Se toma en cuenta el cliente titular de la póliza para la que se hace el préstamo o se paga el rescate
    Condición de búsqueda para la tabla de clientes (Client, para obtener el beneficiario del cheque)
     

    Información

    Campo

    Operador

    Valor

    Observación

    RUT del cliente sClient = cheques.sClient Se toma en cuenta el cliente beneficiario del cheque en tratamiento
    Condición de búsqueda para la tabla de conceptos de solicitud de cheques (Table293)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Concepto nConcept = cheques.nConcept Se toma en cuenta el concepto del cheque en tratamiento
    Condición de búsqueda para la tabla de estados del cheque (Table187)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Código de estado del cheque nSta_cheque = cheques.nSta_cheque Se toma en cuenta el estado del cheque en tratamiento
    Condición de búsqueda para la tabla de sucursales/zonas (Table9)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Código de la sucursal nOffice = cheques.nOffice Se toma en cuenta la sucursal del cheque en tratamiento
    Condición de búsqueda para la tabla de información general de productos de vida (Produc_li)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Código de ramo comercial nBranch = cheques.nBranch Se toma en cuenta el ramo de la póliza por la que se emite el cheque
    Código de producto nProduct = cheques.nProduct Se toma en cuenta el producto de la póliza por la que se emite el cheque
    Fecha de efecto dEffecdate <=  cheques.dDat_propos Se toman en cuenta registros cuya fecha de efecto sea anterior o igual a la fecha de solicitud del cheque
    Fecha de anulación dNulldate IS NUL
    ó dNulldate > cheques.dDat_propos Se toman en cuenta registros cuya fecha de anulación sea posterior a la fecha de solicitud del cheque
    Condición de búsqueda para la tabla de información general de la póliza (Policy)
     

    Información

    Campo

    Operador

    Valor

    Observación

    Tipo de registro sCertype = '2' Se toman en cuenta solamente registros del tipo "Póliza" (2)
    Código de ramo comercial nBranch = cheques.nBranch Se toma en cuenta el ramo de la póliza por la que se emite el cheque
    Código de producto nProduct = cheques.nProduct Se toma en cuenta el producto de la póliza por la que se emite el cheque
    Número de póliza nPolicy cheques.nPolicy Se toma en cuenta la póliza para la cual se solicitó el cheque
    Una póliza ha sido rescatada totalmente cuando su estado es "Rescatada" (policy.sStatus_pol = "9").
    Los montos expresados en pesos, se obtienen al convertir cada monto de su moneda original respectiva, a la moneda local (que para el caso de VisualTIME en Consorcio es pesos). Para ello se debe hacer uso de la rutina de conversión del sistema: "insCalConvertExchange2".

    Fórmulas

    % Rescate en función al máximo permitido
    Cuando se trate de un rescate parcial, el porcentaje a presentar en el reporte se calcula aplicando la siguiente fórmula:
     
    (Monto del rescate * 100) / Monto máximo del rescate parcial
    Dónde,
    Monto del rescate, es el monto del cheque elaborado para el pago del rescate (cheques.nAmount_local)
    Monto máximo del rescate parcial, es el monto máximo permitido por el producto (al que pertenece la póliza) para rescates parciales (product_li.nAMaxSurr, expresado en la moneda local). En caso de que este valor sea igual a cero (0), entonces el resultado del porcentaje debe ser cero (0).
    Cuando se trate de un rescate total, el porcentaje a presentar en el reporte se calcula aplicando la siguiente fórmula:
     
    El porcentaje a presentar será cien (100)
    NOTA: es importante destacar que el monto máximo permitido para rescates parciales se debe convertir a la moneda local, tomando en cuenta que se encuentra expresado en la moneda indicada en el producto (product_li.nCurrency) y que la fecha para realizar dicha conversión debe ser la fecha de efecto del producto (product_li.dEffecdate).
    % Préstamo en función al máximo permitido
    (Monto del préstamo * 100) / Monto máximo del préstamo/anticipo
    Dónde,
    Monto del préstamo, es el monto del cheque elaborado para un préstamo (cheques.nAmount_local)
    Monto máximo del préstamo/anticipo, es el monto máximo permitido por el producto (al que pertenece la póliza) para préstamos o anticipos (product_li.nAMaxLoans, expresado en la moneda local). En caso de que este valor sea igual a cero (0), entonces el resultado del porcentaje debe ser cero (0).
    NOTA: es importante destacar que el monto máximo permitido para préstamos se debe convertir a la moneda local, tomando en cuenta que se encuentra expresado en la moneda indicada en el producto (product_li.nCurrency) y que la fecha para realizar dicha conversión debe ser la fecha de efecto del producto (product_li.dEffecdate).

    Listados

    En el encabezado:
    • "Informe de cheques emitidos por préstamos y rescates entre" + 'fecha desde del período' + " y " + 'fecha hasta del período' (justificado al centro)
    • "Fecha" + fecha de ejecución del reporte (justificado a la derecha)
    • "Hora" + hora de ejecución del reporte (justificado a la derecha)
    En el detalle:
    • "Folio": el número de cheque pagado (cheques.sCheque)
    • "Póliza": el número de póliza a la que se le hace el préstamo o rescate que se paga mediante este cheque (cheques.nPolicy)
    • "Nombre del contratante": (client.sCliename)
    • "Cheque a favor": nombre del beneficiario del cheque (client.sCliename)
    • "Operación": la descripción corta del concepto del cheque (table293.sShort_des)
    • "% Resc": el porcentaje del préstamo en función del total permitido (% Préstamo en función del máximo permitido), en caso de que el cheque se haya hecho por concepto de "Anticipos de vida" (10); o el porcentaje del rescate en función del total permitido (% Rescate en función del máximo permitido), en caso de que el cheque se haya hecho por concepto de "Rescate de pólizas" (11)
    • "F Solicitud": la fecha de solicitud del cheque (cheques.dDat_propos)
    • "F Pago": la fecha en que se paga el cheque (cheques.dStat_date)
    • "E. Ch.": el estado del cheque (table187.sShort_des)
    • "Of. Dest": es el código y glosa corta de la oficina destino del cheque (table9.nOffice + table9.sShort_des)
    • "Monto en $": el monto del cheque expresado en pesos o moneda local (cheques.nAmount_local)
    • "Monto en M.O.": el monto del cheque expresado en la moneda original (cheques.nAmount)
    NOTA: el campo "Cheque a favor" se coloca alineado con el campo "Nombre del contratante" pero en la línea inmediata inferior
    En la línea de totales:
    • "Total de cheques para préstamos": cantidad de cheques encontrados para el reporte (count(*)); suma de todos los cheques encontrados para el reporte (sum(cheques.nAmount_local))
    En el pie de página:
    • "Página nro.": contador de pagina del reporte