Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagesql
themeMidnight
titleCREAR PR PR_INSERT_TCO_CUENTAS_V1CABECERA DEL PAQUETE
CREATE OR REPLACE PACKAGE PKG_DIMO_SECURITY IS
  PROCEDURE PR_VALIDAR_TOKEN_TARJ (
    P_NUM_TARJ IN NUMBER,
    P_AFINIDAD OUT NUMBER,
    P_EMISOR OUT NUMBER,
    P_VINCULADO OUT NUMBER,
    P_DOCUMENTO OUT VARCHAR2,
    P_VINC_DESC OUT VARCHAR2
  );
END PKG_DIMO_SECURITY;
Code Block
languagesql
themeMidnight
titleCREAR BODY DEL PAQUETE
CREATE OR REPLACE PACKAGE BODY PKG_DIMO_SECURITY IS
  PROCEDURE CREDITOPY.PR_INSERT_TCO_CUENTAS_V1(PR_VALIDAR_TOKEN_TARJ (
    P_NUM_TARJ IN NUMBER,
    P_AFINIDAD OUT NUMBER,
    P_EMISOR OUT NUMBER,
    P_VINCULADO OUT NUMBER,
    P_DOCUMENTO INOUT VARCHAR2,
																P_TARJETA_ENCR IN VARCHAR2) IS
BEGIN
	DECLARE
		PO_DOCUMENTO VARCHAR2(40);
		PO_TARJETA_DESEN VARCHAR2(40);
	BEGIN
		PO_DOCUMENTO := P_DOCUMENTO;
		PO_TARJETA_DESEN:= CREDITOPY.FC_CRIPTO2PAN(P_TARJETA_ENCR);
		
		--RECUPERAR EL CLIENTE_ID
		SELECT dc.CLIENTE_ID INTO PO_DOCUMENTO
			FROM DIMO_SICOOP.D_CLIENTE@SICOOP dc
			WHERE dc.CI = P_DOCUMENTO;
		
		--HACER EL INSERT
		INSERT INTO DIMO_SICOOP.D_CUENTA@SICOOP
			(CUENTA_ID, CLIENTE_ID, PARTICIPANTE_ID, NRO_CUENTA, TIPO_CUENTA, NRO_CONTRATO, MONEDA, ENABLED, LAST_USER, LAST_TIME, CUENTA_MADRE_FLAG, CODIGO_NOVEDAD, FAVORITO)
			VALUES(DIMO_SICOOP.S_D_CUENTA.nextval@SICOOP, PO_DOCUMENTO, 1, PO_TARJETA_DESEN, 'TCO', '0', 'GUA', 1, 'administrador', SYSDATE(), 0, NULL, 0);
		 COMMIT;
		 
		EXCEPTION
			WHEN OTHERS THEN 
				PO_DOCUMENTO := 'ALGO REVIENTA';
				PO_TARJETA_DESEN := SQLCODE;
	END;
END PR_INSERT_TCO_CUENTAS_V1    P_VINC_DESC OUT VARCHAR2
  ) IS
    V_VALIDAR NUMBER;
    P_TARJ_ENCRI VARCHAR2(100); -- Declarar la variable que faltaba
  BEGIN
    
    SELECT CREDITOPY.FC_PAN2CRIPTO(P_NUM_TARJ)
    INTO P_TARJ_ENCRI
    FROM DUAL;
    
    
    -- Primera consulta corregida (remover la coma antes de INTO)
    SELECT T.EMISOR,
           T.DOCUMENTO,
           T.GRUPO_AFINIDAD
    INTO P_EMISOR, P_DOCUMENTO, P_AFINIDAD
    FROM CREDITOPY.TARJETAS T
    WHERE T.TARJETA = P_TARJ_ENCRI;

    P_DOCUMENTO := TO_CHAR(TO_NUMBER(SUBSTR(P_DOCUMENTO, 4)));
    
    BEGIN
    -- Tercera consulta
       SELECT ESTADO
       INTO V_VALIDAR
       FROM CREDITOPY.DIMO_TC_VINC_PROCESO dtvp
       WHERE dtvp.DOCUMENTO = P_DOCUMENTO
        AND dtvp.TARJETA = P_TARJ_ENCRI
        AND ROWNUM = 1
        ORDER BY dtvp.fecha_hora_ins DESC;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            V_VALIDAR := 3;  -- Si no se encuentra ninguna fila, asigna el valor 3
    END;

    -- Estructura condicional IF en lugar de CASE
  CASE V_VALIDAR
      WHEN 0 THEN
          P_VINCULADO := 0;
          P_VINC_DESC := 'EL USUARIO NO COMPLETO EL INTENTO';
      WHEN 1 THEN
          P_VINCULADO := 1;
          P_VINC_DESC := 'EL USUARIO VINCULO CORRECTAMENTE';
      WHEN 2 THEN
          P_VINCULADO := 0;
          P_VINC_DESC := 'EL USUARIO FALLO EN RESPONDER LAS PREGUNTAS DE SEGURIDAD';
      ELSE
          P_VINCULADO := 0;
          P_VINC_DESC := 'EL USUARIO AUN NO INTENTO VINCULAR';
  END CASE;
    
  END PR_VALIDAR_TOKEN_TARJ;
END PKG_DIMO_SECURITY;


ROLLBACK

  1. NO POSEE ROLLBACK

...