Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if exists (select 1
- from sysobjects
- where id = object_id('pru_valida_archivo_aumento')
- and type = 'P')
- drop procedure pru_valida_archivo_aumento
- go
- CREATE PROC pru_valida_archivo_aumento
- ( @job integer )
- AS
- BEGIN
- DECLARE @item integer,
- @tipo_registro char(20),
- @tregistro char(1),
- @nomen_largo integer,
- @nomen tinyint,
- @codigo char(10),
- @concep char(20),
- @opcion_concepto char(40),
- @moneda char(5),
- @porc_mas_val_p decimal(5,2),
- @porc_menos_val_p decimal(5,2),
- @por_valor_p decimal(5,2),
- @valor decimal(12,2),
- @unidad decimal(12,2),
- @opcion_valor_propio char(40),
- @porc_urg_diurna decimal(5,2),
- @porc_urg_nocturna decimal(5,2),
- @plus decimal(12,2),
- @opciones_val_plus char(40),
- @incluye_normas char(30),
- @excluye_normas char(30),
- @dias decimal(12,2),
- @dias_sala char(30),
- @opciones_normas char(40),
- @procesa_baja char(2),
- @validacion smallint,
- @estado_registro smallint,
- @error integer,
- @desc_error varchar(255),
- @rtn integer,
- @tipo_aumento char(1),
- @tunidad integer,
- @prestacion char(10),
- @capitulo char(2),
- @subcapitulo char(2),
- @vigencia datetime,
- @inter_sala tinyint,
- @conve integer,
- @estado_reg smallint,
- @estado_arch smallint,
- @estado_job smallint,
- @con_error bit
- SELECT @tipo_aumento = id_tipo_aumento,
- @vigencia = vigencia,
- @conve = conve
- FROM jobs_aumento_masivo_convenio
- WHERE id_job = @job AND
- baja_fecha IS NULL
- DECLARE cur_archivo CURSOR FOR
- SELECT item,
- tipo_registro,
- nomen,
- codigo,
- concep,
- opcion_concepto,
- moneda,
- opcion_valor_propio,
- opciones_val_plus,
- opciones_normas
- FROM aumen_masivo_det_archivo
- WHERE id_job = @job
- FOR UPDATE OF id_estado, fecha_estado
- SELECT @con_error = 0
- OPEN cur_archivo
- WHILE 1 = 1
- BEGIN
- FETCH cur_archivo INTO @item, @tipo_registro, @nomen_largo, @codigo, @concep, @opcion_concepto, @moneda,
- @opcion_valor_propio, @opciones_val_plus, @opciones_normas
- IF @@sqlstatus <> 0
- BREAK
- SELECT @estado_reg = 9, @tregistro = ''
- -- Valido tipo de registro
- EXEC @rtn = aummas_valida_tipo_registro @tipo_registro = @tipo_registro,
- @tipo_char = @tregistro OUTPUT,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 9999 "Error al validar los registros."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Valor columna: " + convert(varchar(30), @tipo_registro)
- -- Error en Tipo_Registro, Valor Invalido en Tipo de Registro.
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- /******************************/
- /* VALIDACIONES TIPO UNIDAD */
- /******************************/
- IF @tregistro = 'T'
- BEGIN
- SELECT @tunidad = convert(integer, @codigo)
- EXEC @rtn = aummas_valida_tipo_unidad @tipo_unidad = @tunidad,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_tipo_unidad."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Tipo Unidad: " + convert(varchar(30), @codigo)
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- /******************************/
- /* VALIDACIONES NOMENCLADOR */
- /******************************/
- IF @nomen_largo >= 1024 OR @nomen_largo <= 0
- BEGIN
- SELECT @desc_error = "Nomen: " + isnull(convert(varchar(15), @nomen_largo), "")
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = 946,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- UPDATE aumen_masivo_det_archivo
- SET id_estado = @estado_reg,
- fecha_estado = getdate()
- WHERE CURRENT OF cur_archivo
- SELECT @error = @@error
- IF @error <> 0
- BEGIN
- raiserror 99999 "Error al cambiar el estado del registro."
- RETURN 1
- END
- CONTINUE
- END
- ELSE
- SELECT @nomen = @nomen_largo
- IF @tregistro = 'N'
- BEGIN
- SELECT @nomen = convert(tinyint, @codigo)
- EXEC @rtn = aummas_valida_nomenclador @nomen = @nomen,
- @fecha_aumento = @vigencia,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_nomenclador."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Nomen: " + isnull(convert(varchar(15), @nomen), "")
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- /******************************/
- /* VALIDACIONES PRESTACIONES */
- /******************************/
- IF @tregistro = 'P'
- BEGIN
- SELECT @prestacion = convert(char(10), @codigo)
- EXEC @rtn = aummas_valida_prestacion @nomen = @nomen,
- @prestacion = @prestacion,
- @fecha_aumento = @vigencia,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_prestacion."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Nomen: " + isnull(convert(varchar(15), @nomen), "") +
- " Prestacion: " + convert(varchar(30), @codigo)
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- /******************************/
- /* VALIDACIONES MODULO DIA */
- /******************************/
- IF @tregistro = 'M'
- BEGIN
- SELECT @inter_sala = convert(integer, @codigo)
- EXEC @rtn = aummas_valida_modulo_dia @conve = @conve,
- @inter_sala = @inter_sala,
- @fecha_aumento = @vigencia,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_modulo_dia."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Conve: " + isnull(convert(varchar(15), @conve), "") +
- " Modulo Dia: " + convert(varchar(30), @inter_sala)
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- /******************************/
- /* VALIDACIONES CAPITULO */
- /******************************/
- IF @tregistro = 'C'
- BEGIN
- SELECT @capitulo = convert(char(2), @codigo)
- EXEC @rtn = aummas_valida_capitulo @nomen = @nomen,
- @capitulo = @capitulo,
- @fecha_aumento = @vigencia,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_capitulo."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Nomen: " + isnull(convert(varchar(15), @nomen), "") +
- " Capitulo: " + convert(varchar(30), @codigo)
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- /******************************/
- /* VALIDACIONES SUBCAPITULO */
- /******************************/
- IF @tregistro = 'S'
- BEGIN
- SELECT @capitulo = substring(rtrim(ltrim(@codigo)), 1, 2),
- @subcapitulo = substring(rtrim(ltrim(@codigo)), 3, 2)
- EXEC @rtn = aummas_valida_subcapitulo @nomen = @nomen,
- @capitulo = @capitulo,
- @subcapitulo = @subcapitulo,
- @fecha_aumento = @vigencia,
- @error = @error OUTPUT
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- raiserror 99999 "Error en aummas_valida_subcapitulo."
- RETURN 1
- END
- IF @error <> 0
- BEGIN
- SELECT @desc_error = "Nomen: " + isnull(convert(varchar(15), @nomen), "") +
- " Capitulo: " + @capitulo + " Subcapitulo: " + @subcapitulo
- EXEC @rtn = pri_aum_mas_err_arch @id_job = @job,
- @item = @item,
- @id_error = @error,
- @descripcion = @desc_error
- IF @rtn <> 0
- BEGIN
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- RETURN 1
- END
- SELECT @estado_reg = 10, @con_error = 1
- END
- END
- UPDATE aumen_masivo_det_archivo
- SET id_estado = @estado_reg,
- fecha_estado = getdate()
- WHERE CURRENT OF cur_archivo
- SELECT @error = @@error
- IF @error <> 0
- BEGIN
- raiserror 99999 "Error al cambiar el estado del registro."
- RETURN 1
- END
- END
- CLOSE cur_archivo
- DEALLOCATE CURSOR cur_archivo
- IF @con_error = 0
- SELECT @estado_job = 3
- ELSE
- SELECT @estado_job = 2
- UPDATE jobs_aumento_masivo_convenio
- SET id_estado = @estado_job,
- fecha_estado = getdate(),
- modi_fecha = getdate()
- WHERE id_job = @job
- SELECT @error = @@error
- IF @error <> 0
- BEGIN
- raiserror 99999 "Error al cambiar el estado de la Tarea."
- RETURN 1
- END
- RETURN 0
- END
- EXEC sp_procxmode 'dbo.pru_valida_archivo_aumento','unchained'
Add Comment
Please, Sign In to add comment