create or replace PROCEDURE P_MIGRACION_TRES
AS
 
  -- 22/01/2024, al lanzar el proceso estaba solo el id_solicitud_000= 'EB113A6438E8410825C2E2B17794B3AF', se ha quitado de la condicion para que no de error y poder lanzar todo completo
  -- 22/01/2024, despues de lanzarlo vuelto a poner todas las condiciones.
  /***************************
  **cursor para expedientes**
  *********************************/
  CURSOR EXP
  IS
   SELECT RTRIM( LTRIM(SOL.APELLIDO1CONYUGE_000))          AS APELLIDO1_CON_00,
      RTRIM( LTRIM(SOL.APELLIDO2CONYUGE_000))             AS APELLIDO2_CON_00,
      RTRIM( LTRIM(SOL.AUTORIZACIONCONYUGE_000))          AS AUTORIZACION_CON_00,
      RTRIM( LTRIM(SOL.CODIGOSGA_000))                    AS CODIGO_SGA_00 ,
      RTRIM( LTRIM(SOL.DEOFICIO_000))                     AS DE_OFICIO_00 ,
      RTRIM( LTRIM(SOL.EXENCION_000))                     AS EXENCION_SOL_00,
      RTRIM( LTRIM(SOL.FECHAAPERTURAEXP_000))             AS F_APERTURA_EXP_00,
      RTRIM( LTRIM(NVL(SOL.FOLDERID_000,'NULL_EN_X87')))  AS FOLDER_ID_00,
      RTRIM( LTRIM(NVL(SOL.FECHARECEPCION_000, SYSDATE))) AS F_RECEPCION_00,       -- no me dice de donde sacarlo y no puede ser null FECHA DE RECEPCIÓN DE LA SOLICITUD
      RTRIM( LTRIM(NVL(SOL.FECHAREGOTRO_000, SYSDATE)))   AS F_REGISTRO_00,        --  -- no me dice de donde sacarlo y no puede ser null FECHA DE REGISTRO DE LA SOLICITUD
      RTRIM( LTRIM(SOL.DNICONYUGE_000))                   AS IDENTIFICADOR_CON_00, -- DOCUMENTO DE IDENTIFICACIÓN DEL CONYUGE
      RTRIM( LTRIM(SOL.IDSOLICITUD_000 ))                 AS ID_EXPEDIENTE_00,     -- Identificador interno del expediente
      'X87_TEA'||'_'||IDTIPOSOLICITUD_036                 AS ID_PROCEDIMIENTO_00, --- NUEVO no puede ser nulo no me dice de donde sacrlo IDENTIFICACIÓN DEL PROCEDIMIENTO DE PLATEA
      RTRIM( LTRIM(SOL.IDSOLICITANTE_001))                AS ID_SOLICITANTE_00,    -- FK a SOLICITANTES 01. Identificador del solicitante/beneficiario
     CASE
        WHEN RTRIM( LTRIM(SOL.IDORIGENSOLI_006)) =1
        THEN '4'--'Oficio'
        WHEN RTRIM( LTRIM(SOL.IDORIGENSOLI_006)) =2
        THEN '2'--'Papel0'
        WHEN RTRIM( LTRIM(SOL.IDORIGENSOLI_006)) =3
        THEN '1'                                     --'Telemática'
        ELSE '3'                                     --'Presencial ciudadanía'
      END                              AS ID_TIPO_ENTRADA_00,  
     RTRIM( LTRIM(SOL.NOMBRECONYUGE_000))            AS NOMBRE_CON_00,        -- NOMBRE DEL CONYUGE
      RTRIM( LTRIM(SOL.NUMEROEXP_000 ))               AS NUM_EXPEDIENTE_00,    -- NÚMERO DE EXPEDIENTE (FOLDERNUMBER)
      RTRIM( LTRIM(SOL.NUMREGOTRO_000))               AS NUM_REGISTRO_OTRO_00, -- NÚMERO DE REGISTRO SIR
      RTRIM( LTRIM(NVL(SOL.NUMREGDPTO_000,'VACIO')))  AS NUM_REGISTRO_00,      -- NÚMERO DE REGISTRO DE LA SOLICITUD
      RTRIM( LTRIM(SOL.OBSERVACIONES_000))            AS OBSERVACIONES_00,     -- OBSERVACIONES SOBRE LA BAJA
      RTRIM( LTRIM(SOL.RAZONURGENCIA_000))            AS RAZON_URGENCIA_00,    -- Indica la razón de la urgencia
      RTRIM( LTRIM(SOL.TIPOIDENTIFICADORCONYUGE_000)) AS TIPO_IDEN_CON_00,     -- TIPO IDENTIFICADOR CONYUGE: 1-->DNI/NAN; 2-->CIF/IFK; 3-->NIE/AIZ; 4-->Pasaporte/Pasaportea; 5-->Otros/Beste Batzuk
      'MIGRADO' USU_ALTA_00,                                    --NUEVO USUARIO DE ALTA
      NULL USU_MODIF_00,                                        --NUEVO USUARIO DE MODIFICACIÓN
      DECODE (RTRIM( LTRIM(NVL(IDESTADOEXP_021,42))),41,10,42,23,45,24,25) AS ID_ESTADO_00,
      RTRIM( LTRIM(IDESTADOEXP_021)) AS IDESTADOEXP_021
      FROM X87B.X8700T00@X87B_DBL0 SOL
     WHERE  SOL.IDSOLICITANTE_001 IS NOT NULL --IDESTADOEXP_021=41--ESTADO CERRADO --PRIMERA CARGA  TOTAL DE CARGA 49782 REGISTROS
    --  WHERE IDESTADOEXP_021=42--ESTADO ARCHIVADO  ---SEGUNDA CARGA  TOTAL DE CARGA 143386  REGISTROS
     --  WHERE IDESTADOEXP_021 NOT IN (41,42)--ESTADO ARCHIVADO  ---TECERA CARGA-- TOTAL DE CARGA 23620 REGISTROS
       --WHERE 
	   --AND IDSOLICITUD_000 !='EB113A6438E8410825C2E2B17794B3AF'  --CUARTA CARGA, ESTE EXPEDIENTENO SE HA CARGADO POR ALHUNA RAZÓN
	   AND TRIM(SOL.IDSOLICITUD_000) NOT IN (SELECT VALOR_COLUM_X87B FROM T_CLAVESX87B_AD74A WHERE TABLA_AD74A = 'AD7400T00' AND NOMBRE_COLUM_AD7A4 = 'ID_EXPEDIENTE_00')
	 AND ROWNUM < 5001;
	 
  /*********************************
  VARIABLAES PARA  cursor para expedientes
  *********************************/
  W_APELLIDO1_REP_00          VARCHAR2(100);
  W_APELLIDO2_REP_00          VARCHAR2(100);
  W_CONTACTO_INST_REP_00      NUMBER;
 -- W_ID_PROCEDIMIENTO_00       VARCHAR2(15);
  W_NOMBRE_REP_00             VARCHAR2(100);
  W_RAZON_SOCIAL_REP_00       VARCHAR2(100);
  W_SEXO_REP_00               CHAR(1);
  W_TIPO_IDENTIFICADOR_REP_00 VARCHAR2(1);
  W_TIPO_REP_00               NUMBER(1);
  W_CANAL_NOT_00              NUMBER;
  W_EMAIL_NOT_00              VARCHAR2(200);
  W_TFNO_NOT_00               VARCHAR2(20);
  W_DESCRES_021               VARCHAR2(150);
  W_DESCREU_021               VARCHAR2(150);
  W_ID_TIPO_NOT_00            NUMBER;
  W_URGENCIA_00               NUMBER;
  W_AUTORIZA_CONSULTA_00      NUMBER;
  W_AUTORIZA_DAR_INFO_00      NUMBER;
  W_F_ALTA_00                 DATE;
  W_ID_CUENTA                 NUMBER:=0;
  W_EMAIL                     VARCHAR2(200);
  W_ID_EXPEDIENTE_00          NUMBER:=0;
  W_ID_CUENTA_EXP             NUMBER;
  W_ID_SOLICITANTE            NUMBER:=0;
  W_FOLDER_ID_00              NUMBER:=0;
  W_ID_DIRECCION_NOTIF_00     NUMBER;
  W_CONT_DIREC               NUMBER;
  W_ID_PERFIL                 NUMBER:=0;
  W_IDIOMA_SERVICIO_01        NUMBER;
  W_IDDOMICILIO_034           VARCHAR2(50);
  W_ID_DIRECCION_00           NUMBER;
  W_ID_MOTIVO_BAJA_00         NUMBER;
  W_ESTADO_SOL                NUMBER;
  W_FECHA_CIERRE              DATE;
  W_FECHA_ARCHIVADO           DATE;
  
  W_IDSOLICITUD_000  NUMBER; --ELIMINAR
  
  BEGIN
  /********************************
  carga para expedientes
  **********************************/
  
  
  FOR X IN EXP
  LOOP --loop para expedientes
  
    BEGIN
      SELECT VALOR_COLUM_AD74A
      INTO W_ID_SOLICITANTE
      FROM T_CLAVESX87B_AD74A
      WHERE VALOR_COLUM_X87B=X.ID_SOLICITANTE_00
      AND NOMBRE_COLUM_X87B ='IDSOLICITANTE_001';
    EXCEPTION
       WHEN OTHERS THEN
         DBMS_OUTPUT.PUT_LINE('FALLO AL BUSCAR W_ID_SOLICITANTE X.ID_SOLICITANTE_00= '||X.ID_SOLICITANTE_00||' ID_EXPEDIENTE=  '||X.ID_EXPEDIENTE_00||' '||SQLCODE||SQLERRM);
    END;
    
  
     
  
      BEGIN
         SELECT ID_PERFIL_01,
                IDIOMA_SERVICIO_01
           INTO W_ID_PERFIL,
                W_IDIOMA_SERVICIO_01
           FROM AD74A.AD74A01T00
          WHERE ID_SOLICITANTE_01=W_ID_SOLICITANTE;
       EXCEPTION
       WHEN OTHERS THEN
           DBMS_OUTPUT.PUT_LINE('FALLO AL BUSCAR W_ID_PERFIL  '||W_ID_SOLICITANTE||' '||SQLCODE||SQLERRM);
       END;
    
       BEGIN
           SELECT NVL(CU.ID_CUENTA_05,0)
             INTO W_ID_CUENTA_EXP
             FROM AD74A.AD74A05T00 CU
            WHERE CU.ID_SOLICITANTE_05=
                                 (SELECT CL.VALOR_COLUM_AD74A
                                    FROM T_CLAVESX87B_AD74A CL
                                   WHERE CL.VALOR_COLUM_X87B =X.ID_SOLICITANTE_00
                                     AND NOMBRE_COLUM_X87B     ='IDSOLICITANTE_001'
                                    )
             AND F_HISTORICO_05 IS NULL;
        EXCEPTION
           WHEN NO_DATA_FOUND THEN
               W_ID_CUENTA_EXP:=NULL;
            WHEN OTHERS THEN
                   DBMS_OUTPUT.PUT_LINE('FALLO AL BUSCAR ID_CUENTA_05  '||X.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
            END;
    
    
           BEGIN
                 SELECT ID_DIRECCION_01 --DIRECCION DEL SOLICITANTE
                   INTO W_ID_DIRECCION_00
                   FROM AD74A.AD74A01T00
                  WHERE ID_SOLICITANTE_01=W_ID_SOLICITANTE;
            EXCEPTION
                 WHEN NO_DATA_FOUND THEN
                     W_ID_DIRECCION_00:=NULL;
                 WHEN OTHERS THEN
                      DBMS_OUTPUT.PUT_LINE('FALLO AL BUSCAR DIRECCION PARA AD7400  '||X.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
            END;
    
           BEGIN
    
             SELECT COUNT(*)
               INTO W_CONT_DIREC
               FROM AD74A.AD74A06T00
              WHERE ID_SOLICITANTE_06=W_ID_SOLICITANTE
                AND ID_DIRECCION_06!=W_ID_DIRECCION_00
                AND USU_ALTA_06='MIGRADO';  

      
                IF W_CONT_DIREC >0 THEN
     
                  SELECT ID_DIRECCION_06 --DIRECCION DE NOTIFICACION
                    INTO W_ID_DIRECCION_NOTIF_00
                    FROM AD74A.AD74A06T00
                   WHERE ID_SOLICITANTE_06=W_ID_SOLICITANTE
                     AND ID_DIRECCION_06!=W_ID_DIRECCION_00
                     AND USU_ALTA_06='MIGRADO'; --DISTINTA A LA DIRECCION DEL SOLICITANTE
                END IF;
          
            /* -------------------------- SENTENCIA VÁLIDA PARA BUSCAR LA DIRECCION DE NOTIFICACION TAMBIEN
            SELECT NVL(ID_DIRECCION_06,0) --DIRECCION DE NOTIFICACION
             INTO W_ID_DIRECCION_NOTIF_00
             FROM AD74A.AD74A06T00
             WHERE ID_SOLICITANTE_06=W_ID_SOLICITANTE
             AND ID_DIRECCION_06 IN
             (SELECT DISTINCT VALOR_COLUM_AD74A FROM  T_CLAVESX87B_AD74A WHERE NOMBRE_COLUM_X87B_PK1='DIRECC_NOTIFICACION');
            */
          EXCEPTION
             WHEN NO_DATA_FOUND THEN
                  W_ID_DIRECCION_NOTIF_00:=NULL;
              WHEN OTHERS THEN
                  DBMS_OUTPUT.PUT_LINE('FALLO AL BUSCAR DIRECCION DE NOTIFICACION PARA AD7400 '||X.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
           END;
    
    
  
           BEGIN
                 SELECT NVL( TO_CHAR(TE.IDTIPONOTIF_001),'0'),
                        NVL( TE.URGENCIA_001,0)
                   INTO W_ID_TIPO_NOT_00,
                        W_URGENCIA_00
                   FROM X87B.X8701T00@X87B_DBL0 TE
                  WHERE TE.IDSOLICITANTE_001=X.ID_SOLICITANTE_00;
            EXCEPTION
                  WHEN NO_DATA_FOUND THEN
                       W_ID_TIPO_NOT_00:='0';
                       W_URGENCIA_00   :=NULL;
                  WHEN OTHERS THEN
                       DBMS_OUTPUT.PUT_LINE('ERROR:X8701T00 TE,X8700T00 SOL, X8721T00 DO  '||x.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
      
            END;
            
            
   -- HALLAMOS FECHA DE CIRERRE Y ARCHIVADO         
 BEGIN
  IF X.IDESTADOEXP_021=41 THEN ---ESTADO CERRADO
    SELECT COUNT(*)
    INTO W_ESTADO_SOL
    FROM X87B.X8718T00@X87B_DBL0 X18
    WHERE X18.IDSOLICITUD_000=X.ID_EXPEDIENTE_00
    AND ESTADOSOLICITUD_018  =41;
    
    IF W_ESTADO_SOL          >0 THEN
      SELECT MAX(X18.FECHAINICIO_018)
      INTO W_FECHA_CIERRE
      FROM X87B.X8718T00@X87B_DBL0 X18
      WHERE X18.IDSOLICITUD_000=X.ID_EXPEDIENTE_00
      AND ESTADOSOLICITUD_018  =41 ;
    ELSE
      W_FECHA_CIERRE:=NULL;
    END IF;
    
  ELSIF X.IDESTADOEXP_021=42 THEN --ESTADO ARCHIVADO
  
    SELECT COUNT(*)
    INTO W_ESTADO_SOL
    FROM X87B.X8718T00@X87B_DBL0 X18
    WHERE X18.IDSOLICITUD_000=X.ID_EXPEDIENTE_00
    AND ESTADOSOLICITUD_018  =42;
    
    IF W_ESTADO_SOL          >0 THEN
      SELECT MAX(X18.FECHAINICIO_018)
      INTO W_FECHA_ARCHIVADO
      FROM X87B.X8718T00@X87B_DBL0 X18
      WHERE X18.IDSOLICITUD_000=X.ID_EXPEDIENTE_00
      AND ESTADOSOLICITUD_018  =42 ;
    ELSE
      W_FECHA_ARCHIVADO:=NULL;
    END IF;
    
  END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
   W_FECHA_ARCHIVADO:=NULL;
   W_FECHA_CIERRE:=NULL;
WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE('ERROR AL HALLAR FECHA DE CIERRE O ARCHIVADO  '||X.ID_EXPEDIENTE_00||' '||SQLCODE||SQLERRM);
END;
 ---FIN HALLAMOS FECHA DE CIRERRE Y ARCHIVADO
            
    SELECT AD74A00T00_SEQ.NEXTVAL INTO W_ID_EXPEDIENTE_00 FROM DUAL; --PK DE LA AD7400T00
    W_FOLDER_ID_00:=W_ID_EXPEDIENTE_00;
   
    BEGIN
      INSERT
      INTO T_CLAVESX87B_AD74A
        (
          TABLA_X87B,
          NOMBRE_COLUM_X87B,
          VALOR_COLUM_X87B,
          TABLA_AD74A,
          NOMBRE_COLUM_AD7A4,
          VALOR_COLUM_AD74A
        )
        VALUES
        (
          'X8700T00',
          'FOLDERID_000',
          X.FOLDER_ID_00,
          'AD7400T00',
          'FOLDER_ID_00',
          W_FOLDER_ID_00
        );
     -- COMMIT;
    EXCEPTION
    WHEN dup_val_on_index THEN
      NULL;
    END;
    BEGIN
      INSERT
      INTO T_CLAVESX87B_AD74A
        (
          TABLA_X87B,
          NOMBRE_COLUM_X87B,
          VALOR_COLUM_X87B,
          TABLA_AD74A,
          NOMBRE_COLUM_AD7A4,
          VALOR_COLUM_AD74A
        )
        VALUES
        (
          'X8700T00',
          'IDSOLICITUD_000',
          X.ID_EXPEDIENTE_00,
          'AD7400T00',
          'ID_EXPEDIENTE_00',
          W_ID_EXPEDIENTE_00
        );
   --   COMMIT;
    EXCEPTION
    WHEN dup_val_on_index THEN
      NULL;
    end;
    
       
    BEGIN
      SELECT 
      RTRIM( LTRIM(PER.APELLIDO1_004)),
       RTRIM( LTRIM( PER.APELLIDO2_004)),
        RTRIM( LTRIM(PER.CONINSTALACION_004)),
        RTRIM( LTRIM(PER.NOMBRE_004)),
        RTRIM( LTRIM(DECODE(PER.PERSFISICA_004,0,PER.APELLIDO1_004))),
        DECODE(RTRIM( LTRIM(PER.SEXO_004)),'V','H',RTRIM( LTRIM(PER.SEXO_004))),
        RTRIM( LTRIM(PER.TIPOIDENTIFICADOR_004)),
        CASE
          WHEN RTRIM( LTRIM(PER.PERSFISICA_004))=1
          THEN 0
          ELSE 1
        END,--W_TIPO_REP_00
        CASE
          WHEN RTRIM( LTRIM(DAT.EMAIL_035)) IS NOT NULL
          AND RTRIM( LTRIM(DAT.TELEF_035))  IS NOT NULL
          THEN 2
          WHEN RTRIM( LTRIM(DAT.EMAIL_035)) IS NOT NULL
          AND RTRIM( LTRIM(DAT.TELEF_035))  IS NULL
          THEN 1
          ELSE 0
        END ,---W_CANAL_NOT_00
        RTRIM( LTRIM(DAT.EMAIL_035)),
        RTRIM( LTRIM(DAT.TELEF_035))
      INTO W_APELLIDO1_REP_00,
        W_APELLIDO2_REP_00,
        W_CONTACTO_INST_REP_00,
        W_NOMBRE_REP_00,
        W_RAZON_SOCIAL_REP_00,
        W_SEXO_REP_00,
        W_TIPO_IDENTIFICADOR_REP_00,
        W_TIPO_REP_00,
        W_CANAL_NOT_00,
        W_EMAIL_NOT_00,
        W_TFNO_NOT_00
      FROM X87B.X8700T00@X87B_DBL0 SOL,
        X87B.X8704T00@X87B_DBL0 PER,
        X87B.X8735T00@X87B_DBL0 DAT
      WHERE SOL.IDSOLICITANTE_001=PER.IDSOLICITANTE_001
      AND PER.IDCONTACTO_035     = DAT.IDCONTACTO_035
      AND SOL.IDSOLICITANTE_001  =X.ID_SOLICITANTE_00
      AND ROWNUM                 = 1
      GROUP BY PER.APELLIDO1_004,
        PER.APELLIDO2_004 ,
        PER.CONINSTALACION_004 ,
        PER.NOMBRE_004,
        PER.PERSFISICA_004,
        PER.SEXO_004,
        PER.TIPOIDENTIFICADOR_004 ,
        PER.PERSFISICA_004,
        DAT.EMAIL_035,
        DAT.TELEF_035;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      W_APELLIDO1_REP_00         := NULL;
      W_APELLIDO2_REP_00         := NULL;
      W_CONTACTO_INST_REP_00     := NULL;
       W_NOMBRE_REP_00            := NULL;
      W_RAZON_SOCIAL_REP_00      := NULL;
      W_SEXO_REP_00              := NULL;
      W_TIPO_IDENTIFICADOR_REP_00:= NULL;
      W_TIPO_REP_00              := NULL;
      W_CANAL_NOT_00             := 0;
      W_EMAIL_NOT_00             := NULL;
      W_TFNO_NOT_00              := NULL;
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE('ERROR:X8700T00 SOL, X8704T00 PER, X8735T00 DAT  '||X.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
     
    END;
    BEGIN
      SELECT
        CASE
          WHEN ATE.IDAUTORIZACION_056!=10
          THEN 1
          ELSE 0
        END,
        CASE
          WHEN ATE.IDAUTORIZACION_056=10
          THEN 1
          ELSE 0
        END,
        BEN.FECHAALTA_009,
        DECODE(BEN.IDTIPOMOTSOL_009,1,2,2,3,3,4,4,5,5,8,6,6,7,7)
      INTO W_AUTORIZA_CONSULTA_00,
           W_AUTORIZA_DAR_INFO_00,
           W_F_ALTA_00,
           W_ID_MOTIVO_BAJA_00
FROM X87B.X8709T00@X87B_DBL0 BEN,
        X87B.X8700T00@X87B_DBL0 SOL,
        X87B.X8757T00@X87B_DBL0 AUT,
        X87B.X8756T00@X87B_DBL0 ATE
      WHERE ATE.IDAUTORIZACION_056=AUT.IDAUTORIZACION_056
      AND SOL.IDSOLICITUD_000     =AUT.IDSOLICITUD_000
      AND SOL.IDSOLICITANTE_001   =BEN.IDSOLICITANTE_001
      AND SOL.IDSOLICITANTE_001   =X.ID_SOLICITANTE_00
      AND ROWNUM                  = 1
      GROUP BY ATE.IDAUTORIZACION_056,
        ATE.IDAUTORIZACION_056,
        BEN.FECHAALTA_009,
        BEN.IDTIPOMOTSOL_009;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      W_AUTORIZA_CONSULTA_00:=NULL;
      W_AUTORIZA_DAR_INFO_00:=NULL;
      W_F_ALTA_00           :=NULL;
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE('ERROR:X8709T00 BEN,     
X8700T00 SOL,     
X8757T00 AUT,     
X8756T00 ATE  '||X.ID_SOLICITANTE_00||' '||SQLCODE||SQLERRM);
  END;
  
  
    /************************
    INSERT expedientes AD74A00T00
    ******************************/
  
    BEGIN
      INSERT
      INTO AD74A.AD74A00T00
        (
          APELLIDO1_CON_00,
          APELLIDO1_REP_00,
          APELLIDO2_CON_00,
          APELLIDO2_REP_00,
          AUTORIZACION_CON_00,
          AUTORIZA_CONSULTA_00,
          AUTORIZA_DAR_INFO_00,
          CANAL_NOT_00,------
          CODIGO_SGA_00 ,
          CONTACTO_INST_REP_00,
          DE_OFICIO_00 ,
          --DOCUMENTACION_00,
          EMAIL_NOT_00,
          ---ERROR_EXPEDIENTE_00,
          --ESTADO_NOTIFICACION_00,
          --EXENCION_RES_00,
          EXENCION_SOL_00,
          --EXISTE_INSTALACION_00,
          --EXONERACION_RES_00,
          F_ALTA_00,
          F_APERTURA_EXP_00,
          --NULL AS   F_ARCHIVO_00,
          --NULL AS   F_BAJA_00 ,
          --NULL AS   F_CIERRE_00,
          --NULL AS   F_DESISTIMIENTO_00,
          --NULL AS   F_MODIF_00,
          FOLDER_ID_00, ----------------------
          F_RECEPCION_00,               ------
          ---NULL AS F_REGISTRO_OTRO_00,
          F_REGISTRO_00, ----------------------
          --NULL AS F_RESOL_DESIS_00,
          --NULL AS F_RESOLUCION_00,
          ID_CUENTA_00,          -- NUEVO --FK a la tabla 05 de CUENTAS
          ID_DIRECCION_NOTIF_00, --NUEVO FK a la tabla 06 de DIRECCIONES para la direccion de notificacion
          ID_DIRECCION_00,      ---NUEVO FK A LA TABLA 06 DE DIRECCIONES
          IDENTIFICADOR_CON_00,
          IDENTIFICADOR_REP_00,
          ID_ESTADO_00,     -- FK A ESTADOS 30. INDICA EL ESTADO DE LA SOLICITUD/EXPEDIENTE--------------------
          ID_EXPEDIENTE_00, -- Identificador interno del expediente--------------------------
          ---NULL IDIOMA_NOT_00,  --No me dice como rellenarlo Idioma de notificación del toolkit. Se usará para las notificaciones.
          IDIOMA_SERVICIO_00,
          ID_MOTIVO_BAJA_00,                           --  FK A LA TABLA DE MOTIVOS_BAJA
          ID_PERFIL_00,                               ---NUEVO FK a la tabla 07 de PERFIL
          ID_PROCEDIMIENTO_00,                        
          ID_SOLICITANTE_00,                           -- FK a SOLICITANTES 01. Identificador del solicitante/beneficiario
          ID_TIPO_ENTRADA_00, ---------------------------
          ID_TIPO_NOT_00,  ------------------------------
          NOMBRE_CON_00,
          NOMBRE_REP_00,
          NUM_EXPEDIENTE_00,
          NUM_REGISTRO_OTRO_00,
          NUM_REGISTRO_00,-----------------------------
          OBSERVACIONES_00,
          --PRECIO_FINAL_00,
          --PRESENTA_SOL_00,
          RAZON_SOCIAL_REP_00,
          RAZON_URGENCIA_00,
          --NULL RESULTADO_RESOLUCION_00,
          --SE_OPONE_00,
          SEXO_REP_00,
          --null TECNICO_EXPEDIENTE_00,
          TFNO_NOT_00,
          --NULL TIPO_DESIS_00,
          TIPO_IDEN_CON_00,
          TIPO_IDENTIFICADOR_REP_00,
          TIPO_REP_00,
          URGENCIA_00,
          USU_ALTA_00,
          USU_MODIF_00,
          ID_AVISO_00,
          MOTIVO_INFORME_00,
          ORIGEN_OFICIO_00,
           F_ARCHIVO_00, --	Fecha de paso a archivo	 	 
	         F_CIERRE_00	
        )
        VALUES
        (
          X.APELLIDO1_CON_00,
          X.APELLIDO2_CON_00,
          W_APELLIDO1_REP_00,
          W_APELLIDO2_REP_00,
          X.AUTORIZACION_CON_00,
          W_AUTORIZA_CONSULTA_00,--- me pone comentarios que hay mas autorizaciones que....
          W_AUTORIZA_DAR_INFO_00,
          W_CANAL_NOT_00,------------------------
          X.CODIGO_SGA_00 ,
          W_CONTACTO_INST_REP_00,
          X.DE_OFICIO_00 ,
          --DOCUMENTACION_00,
          W_EMAIL_NOT_00,
          -- aqui va ERROR_EXPEDIENTE_00, (por defecto ponemos 1 para las pruebas) ---campo nuevo Marca si hay errores en el expediente. 0 - Sin errores 1 - No existe solicitante para el expediente 2 - Solicitante ya esta dado de alta 3 - hay expediente pendiente
          --aqui va  ESTADO_NOTIFICACION_00, (por defecto ponemos 1 para las pruebas)--No me dice de donde sacarlo-  notificacion del expediente: 1- Pendiente, 2- Pendiente de firma, 3-Pendiente de notificar, 4-Pendiente de acuse, 5-Acusado, 6-Rechazo firma
          --aqui va  EXENCION_RES_00, ---(por defecto ponemos 1 para las pruebas) campo nuevo Indica la resolución de la exención de pago 0: No exento 1: exento
          X.EXENCION_SOL_00,
          -- aqui va EXISTE_INSTALACION_00, (por defecto ponemos 1 para las pruebas) --- no me dice de donde sacarlo - Marca si existe la instalacion en el domicilio: 0-No; 1-Sí
          --aqui va EXONERACION_RES_00, (por defecto ponemos 1 para las pruebas)-- no me dice de donde sacarlo - Indica el resultado de la exoneracion 0: no 1: si
          W_F_ALTA_00,
          X.F_APERTURA_EXP_00,
          --NULL AS   F_ARCHIVO_00,  -- no me dice de donde sacarlo FECHA DE PASO A ARCHIVO
          --NULL AS    F_BAJA_00 ,  -- no me dice de donde sacarloFECHA DE BAJA SOLICITADA EN TELEASISTENCIA
          --NULL AS    F_CIERRE_00,   -- no me dice de donde sacarloFECHA DE CIERRE
          --NULL AS   F_DESISTIMIENTO_00,  -- no me dice de donde sacarlo FECHA DE DESISTIMIENTO
          --NULL AS   F_MODIF_00,   -- no me dice de donde sacarloFECHA DE MODIFICACIÓN
          W_FOLDER_ID_00, --------------------
          X.F_RECEPCION_00,                 -- no me dice de donde sacarlo y no puede ser null FECHA DE RECEPCIÓN DE LA SOLICITUD-------------------
          ---NULL AS F_REGISTRO_OTRO_00,
          X.F_REGISTRO_00, --  -- no me dice de donde sacarlo y no puede ser null FECHA DE REGISTRO DE LA SOLICITUD---------------------
          --NULL AS    F_RESOL_DESIS_00,  -- no me dice de donde sacarlo FECHA DE RESOLUCIÓN DE DESISTIMIENTO
          --NULL AS    F_RESOLUCION_00,  -- no me dice de donde sacarlo FECHA DE RESOLUCIÓN DE CONCESIÓN O DENEGATORIA
          W_ID_CUENTA_EXP,
          W_ID_DIRECCION_NOTIF_00,     --NUEVO FK a la tabla 06 de DIRECCIONES para la direccion de notificacion
          W_ID_DIRECCION_00,          ---NUEVO FK A LA TABLA 06 DE DIRECCIONES
          X.IDENTIFICADOR_CON_00,      -- DOCUMENTO DE IDENTIFICACIÓN DEL CONYUGE
          W_TIPO_IDENTIFICADOR_REP_00, -- DOCUMENTO DE IDENTIFICACIÓN DEL REPRESENTANTE
          X.ID_ESTADO_00,              -- FK A ESTADOS 30. INDICA EL ESTADO DE LA SOLICITUD/EXPEDIENTE
          W_ID_EXPEDIENTE_00,
          ---NULL IDIOMA_NOT_00,  --No me dice como rellenarlo Idioma de notificación del toolkit. Se usará para las notificaciones.
          W_IDIOMA_SERVICIO_01,
          W_ID_MOTIVO_BAJA_00,                     --- ID_MOTIVO_BAJA_00,--  FK A LA TABLA DE MOTIVOS_BAJA  ARREGLAR ESTO
          W_ID_PERFIL,           ---NUEVO FK a la tabla 07 de PERFIL
          X.ID_PROCEDIMIENTO_00,            
          W_ID_SOLICITANTE,       -- FK a SOLICITANTES 01. Identificador del solicitante/beneficiario
          X.ID_TIPO_ENTRADA_00,   -- no me dice como rellenarla y es not null TIPO DE ENTRADA: TELEMÁTICA, PAPEL 0, PRESENCIAL CIUDADANÍA
          W_ID_TIPO_NOT_00,       -- TIPO DE NOTIFICACIÓN: 1-TELEMÁTICO; 2-POSTAL
          X.NOMBRE_CON_00,        -- NOMBRE DEL CONYUGE
          W_NOMBRE_REP_00,        -- NOMBRE DEL REPRESENTANTE
          X.NUM_EXPEDIENTE_00,    -- NÚMERO DE EXPEDIENTE (FOLDERNUMBER)
          X.NUM_REGISTRO_OTRO_00, -- NÚMERO DE REGISTRO SIR
          X.NUM_REGISTRO_00,      -- NÚMERO DE REGISTRO DE LA SOLICITUD
          X.OBSERVACIONES_00,     -- OBSERVACIONES SOBRE LA BAJA
          ---PRECIO_FINAL_00, --SIN INFORMACION DE DONDE SALE PRECIO FINAL RESULTADO DEL CONCESIÓN
          --PRESENTA_SOL_00, ---nuevo SIN INFORMACION DE DONDE SALE INDICA QUIEN PRESENTA LA SOLICITUD: 0-INTERESADO; 1-REPRESENTANTE
          W_RAZON_SOCIAL_REP_00, -- RAZÓN SOCIAL DEL REPRESENTANTE
          X.RAZON_URGENCIA_00,   -- Indica la razón de la urgencia
          ---NULL RESULTADO_RESOLUCION_00, ---nuevo SIN INFORMACION DE DONDE SALE Resultado de la resolución: 1-Concedida  2- denegada
          --SE_OPONE_00, ---nuevo SIN INFORMACION DE DONDE SALE INDICA SI SE OPONE A QUE LA DDS RECABE INFORMACIÓN: 0-NO; 1-SÍ
          W_SEXO_REP_00, -- Sexo del representante
          --null TECNICO_EXPEDIENTE_00, ---nuevo SIN INFORMACION DE DONDE SALE USUARIO XLNETS DEL TECNICO ASIGNADO AL EXPEDIENTE
          W_TFNO_NOT_00, --- Teléfono para las notificaciones
          --NULL TIPO_DESIS_00,  -----nuevo SIN INFORMACION  TIPO DE DESISTIMIENTO DE DONDE SALE: T - TÁCITO; E - EXPRESO
          X.TIPO_IDEN_CON_00,          -- TIPO IDENTIFICADOR CONYUGE: 1-->DNI/NAN; 2-->CIF/IFK; 3-->NIE/AIZ; 4-->Pasaporte/Pasaportea; 5-->Otros/Beste Batzuk
          W_TIPO_IDENTIFICADOR_REP_00, -- TIPO IDENTIFICADOR CONYUGE: 1-->DNI/NAN; 2-->CIF/IFK; 3-->NIE/AIZ; 4-->Pasaporte/Pasaportea; 5-->Otros/Beste Batzuk
          W_TIPO_REP_00,
          W_URGENCIA_00,
          'MIGRADO',
          NULL,
          NULL,
          NULL,
          NULL,
           W_FECHA_ARCHIVADO, --	Fecha de paso a archivo	 	 
	         W_FECHA_CIERRE	
        );
    EXCEPTION
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE('ERROR al insertar en AD74A.AD74A00T00  '||X.ID_EXPEDIENTE_00||'  '||W_ID_SOLICITANTE||' '||X.ID_SOLICITANTE_00||' '||SQLERRM);
    
    END;
    END LOOP;--- FIN loop de expedientes'
  COMMIT;
  
END P_MIGRACION_TRES;
/