1ER PASO

Modificar el Excel modelo con las tablas provistas por la gente de entidades.

Se debe copiar las tablas CABAL y PANAL en las hojas que tienen los mismos nombres, el resto de las hojas se modifican automáticamente, que son las que utilizaremos para crear las tablas temporales en la BD.

Planilla provista por entidades:

Las hojas CABAL y PANAL tenemos que copiar desde la columna cod. cabal a email para ambas hojas.

Planilla modelo:

Luego copiamos en este archivo en las hojas con sus respectivos nombres.

Las demás hojas se generan de forma automática mediante las formulas que poseen.

Una vez hayamos realizado la copia de las hojas dentro del archivo modelo, las hojas que utilizaremos para crear las tablas temporales son:

Para las tablas temporales de CABAL

Para las tablas temporales de PANAL

2DO PASO

En este paso el objetivo es llegar a generar las sentencias de inserción para el respaldo de cada una de las tablas previamente mencionadas(4 CABAL y 4 PANAL).

Lo que debemos hacer es ejecutar cada uno de los selects por separado, esto nos pedirá los parámetros a consultar dentro de las tablas mencionadas en los scripts.

Parámetros a definir:

El emisor procesador para CABAL es 805 y para PANAL es 806.

Comercio desde seria 1 y hasta la cantidad de comercios totales a dar de alta.

En el sql_output tenemos que pegar la tabla que corresponda al script ejecutado, luego debemos exportar los resultados como un archivo sql.

Esto nos generara las sentencias de inserción de las tablas de forma automática que luego un compañero o la persona encargada de IT debe ejecutar en la BD BAPY_PROD.

----Generar sentencias de insercion para respaldo.
--NOVEDADES_COMERCIOS. Hoja novedadesComerciosCabal
--NOVEDADES_COMERCIOS. Hoja novedadesComerciosPanal

SELECT * FROM NOVEDADES_COMERCIOS NC
WHERE NC.EMISOR_PROCESADOR=&procesador AND NC.COMERCIO BETWEEN &COMERCIO_DESDE AND &COMERCIO_HASTA
FOR UPDATE;

----Generar sentencias de insercion para respaldo.
--NOVEDADES_ACUERDOS PLAN 1 CONTADO. Hoja novedadesAcuerdosContadoCabal
--NOVEDADES_ACUERDOS PLAN 1 CONTADO. Hoja novedadesAcuerdosContadoPanal

SELECT * FROM NOVEDADES_ACUERDOS NA
WHERE NA.EMISOR=&procesador AND NA.PLAN_VENTA=1 AND NA.COMERCIO BETWEEN &COMERCIO_DESDE AND &COMERCIO_HASTA 
FOR UPDATE;

----Generar sentencias de insercion para respaldo.
--NOVEDADES_ACUERDOS PLAN 3 CABAL. Hoja novedadesAcuerdosPlanCabal
--NOVEDADES_ACUERDOS PLAN 3 CABAL. Hoja novedadesAcuerdosPlanPanal

SELECT * FROM NOVEDADES_ACUERDOS NA
WHERE NA.EMISOR=&procesador AND NA.PLAN_VENTA=3 AND NA.COMERCIO BETWEEN &COMERCIO_DESDE AND &COMERCIO_HASTA 
FOR UPDATE;

----Generar sentencias de insercion para respaldo.
--NOVEDADES_DIR_COMERCIOS. Hoja novedadesDireccionesCabal
--NOVEDADES_DIR_COMERCIOS. Hoja novedadesDireccionesPanal

SELECT * FROM NOVEDADES_DIR_COMERCIOS NDC
--UPDATE NOVEDADES_DIR_COMERCIOS NDC SET NDC.pais=1
WHERE NDC.EMISOR_PROCESADOR=&procesador AND NDC.COMERCIO BETWEEN &COMERCIO_DESDE AND &COMERCIO_HASTA 
FOR UPDATE;

El ejemplo lo realizaremos con el 4to script y es el mismo procedimiento para los demás.

1ro - Ejecutamos el script y luego debemos ingresar los parámetros.

Esto debería de devolvernos nada, sin ningún retorno o resultado.

2do - Desbloqueamos el candadito que se encuentra en la parte superior de la izquierda del output.

3er - Seleccionamos la hoja correspondiente al script, en este caso 'novedadesDireccionesCabal' y copiamos la tabla. 

4ro - Tres clics sobre el * y luego un clic derecho, seleccionamos la opción pegar y verificamos que todos los datos se hayan pegado correctamente.

5to - Cuando ya este copiada la tabla dentro del output del sql, le damos un clic en el cuadro superior de la izquierda para seleccionar todo y luego un clic derecho, después seleccionamos a Export Results>SQL file y guardar.

De esta manera se generan las sentencias de inserción para cada una de las filas de la tabla.

3ER PASO

Debemos ejecutar los scripts en la siguiente secuencia dentro del mismo ambiente:

1. Ejecutar los 4 script de inserción generados de CABAL y los 4 script de inserción de PANAL(En total, los 8 scripts generados en el paso anterior)

2. Ejecutar el script para procesar las altas. Se debe ejecutar este script 2 veces, para CABAL una vez y para PANAL otra vez.

DECLARE
  VN_COMERCIO COMERCIOS.COMERCIO%TYPE;
  VN_HABILITACION COMERCIOS.NRO_CONTRATO%TYPE;
BEGIN
  FOR R IN (SELECT * FROM NOVEDADES_COMERCIOS A
              WHERE A.COMERCIO BETWEEN &novedadDesde AND &novedadHasta
                AND A.EMISOR_PROCESADOR=&procesador
                AND A.USUARIO='&usuario')
  LOOP
  ceibo_comercios.pr_alta_comercio(R.emisor_procesador,
                                   R.COMERCIO,
                                   R.USUARIO,
                                   R.EMISOR_PROCESADOR,
                                   VN_COMERCIO,
                                   VN_HABILITACION);    
  END LOOP;
  
END;

3. Se debe realizar dos controles:

El 1ro, el control de la cuenta, RUC y banco, dentro de este control solamente nos debe retornar una fila.

Parámetros a modificar/establecer:

Copiar resultados:

Se deben copiar los resultados en el Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar respectivamente para cuando:

Ej.: si hoy es 23/09/2022 colocamos esa fecha en el 1er campo del between y 24/09/2022 en el 2do campo.

SELECT A.RAZON_SOCIAL
      ,A.RUC
      ,B.DESCRIPCION ENTIDAD_PAGADORA
      ,C.DESCRIPCION SUCURSAL_PAGADORA
      , FC_GET_CODIGOS_PY(A.COD_TIPO_PAGO,A.TIPO_PAGO) FORMA_DE_PAGO
      ,FC_GET_CODIGOS_PY(A.COD_TIPO_CUENTA,A.TIPO_CUENTA) TIPO_CUENTA
      ,A.CUENTA NUMERO_CUENTA
FROM COMERCIOS A,PAGADORES B,SUCURSALES_PAGADORES C 
WHERE B.EMISOR_PROCESADOR = A.EMISOR_PROCESADOR
  AND B.PAGADOR = A.PAGADOR
  AND C.EMISOR_PROCESADOR = A.EMISOR_PROCESADOR
  AND C.PAGADOR = A.PAGADOR
  AND C.SUCURSAL_PAGADOR = A.SUCURSAL_PAGADOR
  AND A.EMISOR_PROCESADOR=&procesador
  AND A.USUARIO='PANALPY'
  AND A.FECHA_ALTA BETWEEN TO_DATE('23/09/2022', 'dd/mm/yyyy') AND TO_DATE('24/09/2022', 'dd/mm/yyyy')
GROUP BY A.RAZON_SOCIAL,A.RUC,B.DESCRIPCION,C.DESCRIPCION,A.COD_TIPO_PAGO,A.COD_TIPO_CUENTA,A.TIPO_CUENTA,A.TIPO_PAGO,A.CUENTA;

El 2do, control de resumen de acuerdos, plan de venta, comisión descuento, forma de pago y cuotas, dentro de este control solamente nos debe retornar una fila por cada plan de ventas:

cuya respuesta tenemos que copiar y pegar en la hoja respuestaCabal o respuestaPanal respectivamente(porque también se debe ejecutar 2 veces, para CABAL una vez y para PANAL otra vez) del Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar.

Parámetros a modificar/establecer:

Copiar resultados:

Se deben copiar los resultados en el Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar respectivamente para cuando:

SELECT A.PLAN_VENTA,A.PORCENTAJE_DESCUENTO,FORMA_PAGO,A.CUOTA_MIN,A.CUOTA_MAX
FROM ACUERDOS A
WHERE A.EMISOR=&procesador 
  AND A.COMERCIO IN
(SELECT C.COMERCIO
FROM COMERCIOS C
WHERE C.FECHA_ALTA BETWEEN TO_DATE('23/09/2022', 'dd/mm/yyyy') AND TO_DATE('24/09/2022', 'dd/mm/yyyy')
  AND C.USUARIO='PANALPY'
  AND C.EMISOR_PROCESADOR=&procesador 
  AND C.RAMO =&RAMO
  )
GROUP BY A.PLAN_VENTA,A.PORCENTAJE_DESCUENTO,FORMA_PAGO,A.CUOTA_MIN,A.CUOTA_MAX   
  ;

4. Hacer commit si todo esta ok y no nos genero ningún error.

Obs.: Si tenemos algún error debemos hacer rollback de todo y comenzar el proceso de cero.

4TO PASO

En este paso final, debemos ejecutar dos scripts los cuales nos generan resultados que debemos insertar en las hojas del Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar. 

1. Listar todos los comercios.

Parámetros a modificar/establecer:

Copiar resultados:

Se deben copiar los resultados en el Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar respectivamente para cuando:

SELECT A.COMERCIO CODIGO_COMERCIO
      ,A.DESCRIPCION DENOMINACION_COMERCIAL
      ,A.RAZON_SOCIAL
      ,A.RUC
      ,B.DESCRIPCION ENTIDAD_PAGADORA
      ,C.DESCRIPCION SUCURSAL_PAGADORA
      , FC_GET_CODIGOS_PY(A.COD_TIPO_PAGO,A.TIPO_PAGO) FORMA_DE_PAGO
      ,FC_GET_CODIGOS_PY(A.COD_TIPO_CUENTA,A.TIPO_CUENTA) TIPO_CUENTA
      ,A.CUENTA NUMERO_CUENTA
      ,A.NRO_CONTRATO HABILITACION
      ,f_en_portal_comercios(a.emisor_procesador, a.comercio) Portal_comercios, -- Si esta o no En el POrtal de Comercios
       f_acceso_portal_comercios(a.emisor_procesador, a.comercio) usuarios_portal_comercios-- Si esta y ademas si tiene usuarios activos

FROM COMERCIOS A,PAGADORES B,SUCURSALES_PAGADORES C
WHERE B.EMISOR_PROCESADOR = A.EMISOR_PROCESADOR
  AND B.PAGADOR = A.PAGADOR
  AND C.EMISOR_PROCESADOR = A.EMISOR_PROCESADOR
  AND C.PAGADOR = A.PAGADOR
  AND C.SUCURSAL_PAGADOR = A.SUCURSAL_PAGADOR
  AND A.EMISOR_PROCESADOR=&PROCESADOR
  AND A.USUARIO='&USUARIO'
  AND A.FECHA_ALTA BETWEEN TO_DATE('23/09/2022', 'dd/mm/yyyy') AND TO_DATE('24/09/2022', 'dd/mm/yyyy')
ORDER BY COMERCIO;

2. PR_RESUMEN_CEIBO_TRANSACCIONES; dicha respuesta tenemos que copiar y pegar en la hoja 'resultados' del Excel modelo en el cual en el paso 1 ya habíamos empezado a modificar.

Parámetros a modificar/establecer:

Copiar resultados:

Se deben copiar los resultados en la hoja 'resultados' del Excel modelo en el cual en el paso 1 ya habíamos empezado a modifica.

SELECT C.EMISOR_PROCESADOR,C.COMERCIO,C.NRO_CONTRATO HABILITACION
,DECODE(pkg_portal_comercios.f_en_portal_comercios(C.EMISOR_PROCESADOR,C.COMERCIO),'N','Falta Vincular al Portal','Vinculado al Portal') OBSERVACION
FROM COMERCIOS C
WHERE C.FECHA_ALTA BETWEEN TO_DATE('23/09/2022', 'dd/mm/yyyy') AND TO_DATE('24/09/2022', 'dd/mm/yyyy')
  AND C.USUARIO IN ('PANALPY','CABALPY')
ORDER BY C.EMISOR_PROCESADOR,C.COMERCIO;