Page tree
Skip to end of metadata
Go to start of metadata

Solicitud de especificación de la lógica de decisión.


Importar Archivos de Conciliación

Nota

Para ejecutar el proceso de conciliación, la aplicación necesita nutrirse de datos. Estos datos se importan a través de archivos o por procesos automáticos. El proceso de import automático está parametrizado que se ejecute todos los días a las 04:00am. Por recomendación de nuestro DBA, para no cargar las BBDD durante los procesos de la diaria. Desde la Aplicación, el usuario puede ejecutar los imports manualmente también.

  • Transacciones del Pronet: Se importa desde el portal de Gestión Externa de Pronet, se descarga el Archivo "Detalle de transacciones (Fecha Proceso)" para importar los pagos hechos por medio de esta Boca de Cobranza.

  • Transacciones de Bancard/Infonet: Se importa el archivo "EXTRACTO" que proporciona Bancard para importar los pagos hechos por la Boca de Cobranza de Infonet, las transferencias Bancarias y las compras con QR de Infonet.

  • Transacciones del Sicoop: Se importa automáticamente desde las tablas del Sicoop Server.

    Import transacciones
    SELECT *
    FROM SICOOP.X_ORDENES xo
    WHERE xo.FEC_INICIO_PROCESAMIENTO BETWEEN To_date('2024-11-21 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND To_date('2024-11-21 23:59:59', 'yyyy-mm-dd  hh24:mi:ss');
  • Transacciones de Ceibo: Se importa automáticamente desde las tablas del autorizador. (tanto desde el LOG_TRANSACC_CR y desde el LOG_TRANSACC_CR_HIST para fechas anteriores)

    Import transacciones
    SELECT l.MOVEXTFCH, l.EMISOR AS EMISOR, l.NRO_CUENTA AS CUENTA, CREDITOPY.FC_CRIPTO2PAN@BAPY(l.NRO_TARJETA) AS Tarjeta, NVL(T.NOMBRE_PARA_PLASTICO, ' ') AS NOMBRE_PLASTICO, l.NRO_COMERCIO AS COMERCIO, 
    NVL(c.DESCRIPCION, REPLACE(L.CAN_CODE, '|', '/')) AS DESC_COMERCIO, to_char(l.FECHA, 'DD/MM/YYYY') AS FECHA, to_char(l.HORA, 'HH24:MI:SS') AS HORA, ROUND(l.IMPORTE) AS MONTO, 
    DECODE(L.CODIGO_OPERACION, 0, 'DB', 1, 'CR', 0) AS COD_OPERACION, l.PLAN AS PLAN_VENTA, pdv.DESCRIPCION AS TIPO_VENTA, l.CUOTAS, NVL(l.TIPO_AUTORIZACION, 'R') AS RESULTADO, l.NRO_AUTORIZACION AS AUTORIZACION,
    NVL(TRIM(l.NRO_TICKET), 0) AS NRO_BOLETA, l.CODIGO_ADQUIRIENTE, a.DESCRIPCION, l.NRO_RES AS COD_RESPUESTA, l.RES_INTERNO AS MOTIVO_RECHAZO, 
    CASE when presentacion is not null and presentacion > 0 THEN 'Cuponado' ELSE 'No Cuponado' end ESTADO_CUPON,
    NVL(c.RUC, ' ') RUC_COMERCIO, NVL(c.RAMO, -1) RAMO_COMERCIO, NVL(r.DESCRIPCION, 'NULO') DESC_RAMO_COMERCIO, NVL(lc.LIMITE , 0) LIMITE_PLAN,
    CASE WHEN l.TX_INTERNA = 'RETIRO' THEN CASE WHEN l.DISP_CONTADO > l.DISP_EFECTIVO THEN l.DISP_EFECTIVO ELSE l.DISP_CONTADO END WHEN l.PLAN = 9 THEN CASE WHEN l.DISP_CONTADO > l.DISP_SALUD THEN l.DISP_SALUD ELSE l.DISP_CONTADO END ELSE l.DISP_CONTADO END DISPONIBLE
    --SELECT * 
    --SELECT COUNT(*)
    FROM LOG_TRANSACC_CR_HIST l
    	INNER JOIN TARJETAS t ON t.TARJETA = l.NRO_TARJETA
    	INNER JOIN COMERCIOS c ON c.COMERCIO = l.NRO_COMERCIO
    	INNER JOIN PLANES_DE_VENTA pdv ON pdv.PLAN_VENTA = l.PLAN
    	INNER JOIN ACQUIRERS a ON a.ACQUIRER = l.CODIGO_ADQUIRIENTE
    	INNER JOIN RAMOS r ON r.RAMO = l.RAMO AND r.EMISOR_PROCESADOR = l.EMISOR_PROCESADOR 
    	INNER JOIN LIMITES_CUENTAS lc ON lc.PLAN_VENTA = l.PLAN AND lc.EMISOR = l.EMISOR AND lc.NUMERO_CUENTA = l.NRO_CUENTA
    WHERE l.MOVEXTFCH BETWEEN to_date('16092024000000','ddmmyyyyhh24miss') AND to_date('16092024235959','ddmmyyyyhh24miss')
    --AND l.NRO_TICKET = '486008714555'
    AND l.CODIGO_ADQUIRIENTE IN (10000000023, 10000000017, 490508, 490509)
    ORDER BY l.MOVEXTFCH;
  • Transacciones de Ceibo-Pagos: Se importa automáticamente desde las tablas del autorizador.(tanto desde el LOG_TRANSACC_CR y desde el LOG_TRANSACC_CR_HIST para fechas anteriores)

    Import transacciones
    SELECT 	l.EMISOR, CASE WHEN l.NRO_COMERCIO = '805001' THEN '1' WHEN l.NRO_COMERCIO = '115001' THEN '1' WHEN l.NRO_COMERCIO = '805505' THEN '505' WHEN l.NRO_COMERCIO = '805502' THEN '502' END SUCURSAL,
    		CASE WHEN l.NRO_COMERCIO = '805001' THEN 'CABAL' WHEN l.NRO_COMERCIO = '115001' THEN 'DIMO' WHEN l.NRO_COMERCIO = '805505' THEN 'SICOOP -RECEPTOR DE PAGOS' WHEN l.NRO_COMERCIO = '805502' THEN 'PRONET -RECEPTOR DE PAGOS' END BOCA_COBRANZA,
    		l.NRO_CUENTA AS NUMERO_CUENTA, CREDITOPY.FC_CRIPTO2PAN@BAPY(l.NRO_TARJETA) AS TARJETA, t.NOMBRE_PARA_PLASTICO AS USUARIO_TARJETA, l.MOVEXTFCH AS FECHA_MOVIMIENTO, DECODE(l.CODIGO_OPERACION, 0, 'DB', 1, 'CR') CODIGO_OPERACION, l.IMPORTE,
    		l.TIPO_AUTORIZACION, l.NRO_TICKET AS NUMERO_TICKET
    --SELECT COUNT(*)
    --SELECT *
    FROM LOG_TRANSACC_CR_HIST l
    	INNER JOIN TARJETAS t ON t.TARJETA = l.NRO_TARJETA
    WHERE l.MOVEXTFCH BETWEEN to_date('030220230000','ddmmyyyyhh24mi') AND to_date('030220232359','ddmmyyyyhh24mi')
    AND l.NRO_COMERCIO IN ('805505', '805001', '805502', '115001','50001')
    ORDER BY l.MOVEXTFCH;
  • Transacciones de Atlas: Se importa automáticamente desde el servicio proveído por Atlas.

    URL
    http://10.5.1.38:8790/api/sipap/v1/operaciones/consultar
  • Transacciones de Pisp/Spi: Se importa automáticamente desde el servicio proveído por Fic.

    URL
    http://10.5.1.38:8098/pisp/v1/consulta/fic
  • Transacciones de Fic: Se importa automáticamente desde el servicio proveído por Fic.

    URL
    https://mdw.cabal.coop.py/api/sipap/fic/v1/movimientos/listar
  • Transacciones de Interfisa: Se importa automáticamente desde el servicio proveído por Interfisa.

    URL
    https://mdw.cabal.coop.py/api/sipap/interfisa/v1/movimientos/listar


Una vez cargado todos esos archivos, el usuario puede seguir con el proceso de conciliación.



Proceso de Conciliación


Nota

El proceso de Conciliación está dividido en 12 Procesos y cada uno de estos procesos contienen otros subprocesos. A continuación se describirán los procesos ejecutados.

1- Manejo de Reversos:

      En este subproceso, se recorren todas las transacciones del sicoop donde el idSesion contenga el string "REVERSA". Dependiendo si el estado de la transacción en el Sicoop es 'ACEP', entonces marca el ESTADO_CONCI = 'REVERSA_ACEP' cualquier estado distinto, marca como 'REVERSA_RECH'.

      Este proceso lo que permite es no controlar 2 veces la misma transacción de reverso, puesto que se controlan en procesos posteriores, cuando se concilia la transacción original.

2-  Proceso de Conciliación Sicoop - Ceibo.

      2.1- Entran las transacciones del Sicoop que cumplen estos requisitos:

  • El Participante Origen es uno de estos valores: 1600, 3601.
  • El Participante Destino es uno de estos valores: 1600, 3601, 4003, 4004, 4005, 4006.
  • El idSesion no contiene el texto "REVERSA".

     En este subproceso, se recorren todas las transacciones del Sicoop que cumplan los requisitos mencionados anteriormente y se divide la búsqueda entre transacciones con estado 'ACEP' en el Sicoop y estados distintos a 'ACEP'.

        Transacciones Aceptadas en el Sicoop:

             Para cada transacción, se divide la búsqueda por los datos del origen y destino de la transacción.

Transacciones Aceptadas en el Sicoop:

Para el origen:

       Busca entre las transacciones importadas de Ceibo cruzando el idTxOriginante por el nroBoleta siempre y cuando el tipo de movimiento en ceibo sea 'DB'.

  • Si encuentra, marca como &ExisteOrigen = true
    • Revisa la columna RESULTADO y DESC_RECHAZO que deben estar 'A' y 'Transacción OK' en ceibo
      • Si está con el estado que corresponde:
        • Revisa si el estado en Ceibo es 'Cuponado':
          • Si está cuponado, entonces &CuponadoOrigen = true, &EstadoOrigen = 'TRX VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo, estado valido y Cuponado.'
          • Si no está cuponado, entonces &CuponadoOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo, estado valido pero no cuponado.'
      • Si no está con el estado que corresponde, &ExisteOrigen = false, &CuponadoOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo pero con estado no valido.'
  • Si no encuentra queda &ExisteOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y NO Existe en Ceibo'

       Si el participante destino es alguno de estos participantes: (4003, 4004, 4005, 4006). Vuelve a validar la transacción con los datos de Bepsa, por lo tanto. Busca en la tabla del MDW (LOG_TRANSACCION) cruzando la columna ID_OPERACION_ORIGINANTE = idTxOriginante del Sicoop, recuperando el ID_OPERACION_PARTICIPANTE. y vuelve a hacer el mismo control anterior donde cruza contra el nroBoleta.

  • Si encuentra, marca como &ExisteOrigen = true
    • Revisa la columna RESULTADO y DESC_RECHAZO que deben estar 'A' y 'Transacción OK' en ceibo
      • Si está con el estado que corresponde:
        • Revisa si el estado en Ceibo es 'Cuponado':
          • Si está cuponado, entonces &CuponadoOrigen = true, &EstadoOrigen = 'TRX VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo, estado valido y Cuponado (con el Id de Bepsa).'
          • Si no está cuponado, entonces &CuponadoOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo, estado valido pero no cuponado (con el Id de Bepsa).'
      • Si no está con el estado que corresponde, &ExisteOrigen = false, &CuponadoOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y Existe en Ceibo pero con estado no valido (con el Id de Bepsa).'
  • Si no encuentra queda &ExisteOrigen = false, &EstadoOrigen = 'TRX NO VALIDA ORIGEN - Estado ACEP en el Sicoop, y NO Existe en Ceibo (con el Id de Bepsa).'


Para el destino:

       Controla que el tipo de Operación no sea una Compra o Adelanto de efectivo (TipoTrx= 'COMP', 'AVAN')

  • Si no es, entonces busca entre las transacciones importadas de ceibo cruzando el idTxDestinatario por el nroBoleta y teniendo en cuenta que el tipo de movimiento en ceibo sea 'CR' y la Glosa sea 'PAGO'.
    • Si encuentra, marca como &ExisteDestino = true
      • Revisa la columna RESULTADO y DESC_RECHAZO que deben estar 'A' y 'Transacción OK' en ceibo
        • Si está con el estado que corresponde:
          • Revisa si el estado en Ceibo es 'Cuponado':
            • Si está cuponado, entonces &CuponadoDestino = true, &EstadoDestino = 'TRX VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y está Cuponado'
            • Si no está cuponado, entonces &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y NO está Cuponado'
        • Si no está con el estado que corresponde, &ExisteDestino= true, &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo pero con estado no valido'
    • Si no encuentra queda &ExisteDestino= false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado ACEP en el Sicoop, y NO Existe en Ceibo'
    • Si el resultado de la primera búsqueda es &CuponadoDestino = false entonces busca entre las transacciones de Ceibo importadas como Pagos. Cruzando el idTxDestinatario por NroTicket teniendo en cuenta el tipo Operacion = 'CR'
      • Si existe, entonces &ExisteDestino = true
        • Revisa el estado del cupón. Si está cuponado entonces &CuponadoDestino = true, &EstadoDestino = 'TRX VALIDA DESTINO - Estado Aceptado en el Sicoop, y Existe en Ceibo Pagos y está Cuponado'
        • Si no está cuponado &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, y Existe en Ceibo Pagos y no está Cuponado'
      • Si no existe, entonces &ExisteDestino = false, 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, y No Existe en Ceibo Pagos'
  • Si el tipo de Operación es una compra o Adelanto, entonces primeramente busca entre las transacciones importadas de ceibo cruzando el idTxDestinatario por el nroBoleta y teniendo en cuenta que el tipo de movimiento en ceibo sea 'CR' y la Glosa sea 'COMPRA'.
    • Si encuentra, marca como &ExisteDestino = true
      • Revisa la columna RESULTADO y DESC_RECHAZO que deben estar 'A' y 'Transacción OK' en ceibo
        • Si está con el estado que corresponde:
          • Revisa si el estado en Ceibo es 'Cuponado':
            • Si está cuponado, entonces &CuponadoDestino = true, &EstadoDestino = 'TRX VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y está procesado la compra'
            • Si no está cuponado, entonces &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y NO está procesado la compra'
        • Si no está con el estado que corresponde, &ExisteDestino= true, &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo pero con estado no valido'
    • Si no encuentra queda &ExisteDestino= false, &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, y no existe en Ceibo''
    • Si el participante destino de la transacción es uno de estos participantes (4003, 4004, 4005, 4006). Vuelve a validar la transacción con los datos de Bepsa, por lo tanto. Busca en la tabla del MDW (LOG_TRANSACCION) cruzando la columna ID_OPERACION_ORIGINANTE = idTxDestinatario del Sicoop, recuperando el ID_OPERACION_PARTICIPANTE. y vuelve a hacer el mismo control anterior donde cruza contra el nroBoleta y teniendo en cuenta que el tipo de movimiento en ceibo sea 'CR' y la Glosa sea 'COMPRA'.
      • Si encuentra, marca como &ExisteDestino = true
        • Revisa la columna RESULTADO y DESC_RECHAZO que deben estar 'A' y 'Transacción OK' en ceibo
          • Si está con el estado que corresponde:
            • Revisa si el estado en Ceibo es 'Cuponado':
              • Si está cuponado, entonces &CuponadoDestino = true, &EstadoDestino = 'TRX VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y está Cuponado (con el Id de Bepsa).'
              • Si no está cuponado, entonces &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo, tiene un estado valido y NO está Cuponado (con el Id de Bepsa).'
          • Si no está con el estado que corresponde, &ExisteDestino= true, &CuponadoDestino = false, &EstadoDestino = 'TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, existe en Ceibo pero con estado no valido (con el Id de Bepsa).'
      • Si no encuentra queda &ExisteDestino= false, &CuponadoDestino = false, &EstadoDestino = "TRX NO VALIDA DESTINO - Estado Aceptado en el Sicoop, no existe en Ceibo (con el Id de Bepsa)"




  • No labels