create or replace PROCEDURE P_MIGRACION_07_ALA_MIG AS 
	-- CONDICIONES DEL CURSOR A MIGRAR: TODAS LAS ALARMAS QUE NO SEAN TECNICAS
	CURSOR C_64_I IS
	  /*	SELECT IDALARMA_064,to_date(to_char(FECHAALARMA_064,'dd/mm/rrrr hh24:mi:ss'),'dd/mm/rrrr hh24:mi:ss') FECHAALARMA_064,
				MOTIVOALARMA_064, CL.VALOR_AD74A ID_SOLICITANTE_01,
				DECODE(MOTIVOALARMA_064,'Control Movilidad','DETECTOR DE MOVILIDAD/PASIVIDAD','Detector Fuego/Humo','DETECTOR DE HUMO','Detector Gas','DETECTOR GAS','Detector CO','DETECTOR CO','Detector Ca¡da','DETECTOR DE CAÍDAS','Detector Ca!da','DETECTOR DE CAÍDAS',
										'Detector Convulsiones','DETECTOR CONVULSIONES','Detector Enuresis','DETECTOR DE CONTROL ENURESIS','Detector Ocupación Cama/Sillo','DETECTOR OCUPACIÓN CAMA/SILLÓN','Detector Ocupación Cama/Sillon','DETECTOR OCUPACIÓN CAMA/SILLÓN',
										'Emergencia Sanitaria','EMERGENCIA SANITARIA','Trab. único Llam SOS','EMERGENCIA SANITARIA','Emergencia Social','EMERGENCIA SOCIAL','Charla/Soledad','CONVERSACIÓN SOLEDAD','CITA PREVIA','CITA PREVIA','Problema Salud','PROBLEMA DE SALUD','Problema Social','PROBLEMA SOCIAL','No Responde','OTROS',
										'Alta por Reanudación','COMUNICACIÓN REGRESO',
										'Visualizacion Usuario','OTRAS COMUNICACIONES','SEGUIMIENTO USUARIO','SEGUIMIENTO PERSONA USUARIA','Pedir/Dar Informacion','SOLICITUD/ PETICIÓN DE INFORMACIÓN','Llegada de UM','LLEGADA DE UM','Baja Temporal','COMUNICACIÓN DE AUSENCIA','Pulsación No Deseada','PULSACIÓN NO DESEADA',
										'Reestablecimiento De Red','FUNCIONAMIENTO EQUIPO','Funcionamiento Equipo','FUNCIONAMIENTO EQUIPO','Autochequeo','FUNCIONAMIENTO EQUIPO','INCOMPLETO','FUNCIONAMIENTO EQUIPO','Programación','PROGRAMACIÓN','FUNCIONAMIENTO DISPOSITIVO','FUNCIONAMIENTO DISPOSITIVO',
											'Instalación Segundo UCR','INSTALACIÓN EQUIPO/ UCR','Instalación Tercer UCR','INSTALACIÓN EQUIPO/ UCR','Instalación Unidad','INSTALACIÓN EQUIPO/ UCR',
											'Baja y Retirada del Equipo','BAJA Y RETIRADA DE EQUIPO/ UCR','Baja y Retirada UCR','BAJA Y RETIRADA DE EQUIPO/ UCR',
											'Instalación Portal', 'INSTALACIÓN EQUIPO/ UCR',
										 'Fuego/Hurto/Intrusismo','OTROS_DISP','Otros','OTROS_DISP','1.4.1 Por error.','OTROS_DISP','54. P. INFO LUGARES Y TLF','OTROS_DISP',
											'Conserje En Servicio','OTROS_DISP','Conserje Fuera de Servicio','OTROS_DISP','Conserje Fuera Servicio','OTROS_DISP','m','OTROS_DISP','Mobile Arrived','OTROS_DISP',
											'Móvil recibido','OTROS_DISP','Trabajador Independiente salir','OTROS_DISP','Trabajador único accedió','OTROS_DISP','(en blanco)','OTROS_DISP',
											'<Desconocido>','OTROS_DISP',
										'RESTOCAMBIO') DISPOSITIVO, FECHAMODIF_064
		FROM X87B.X8764T00@X87B_DBL0 X64, X87B.X8709T00@X87B_DBL0 X09, T_CLAVES_X01 CL
		where X64.IDBENEFICIARIO_009 = X09.IDBENEFICIARIO_009 
        AND CL.VALOR_X87B = X09.IDSOLICITANTE_001
		AND DIRECCION_064='I'
		AND MOTIVOALARMA_064 NOT IN ('Llamada segundo plano','Fallo en conectando','Llamada Periodica','Fallo De Tension','4.1.1 Fallo Eléctrico','Baja Bateria Equipo','No Seleccionado','Fallo en conexión')
        AND NOT EXISTS (SELECT VALOR_AD74A FROM T_CLAVES_X64_I WHERE VALOR_X87B  = IDALARMA_064);
		*/
		SELECT IDALARMA_064,cl24.VALOR_AD74AI ID_ALARMA_24,
         to_date(to_char(FECHAALARMA_064,'dd/mm/rrrr hh24:mi:ss'),'dd/mm/rrrr hh24:mi:ss') FECHAALARMA_064,
				MOTIVOALARMA_064, CL.VALOR_AD74A ID_SOLICITANTE_01,
				DECODE(MOTIVOALARMA_064,'Control Movilidad','DETECTOR MOVIL/PASIVIDAD','Detector Fuego/Humo','DETECTOR FUEGO/HUMO','Detector Gas','DETECTOR GAS','Detector CO','DETECTOR CO','Detector Ca¡da','DETECTOR CAÍDAS IVI/VIBBY','Detector Ca!da','DETECTOR CAÍDAS IVI/VIBBY',
										'Detector Convulsiones','DETECTOR CONVULSIONES','Detector Enuresis','DETECTOR DE CONTROL ENURESIS','Detector Ocupación Cama/Sillo','DETECTOR OCUPACIÓN CAMA/SILLÓN','Detector Ocupación Cama/Sillon','DETECTOR OCUPACIÓN CAMA/SILLÓN',
										'Emergencia Sanitaria','EMERGENCIA SANITARIA','Trab. único Llam SOS','EMERGENCIA SANITARIA','Emergencia Social','EMERGENCIA SOCIAL','Charla/Soledad','CONVERSACIÓN SOLEDAD','CITA PREVIA','CITA PREVIA','Problema Salud','PROBLEMA DE SALUD','Problema Social','PROBLEMA SOCIAL','No Responde','OTROS',
										'Alta por Reanudación','COMUNICACIÓN REGRESO',
										'Visualizacion Usuario','OTRAS COMUNICACIONES','SEGUIMIENTO USUARIO','SEGUIMIENTO PERSONA USUARIA','Pedir/Dar Informacion','SOLICITUD/ PETICIÓN DE INFORMACIÓN','Llegada de UM','LLEGADA DE UM','Baja Temporal','COMUNICACIÓN DE AUSENCIA','Pulsación No Deseada','PULSACIÓN NO DESEADA',
										'Reestablecimiento De Red','FUNCIONAMIENTO EQUIPO','Funcionamiento Equipo','FUNCIONAMIENTO EQUIPO','Autochequeo','FUNCIONAMIENTO EQUIPO','INCOMPLETO','FUNCIONAMIENTO EQUIPO','Programación','PROGRAMACIÓN','FUNCIONAMIENTO DISPOSITIVO','FUNCIONAMIENTO DISPOSITIVO',
											'Instalación Segundo UCR','INSTALACIÓN EQUIPO/ UCR','Instalación Tercer UCR','INSTALACIÓN EQUIPO/ UCR','Instalación Unidad','INSTALACIÓN EQUIPO/ UCR',
											'Baja y Retirada del Equipo','BAJA Y RETIRADA DE EQUIPO/ UCR','Baja y Retirada UCR','BAJA Y RETIRADA DE EQUIPO/ UCR',
											'Instalación Portal', 'INSTALACIÓN EQUIPO/ UCR',
										 'Fuego/Hurto/Intrusismo','OTROS_DISP','Otros','OTROS_DISP','1.4.1 Por error.','OTROS_DISP','54. P. INFO LUGARES Y TLF','OTROS_DISP',
											'Conserje En Servicio','OTROS_DISP','Conserje Fuera de Servicio','OTROS_DISP','Conserje Fuera Servicio','OTROS_DISP','m','OTROS_DISP','Mobile Arrived','OTROS_DISP',
											'Móvil recibido','OTROS_DISP','Trabajador Independiente salir','OTROS_DISP','Trabajador único accedió','OTROS_DISP','(en blanco)','OTROS_DISP',
											'<Desconocido>','OTROS_DISP',
										'RESTOCAMBIO') DISPOSITIVO, FECHAMODIF_064
		FROM X87B.X8764T00@X87B_DBL0 X64, X87B.X8709T00@X87B_DBL0 X09, CLAVES_AD7401 CL, CLAVES_AD7424 cl24
		where X64.IDBENEFICIARIO_009 = X09.IDBENEFICIARIO_009 
        AND CL.VALOR_X87B = X09.IDSOLICITANTE_001
        and IDALARMA_064 = cl24.valor_x87b 
        and cl24.valor_ad74ai is not null
		AND MOTIVOALARMA_064 NOT IN ('Llamada segundo plano','Fallo en conectando','Llamada Periodica','Fallo De Tension','4.1.1 Fallo Eléctrico','Baja Bateria Equipo','No Seleccionado','Fallo en conexión')
        and not exists (select id_alarma_24 from ad74a24t00_mig where id_alarma_24 = valor_ad74ai);
		
	CURSOR C_64_O IS
	/*
	  	SELECT IDALARMA_064,to_date(to_char(FECHAALARMA_064,'dd/mm/rrrr hh24:mi:ss'),'dd/mm/rrrr hh24:mi:ss') FECHAALARMA_064,
				MOTIVOALARMA_064, CL.VALOR_AD74A ID_SOLICITANTE_01,
                DECODE(NVL(TRIM(MOTIVOALARMA_064),'vacio'),'1_test_2','OTROS','115. MOV RRPP POR SEG NO CONTE','OTROS','6.1.5 Llamadas sin contacto','OTROS',
               'Cita Previa','OTROS','CITA PREVIA','OTROS','Concertacion cita SID','OTROS','Concertacion cita SID Fallida','OTROS','Conv. Actuaciones Comunitarias','OTROS',
               'NOTIFICACION CESE ACTIVIDAD','OTROS','Otros','OTROS','Seguimiento Emergencia','OTROS','Seguimiento SAID','OTROS','Seguimiento Tex/FMA','OTROS',
               'Trab Independiente Fallo Test','OTROS','Trab. Independiente Llam SOS','OTROS','Trabajador Independiente OK','OTROS','Trabajador Independiente salir','OTROS',
               'Trabajador único - Fallo Compr','OTROS','Trabajador único Llamada Emerg','OTROS','Visualizacion Usuario','OTROS','vacio','OTROS',
			   'Agenda De Revaloración','AGENDA DE REVALORACIÓN',
			   'Aviso de Agenda','AVISO AGENDA','Aviso de Agenda a Contacto','AVISO AGENDA','Aviso de Agenda Nivel 1','AVISO AGENDA','Aviso de Agenda Nivel 2','AVISO AGENDA','Aviso de Agenda Nivel 3','AVISO AGENDA','Aviso de Agenda Nivel 4','AVISO AGENDA',
			   'Funcionamiento Equipo','FUNCIONAMIENTO EQUIPO','Llamada Contacto Usuario', 'LLAMADA A CONTACTO DE P.USUARIA','Llamada Fallida','LLAMADA FALLIDA',
			   'Movilización Recurso Privado', 'MOVILIZA. RECURSO PRIVADO','Movilización Recurso Publico','MOVILIZA. RECURSO PÚBLICO','Movilización Televida','MOVILIZACIÓN UM',
			   'Pedir/Dar Informacion','PEDIR/DAR INFORMACION','Programación','PROGRAMACIÓN', 'Seg. Ej. cognitivo','SEGUIMIENTO P.USUARIA','Seguimiento Usuario','SEGUIMIENTO P.USUARIA','Seguimiento Cuidador','SEGUIMIENTO P CUIDADORA',
										'RESTOCAMBIO') DISPOSITIVO, FECHAMODIF_064
		FROM X87B.X8764T00@X87B_DBL0 X64, X87B.X8709T00@X87B_DBL0 X09, T_CLAVES_X01 CL
		where X64.IDBENEFICIARIO_009 = X09.IDBENEFICIARIO_009 
        AND X09.IDSOLICITANTE_001 = CL.VALOR_X87B
		AND DIRECCION_064='O'
		--and MOTIVOALARMA_064 = 'Llamada Contacto Usuario'
		--AND ((TRIM(MOTIVOALARMA_064) IS NULL)  OR (MOTIVOALARMA_064 IN ( 'Funcionamiento Equipo'--'1_test_2','115. MOV RRPP POR SEG NO CONTE','6.1.5 Llamadas sin contacto','Cita Previa','Concertacion cita SID','Concertacion cita SID Fallida','Conv. Actuaciones Comunitarias',
         --'NOTIFICACION CESE ACTIVIDAD','Otros','Seguimiento Emergencia','Seguimiento SAID','Seguimiento Tex/FMA',
         --'Trab Independiente Fallo Test','Trab. Independiente Llam SOS','Trabajador Independiente OK','Trabajador Independiente salir')),
               --'Trabajador único - Fallo Compr','Trabajador único Llamada Emerg','Visualizacion Usuario'
		--	   )))
        AND NOT EXISTS (SELECT VALOR_AD74A FROM T_CLAVES_X64_O WHERE VALOR_X87B  = IDALARMA_064);*/
        		SELECT IDALARMA_064,cl24.VALOR_AD74AO ID_ALARMA_24,
		to_date(to_char(FECHAALARMA_064,'dd/mm/rrrr hh24:mi:ss'),'dd/mm/rrrr hh24:mi:ss') FECHAALARMA_064,
				MOTIVOALARMA_064, CL.VALOR_AD74A ID_SOLICITANTE_01,
                DECODE(NVL(TRIM(MOTIVOALARMA_064),'vacio'),'1_test_2','OTROS','115. MOV RRPP POR SEG NO CONTE','OTROS','6.1.5 Llamadas sin contacto','OTROS',
               'Cita Previa','OTROS','CITA PREVIA','OTROS','Concertacion cita SID','OTROS','Concertacion cita SID Fallida','OTROS','Conv. Actuaciones Comunitarias','OTROS',
               'NOTIFICACION CESE ACTIVIDAD','OTROS','Otros','OTROS','Seguimiento Emergencia','OTROS','Seguimiento SAID','OTROS','Seguimiento Tex/FMA','OTROS',
               'Trab Independiente Fallo Test','OTROS','Trab. Independiente Llam SOS','OTROS','Trabajador Independiente OK','OTROS','Trabajador Independiente salir','OTROS',
               'Trabajador único - Fallo Compr','OTROS','Trabajador único Llamada Emerg','OTROS','Visualizacion Usuario','OTROS','vacio','OTROS',
			   'Agenda De Revaloración','AGENDA DE REVALORACIÓN',
			   'Aviso de Agenda','AVISO AGENDA','Aviso de Agenda a Contacto','AVISO AGENDA','Aviso de Agenda Nivel 1','AVISO AGENDA','Aviso de Agenda Nivel 2','AVISO AGENDA','Aviso de Agenda Nivel 3','AVISO AGENDA','Aviso de Agenda Nivel 4','AVISO AGENDA',
			   'Funcionamiento Equipo','FUNCIONAMIENTO EQUIPO','Llamada Contacto Usuario', 'LLAMADA A CONTACTO DE P.USUARIA','Llamada Fallida','LLAMADA FALLIDA',
			   'Movilización Recurso Privado', 'MOVILIZA. RECURSO PRIVADO','Movilización Recurso Publico','MOVILIZA. RECURSO PÚBLICO','Movilización Televida','MOVILIZACIÓN UM',
			   'Pedir/Dar Informacion','PEDIR/DAR INFORMACION','Programación','PROGRAMACIÓN', 'Seg. Ej. cognitivo','SEGUIMIENTO P.USUARIA','Seguimiento Usuario','SEGUIMIENTO P.USUARIA','Seguimiento Cuidador','SEGUIMIENTO P CUIDADORA',
										'RESTOCAMBIO') DISPOSITIVO, FECHAMODIF_064
		FROM X87B.X8764T00@X87B_DBL0 X64, X87B.X8709T00@X87B_DBL0 X09, CLAVES_AD7401 CL, CLAVES_AD7424 cl24
		where X64.IDBENEFICIARIO_009 = X09.IDBENEFICIARIO_009 
        AND X09.IDSOLICITANTE_001 = CL.VALOR_X87B 
        and IDALARMA_064 = cl24.valor_x87b 
        and cl24.valor_ad74ao is not null
        and not exists (select id_alarma_24 from ad74a24t00_mig where id_alarma_24 = valor_ad74ao);
	
	
	--vIdAlarma AD74A24T00_MIG.ID_ALARMA_24%TYPE:=0;
	
	vIdTipoAlarma24 AD74A24T00_MIG.ID_TIPO_ALARMA_24%type;
	vIdDispositivo24 AD74A24T00_MIG.ID_DISPOSITIVO_24%type;
	vIdLlamada24 AD74A24T00_MIG.ID_LLAMADA_24%type;
	
	vIdTipoLLamada29 AD74A29T00_MIG.ID_TIPO_LLAMADA_29%type;
	vIdSubtipoLlamada29 AD74A29T00_MIG.ID_SUBTIPO_LLAMADA_29%type;
	
	vIdDispSeguridad AD74A48T00.ID_TIPO_ALARMA_48%type;
	vIdDispFuncional AD74A48T00.ID_TIPO_ALARMA_48%type;
	vIdLlamadas AD74A48T00.ID_TIPO_ALARMA_48%type;
	vIdDispOtros AD74A48T00.ID_TIPO_ALARMA_48%type;
	
	vTipoLlamadaEmitida Ad74A55T00.ID_TIPO_LLAMADA_55%TYPE;
	
	vSql varchar2(4000);
BEGIN
	-- calculo constantes para la migracion
	-- Tipos de alarma:
	SELECT ID_TIPO_ALARMA_48 INTO vIdDispSeguridad FROM Ad74A48T00 WHERE upper(DESC_ES_48)='DISPOSITIVOS SEGURIDAD';
	SELECT ID_TIPO_ALARMA_48 INTO vIdDispFuncional FROM Ad74A48T00 WHERE upper(DESC_ES_48)='DISPOSITIVOS FUNCIONALES';
	SELECT ID_TIPO_ALARMA_48 INTO vIdLlamadas FROM Ad74A48T00 WHERE upper(DESC_ES_48) LIKE '%LLAMADAS%';
	SELECT ID_TIPO_ALARMA_48 INTO vIdDispOtros FROM Ad74A48T00 WHERE upper(DESC_ES_48)='OTROS';
	
	SELECT ID_TIPO_LLAMADA_55 INTO vTipoLlamadaEmitida FROM Ad74A55T00 WHERE upper(DESC_ES_55) like '%EMITIDA%';
							
	FOR R_64 IN C_64_I LOOP
		--dbms_output.put_line('DIRECCION I');
		BEGIN
			--DBMS_OUTPUT.PUT_LINE('ENTRA EN LOOP:'||R_64.IDALARMA_064||', MOTIVO_ALARMA:'||R_64.MOTIVOALARMA_064||',DISPOSITIVO:'||R_64.DISPOSITIVO);
			--SELECT AD74A24T00_MIG_SEQ.NEXTVAL INTO vIdAlarma FROM DUAL;
			
			--INSERT INTO T_CLAVES_X64_I (VALOR_X87B, VALOR_AD74A, FECHA_MIG, MIGRADO)
			--VALUES (R_64.IDALARMA_064, vIdAlarma,SYSDATE,'S');
			
			--DBMS_OUTPUT.PUT_LINE('despues de insertar en tabla de claves'); 
			-- Recuperar valores para el ID_TIPO_ALARMA_24 // ID_DISPOSITIVO_24 // ID_LLAMADA_24 
			-- insertar en Base de datos.
			
			IF R_64.DISPOSITIVO in ('DETECTOR MOVIL/PASIVIDAD','DETECTOR FUEGO/HUMO','DETECTOR GAS','DETECTOR CO','DETECTOR CAÍDAS IVI/VIBBY','OTROS')  THEN
				vIdTipoAlarma24:= vIdDispSeguridad;
				SELECT ID_DISPOSITIVO_35 into vIdDispositivo24 FROM AD74A35T00 where upper(DESC_ES_35) LIKE R_64.DISPOSITIVO;
				--DBMS_OUTPUT.PUT_LINE('valor de vIdDispositivo24: '||vIdDispositivo24);
				vIdLlamada24 := null;
			END IF;
			
			IF R_64.DISPOSITIVO IN ('DETECTOR CONVULSIONES','DETECTOR DE CONTROL ENURESIS','DETECTOR OCUPACIÓN CAMA/SILLÓN') THEN
				vIdTipoAlarma24:= vIdDispFuncional;
				SELECT ID_DISPOSITIVO_35 into vIdDispositivo24 FROM AD74A35T00 where upper(DESC_ES_35) =  R_64.DISPOSITIVO;
				vIdLlamada24 := null;
			END IF;
			IF R_64.DISPOSITIVO IN ('EMERGENCIA SANITARIA','EMERGENCIA SOCIAL','CONVERSACIÓN SOLEDAD','CITA PREVIA','PROBLEMA DE SALUD','PROBLEMA SOCIAL','NO RESPONDE',
										'OTRAS COMUNICACIONES','SEGUIMIENTO PERSONA USUARIA','SOLICITUD/ PETICIÓN DE INFORMACIÓN','LLEGADA DE UM','PULSACIÓN NO DESEADA',
										'FUNCIONAMIENTO EQUIPO','FUNCIONAMIENTO DISPOSITIVO','INSTALACIÓN EQUIPO/ UCR','INSTALACION EQUIPO/ UCR','BAJA Y RETIRADA DE EQUIPO/ UCR',
										'COMUNICACIÓN DE AUSENCIA','COMUNICACIÓN REGRESO','PROGRAMACIÓN') THEN
				--DBMS_OUTPUT.PUT_LINE('ENTRA 3');
				SELECT AD74A29T00_MIG_SEQ.NEXTVAL INTO vIdLlamada24 FROM DUAL;
				
				vIdTipoAlarma24:= vIdLlamadas;
				SELECT ID_SUBTIPO_LLAMADA_56, ID_TIPO_LLAMADA_56 into vIdSubtipoLlamada29, vIdTipoLLamada29 
				FROM AD74A56T00 where upper(DESC_ES_56) =  R_64.DISPOSITIVO AND ID_TIPO_LLAMADA_56 != vTipoLlamadaEmitida;
				vIdDispositivo24 := null;
			END IF;
			IF R_64.DISPOSITIVO IN ('OTROS_DISP') THEN
				vIdTipoAlarma24:= vIdDispOtros;
				SELECT ID_DISPOSITIVO_35 into vIdDispositivo24 FROM AD74A35T00 where upper(DESC_ES_35) =  'OTROS';
				
				vIdLlamada24 := null;
			END IF;
			
		
			if vIdLlamada24 is not null then
				-- SENTIDO_29: RECIBIDO valor 1
				INSERT INTO AD74A29T00_MIG (ID_LLAMADA_29,ID_TIPO_LLAMADA_29,ID_SUBTIPO_LLAMADA_29,SENTIDO_29,
										DURACION_29,TIEMPO_RESPUESTA_29,ID_LLAMADA_PS_29,
										RESPUESTA_29,F_ALTA_29,USU_ALTA_29)
				VALUES (vIdLlamada24, vIdTipoLlamada29, vIdSubtipoLlamada29,1,
						NULL,NULL,null,
						NULL,R_64.FECHAALARMA_064,'MIGRADO'); 
			end if;
			
			--DBMS_OUTPUT.PUT_LINE('ANTES DE INSERT EN 24, idAlarma, idTipoAlarma, idDispos, idLLamada: '||vIdAlarma||','||vIdTipoAlarma24||','||vIdDispositivo24||','||vIdLlamada24);
			if (vIdDispositivo24 is not null) or (vIdLlamada24 is not null) then
				INSERT INTO AD74A24T00_MIG (ID_ALARMA_24,ID_TIPO_ALARMA_24,ID_DISPOSITIVO_24,ID_LLAMADA_24,
										F_ALARMA_24,ID_SOLICITANTE_24,F_ALTA_24,USU_ALTA_24,ID_TIPO_RESOL_24)
				VALUES (R_64.ID_ALARMA_24,vIdTipoAlarma24,vIdDispositivo24,vIdLlamada24,
						R_64.FECHAALARMA_064,R_64.ID_SOLICITANTE_01,R_64.FECHAMODIF_064,'MIGRADO',null);
			
			else
				vSql:= sqlcode||'-'||substr(sqlerrm,1,1000);
				PG_MIGRACION.INSERTA_TRAZA('DATOS 24','insert AD74A24T00', 'ERROR '||vSql||', AD74A24T00 Se ha producido un error al guardar  el registro: idAlarma, idTipoAlarma, idDispos, idLLamada: '||R_64.ID_ALARMA_24||','||vIdTipoAlarma24||','||vIdDispositivo24||','||vIdLlamada24, null);
				
			end if;
		EXCEPTION	
			WHEN OTHERS THEN
				vSql:= sqlcode||'-'||substr(sqlerrm,1,1000);
				PG_MIGRACION.INSERTA_TRAZA('DATOS 24','insert AD74A29T00', 'ERROR '||vSql||', AD74A29T00 Se ha producido un error al guardar  el registro: idAlarma, idTipoAlarma, idDispos, idLLamada: '||R_64.ID_ALARMA_24||','||vIdTipoAlarma24||','||vIdDispositivo24||','||vIdLlamada24, null);
		END;
		COMMIT;

	END LOOP;
	
	FOR R_64_O IN C_64_O LOOP
		--dbms_output.put_line('ENTRA EN LLAMADAS EMITIDAS, '||R_64_O.IDALARMA_064)
		if R_64_O.DISPOSITIVO != 'RESTOCAMBIO' then
			BEGIN
				SELECT ID_SUBTIPO_LLAMADA_56 into vIdSubtipoLlamada29
					FROM AD74A56T00 where upper(DESC_ES_56) LIKE  R_64_O.DISPOSITIVO||'%'
					AND ID_TIPO_LLAMADA_56 = vTipoLlamadaEmitida;
				SELECT AD74A29T00_MIG_SEQ.NEXTVAL INTO vIdLlamada24 FROM DUAL;
				
				-- SENTIDO_29: EMITIIDO valor 0
				INSERT INTO AD74A29T00_MIG (ID_LLAMADA_29,ID_TIPO_LLAMADA_29,ID_SUBTIPO_LLAMADA_29,SENTIDO_29,
										DURACION_29,TIEMPO_RESPUESTA_29,ID_LLAMADA_PS_29,
										RESPUESTA_29,F_ALTA_29,USU_ALTA_29)
				VALUES (vIdLlamada24, vTipoLlamadaEmitida, vIdSubtipoLlamada29,0,
							NULL,NULL,null,
							NULL,R_64_O.FECHAALARMA_064,'MIGRADO'); 
				--DBMS_OUTPUT.PUT_LINE('ENTRA 3');
				--SELECT AD74A24T00_MIG_SEQ.NEXTVAL INTO vIdAlarma FROM DUAL;
				
				INSERT INTO AD74A24T00_MIG (ID_ALARMA_24,ID_TIPO_ALARMA_24,ID_DISPOSITIVO_24,ID_LLAMADA_24,
										F_ALARMA_24,ID_SOLICITANTE_24,F_ALTA_24,USU_ALTA_24,ID_TIPO_RESOL_24)
					VALUES (R_64_O.ID_ALARMA_24,vIdLlamadas,null,vIdLlamada24,
							R_64_O.FECHAALARMA_064,R_64_O.ID_SOLICITANTE_01,R_64_O.FECHAMODIF_064,'MIGRADO',null);
			EXCEPTION	
				WHEN OTHERS THEN
					--dbms_output.put_line('Se ha producido un error al guardar el registro: idAlarma, idTipoAlarma, idDispos, idLLamada: '||vIdAlarma||','||vIdTipoAlarma24||','||vIdDispositivo24||','||vIdLlamada24);
					vSql:= sqlcode||'-'||substr(sqlerrm,1,1000);
					PG_MIGRACION.INSERTA_TRAZA('DATOS 24','insert AD74A29T00', 'ERROR '||vSql||', AD74A29T00 Se ha producido un error al guardar  el registro: idTipoAlarma, idDispos, idLLamada: '||vIdTipoAlarma24||','||vIdDispositivo24||','||vIdLlamada24, null);
			END;
			COMMIT;
		else 
			vSql:= sqlcode||'-'||substr(sqlerrm,1,1000);
			PG_MIGRACION.INSERTA_TRAZA('DATOS 24','insert AD74A29T00', 'ERROR '||vSql||', AD74A29T00 No se ha guardado el registro, no existe correspondencia MOTIVOALARMA: '||R_64_O.MOTIVOALARMA_064, null);
		end if;

	END LOOP;
	
	
	
END P_MIGRACION_07_ALA_MIG;
/

