--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- CREATE procedure [dbo].[Pld_ImpHisOpeAsi] @FechaInicio Datetime, @FechaFin Datetime, @idProceso int, @idEstado int out, @Registros int out, @Observacion varchar(1000) out as DECLARE @FolioInconsistencia INT select @FolioInconsistencia=max(idHistorico_Origen_Inconsistencia) from PLD_HISTORICO_ORIGEN_INCONSISTENCIA set @FolioInconsistencia=isnull(@FolioInconsistencia,0) set @FolioInconsistencia=@FolioInconsistencia+1 insert into op_log values(@FechaInicio) insert into op_log values(@FechaFin) UPDATE dbo.PLD_PROCESO SET idEstado=2 WHERE IdProceso=@IdProceso set @idEstado =2 SELECT @Registros=COUNT(*) from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin and idEstado=1 set @Registros=ISNULL(@Registros,0) --Descarto Inconsistencias de registros sin importar UPDATE dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA SET idEstado=2 --2 Inactivo WHERE idHistorico_Origen in ( SELECT idHistorico_Origen from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin and idEstado=1 ) --Analiso Inconsitencias en movimientos sin importar Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,1, 'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(idOperacion)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,2,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_empresa)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,3,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_sistema)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,4,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_modulo)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,5,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_producto)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,6,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_sucursal)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,7,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_cliente)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,8,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(num_contrato)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,9,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(fec_movimiento)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,10,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(mon_movimiento)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,11,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(num_movimiento)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,12,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(num_detalle)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,13,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_tipo_operacion)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,14,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_instumento_monetario)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,15,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_divisa)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,16,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_grupo)=0 Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,17,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND len(cod_origen)=0 --SIN EQUIVALENCIA EN CATALOGOS --Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,18,'',1 --, UPPER(Q1.Username) as UsuarioCreacion, UPPER(Q2.Username) as UsuarioActualizacion from OP_USUARIO Q1, OP_USUARIO Q2, dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_tipo_operacion=0 --Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,19,'',1 --, UPPER(Q1.Username) as UsuarioCreacion, UPPER(Q2.Username) as UsuarioActualizacion from OP_USUARIO Q1, OP_USUARIO Q2, dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_sucursal=0 --Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,20,'',1 --, UPPER(Q1.Username) as UsuarioCreacion, UPPER(Q2.Username) as UsuarioActualizacion from OP_USUARIO Q1, OP_USUARIO Q2, dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_instumento_monetario=0 --Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,21,'',1 --, UPPER(Q1.Username) as UsuarioCreacion, UPPER(Q2.Username) as UsuarioActualizacion from OP_USUARIO Q1, OP_USUARIO Q2, dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_divisa=0 --Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,22,'',1 --, UPPER(Q1.Username) as UsuarioCreacion, UPPER(Q2.Username) as UsuarioActualizacion from OP_USUARIO Q1, OP_USUARIO Q2, dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_divisa=0 ----SIN EQUIVALENCIO EN CATALOGOS Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,18,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_tipo_operacion NOT IN (SELECT Equivalencia from PLD_COD_TIPO_OPERACION) Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,19,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_sucursal NOT IN (SELECT Equivalencia from PLD_COD_SUCURSAL) Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,20,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_instumento_monetario NOT IN (SELECT Equivalencia from PLD_COD_INSTRUMENTO_MONETARIO) Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,21,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_divisa NOT IN (SELECT Equivalencia from PLD_COD_DIVISA) Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,22,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_tipo_servicio NOT IN (SELECT Equivalencia from PLD_COD_TIPO_SERVICIO) Insert into dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA(idProceso,idHistorico_Origen,idInconsistencia,observacion,idEstado) SELECT @idProceso,idHistorico_Origen,23,'ID HISTORICO ORIGEN '+Cast(idHistorico_Origen as varchar)+', ID OPERACION '+idOperacion+', NUM MOVIMIENTO '+num_movimiento,1 from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin AND idEstado=1 AND cod_cliente NOT IN (SELECT Equivalencia from PLD_PERSONA) --Importar registros sin inconsistencias activas Insert into dbo.PLD_HISTORICO_DESTINO (idProceso,idHistorico_Origen,[idOperacion],[cod_empresa],[cod_sistema],[cod_modulo],[cod_producto],[cod_sucursal],[cod_cliente], [num_contrato],[fec_movimiento],[mon_movimiento],[num_movimiento],[num_detalle],[cod_tipo_operacion],[cod_instumento_monetario],[cod_divisa],[cod_tipo_servicio],[cod_grupo],[cod_origen], [idtipo_operacion],[idinstrumento_monetario],[iddivisa],[idtipo_servicio],idEstado,idEstado1,idEstado2,idEstado3,idEstado4,idEstado5,idSucursal,idPersona ) select @idProceso,A.idHistorico_Origen,A.idOperacion,A.cod_empresa,A.cod_sistema,A.cod_modulo,A.cod_producto,A.cod_sucursal,A.cod_cliente,A.num_contrato, A.fec_movimiento,A.mon_movimiento,A.num_movimiento,A.num_detalle,A.cod_tipo_operacion,A.cod_instumento_monetario,A.cod_divisa,A.cod_tipo_servicio,A.cod_grupo,A.cod_origen, B.IdTipo_Operacion,C.IdInstrumento_Monetario,D.IdDivisa,E.idTipo_Servicio,1,1,1,1,1,1,F.IdSucursal,G.idPersona from dbo.PLD_HISTORICO_ORIGEN A,dbo.PLD_COD_TIPO_OPERACION B,dbo.PLD_COD_INSTRUMENTO_MONETARIO C,dbo.PLD_COD_DIVISA D,dbo.PLD_COD_TIPO_SERVICIO E,dbo.PLD_COD_SUCURSAL F,dbo.PLD_PERSONA G where A.cod_tipo_operacion=B.Equivalencia and A.cod_instumento_monetario=C.Equivalencia and A.cod_divisa=D.Equivalencia and A.cod_tipo_servicio=E.Equivalencia and A.cod_sucursal=F.Equivalencia and A.cod_cliente=G.Equivalencia and A.fec_movimiento between @FechaInicio and @FechaFin and A.idEstado=1 AND A.idHistorico_Origen not in ( SELECT x.idHistorico_Origen from dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA x WHERE x.idHistorico_Origen_Inconsistencia >= @FolioInconsistencia) --Actualizar Registro a Migrados update dbo.PLD_HISTORICO_ORIGEN SET idEstado=2 --2 Migrado WHERE fec_movimiento between @FechaInicio and @FechaFin and idEstado=1 AND idHistorico_Origen not in ( SELECT x.idHistorico_Origen from dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA x WHERE x.idHistorico_Origen_Inconsistencia >= @FolioInconsistencia) declare @RegistrosOmitidos int declare @RegistrosImportados int declare @Inconsistencias int SELECT @RegistrosImportados=COUNT(*) from dbo.PLD_HISTORICO_DESTINO WHERE idProceso=@idProceso and idEstado=1 set @RegistrosImportados=ISNULL(@RegistrosImportados,0) SELECT @RegistrosOmitidos=COUNT(*) from dbo.PLD_HISTORICO_ORIGEN WHERE fec_movimiento between @FechaInicio and @FechaFin and idEstado=1 set @RegistrosOmitidos=ISNULL(@RegistrosOmitidos,0) SELECT @Inconsistencias=COUNT(*) from dbo.PLD_HISTORICO_ORIGEN_INCONSISTENCIA WHERE idProceso=@idProceso and idEstado=1 set @Inconsistencias=ISNULL(@Inconsistencias,0) set @Observacion = 'Periodo del '+dbo.pld_FechaACadenaEnFormatoCorto(@FechaInicio)+ ' al '+dbo.pld_FechaACadenaEnFormatoCorto(@FechaFin)+ ' Registros Procesados '+dbo.pld_NumeroACadenaEnFormatoMilesSinDecimales(@Registros)+ ' ,Registros Importados '+dbo.pld_NumeroACadenaEnFormatoMilesSinDecimales(@RegistrosImportados)+ ' ,Registros Omitidos '+dbo.pld_NumeroACadenaEnFormatoMilesSinDecimales(@RegistrosOmitidos)+ ' ,Inconsistencias '+dbo.pld_NumeroACadenaEnFormatoMilesSinDecimales(@Inconsistencias) set @Observacion = UPPER(@Observacion) UPDATE dbo.PLD_PROCESO SET Registros=@Registros , RegistroActual=@Registros , Observacion=@Observacion, idEstado=3 WHERE IdProceso=@IdProceso set @idEstado = 3