Вы находитесь на странице: 1из 4

/* @FechaCierre datetime fechacierre = @fechaCierre, */ CREATE PROCEDURE dbo.

ActualizarProyecto (@pr varchar(2),@sp varchar(2),@ac2 varchar(2),@sa2 varchar(2),@unidad varchar(8 ),@codigo_proy varchar(4),@nombre_proy Ntext, @actividadSust int,@subactividad int,@tipo_proy int,@prorroga int,@renovacion i nt,@programaInst ntext,@OtrosProy Ntext, @otrosComponentes Ntext,@NInscripcion Ntext,@fechaInicio datetime,@fechaFinal datetime,@poli varchar(200), @otraUnidad Ntext,@montoucr float,@montoExterno float, @anno int,@usuario_id i nt,@interV int,@NproyAnt varchar(3),@bloqueo int,@ente varchar(500),@BioSiNo int ,@clasiBio int ,@fechaActualizacion datetime) AS declare @variosPI nvarchar(255) declare @finIndex integer declare @PInum nvarchar(5) declare @resumen nvarchar(255) declare @variasPols nvarchar(255) declare @PolsNum nvarchar(6) declare @bandera int if EXISTS (select * from proyecto where codigo_proy = @NproyAnt and cod_unid = @unidad and user_id = @usuario_id) BEGIN UPDATE proyecto SET pr = @pr,sp = @sp,ac=@ac2,sa=@sa2,cod_unid =@unidad ,codigo_proy=@codigo_proy,nombre_proy=@nombre_proy, actividad_sustantiva= @actividadSust,subactividad = @subactividad,tipo_proy = @t ipo_proy,ampliacion_prorroga = @prorroga, renovacion = @renovacion,programa = @OtrosProy,programa_adscrip=@programaInst,ot ros_componentes=@otrosComponentes,numero_inscripcion=@NInscripcion, fecha_inicio = @fechaInicio,fecha_final=@fechaFinal,otra_unidad_ejecutora = @otr aUnidad,costo_ucr=@montoucr, costo_externo=@montoExterno,anno=@anno,intervice = @interV, estado_recomendacion = @bloqueo,ente = @ente, BiosiNo = @BiosiNo,ClasiBio = @clasiBio,fechaActualiza cion = @fechaActualizacion where codigo_proy=@NproyAnt and user_id = @usuario_id and cod_unid = @unidad UPDATE partida_x_proyecto set codigo_proyecto = @codigo_proy where cod_unid = @u nidad and codigo_proyecto= @NproyAnt UPDATE objetivo_x_proyecto set numero_proyecto = @codigo_proy where cod_unid = @ unidad and numero_proyecto= @NproyAnt UPDATE articulo_x_partida_x_proyecto set numero_proyecto = @codigo_proy where co d_unid = @unidad and numero_proyecto= @NproyAnt UPDATE cronograma_x_proyecto set cod_proyecto = @codigo_proy where cod_unid = @u nidad and cod_proyecto= @NproyAnt UPDATE articulo_x_partida_x_proyecto set numero_proyecto = @codigo_proy where co d_unid = @unidad and numero_proyecto= @NproyAnt UPDATE plaza_x_proyecto set cod_proyecto = @codigo_proy where cod_unid = @unidad and cod_proyecto= @NproyAnt UPDATE responsable_x_proyecto set codigo_proyecto = @codigo_proy where cod_unid = @unidad and codigo_proyecto= @NproyAnt delete from reporteProgInst Where user_id = @usuario_id and codigo_proy = @N proyAnt and cod_unid = @unidad delete from reportePols Where user_id = @usuario_id and codigo_proy = @Nproy Ant and cod_unid = @unidad /*Encargado de extaer el campo*/ select @variosPI = cast(programa as nvarchar(255)) from proyecto

where cod_unid = @unidad and codigo_proy = @codigo_proy and user_id = @usuario_ id set @bandera = 0 /*setea al primer campo*/ if(charIndex(',', @variosPI) <> 0) begin set @PINum = substring (@variosPI,1,charIndex(',', @variosPI)-1) set @finIndex = charIndex(',', @variosPI) set @bandera = 1 end else begin if(len (@variosPI) <> 0)/*si existe el campo*/ begin set @PINum = @variosPI set @finIndex = len (@variosPI)+1 set @bandera = 1 end end if(@bandera = 1) begin /*setea el resumen o descripcion del campo*/ select @resumen = programa from programaInst where consecutivo = @PINum /*inserta en la tabla auxiliar los valores deseados*/ INSERT INTO reporteProgInst (cod_unid, codigo_proy, [user_id], numero_PI, desc ripcion) VALUES (@unidad, @codigo_proy ,@usuario_id, @PINum,@resumen) end /*hasta terminar la cadena*/ while (len(@variosPI) > @finIndex) BEGIN if(charIndex(',', @variosPI,@finIndex+1) <> 0 ) begin set @PINum = substring (@variosPI,@finIndex+1,(charIndex(',', @v ariosPI, @finIndex+1)-(@finIndex+1))) set @finIndex = charIndex(',', @variosPI, @finIndex+1) end else begin set @PINum = substring(@variosPI,@finIndex+1,len(@variosPI)) set @finIndex = len (@variosPI)+1 end /*setea el resumen o descripcion del campo*/ select @resumen = programa from programaInst where consecutivo = @PINum /*inserta en la tabla auxiliar los valores deseados*/ INSERT INTO reporteProgInst (cod_unid, codigo_proy,user_id, numero_PI, descrip cion) VALUES (@unidad, @codigo_proy ,@usuario_id, @PINum,@resumen) END

/*parte de politicas*/ /*Encargado de extaer el campo*/ select @variasPols = cast(Listapoliticas as nvarchar(255)) from proyecto where cod_unid = @unidad and codigo_proy = @codigo_proy and user_id = @usuario_ id set @variasPols = REPLACE(@variasPols,',',',') set @bandera = 0 /*setea al primer campo*/ if(charIndex(';', @variasPols) <> 0) begin set @PolsNum = substring (@variasPols,1,charIndex(';', @variasPols)-1) set @finIndex = charIndex(';', @variasPols) set @bandera = 1 end else begin if(len (@variasPols) <> 0)/*si existe el campo*/ begin set @PolsNum = @variasPols set @finIndex = len (@variasPols)+1 set @bandera = 1 end end if(@bandera = 1) begin /*setea el resumen o descripcion del campo*/ select @resumen = abstract from abstract_politicas where cod_politica = @PolsNum /*inserta en la tabla auxiliar los valores deseados*/ INSERT INTO reportePols (cod_unid, codigo_proy, user_id, numero_Pol, descripcion) VALUES (@unidad, @codigo_proy ,@usuario_id, @PolsNum,@resumen) end /*hasta terminar la cadena*/ while (len(@variasPols) > @finIndex) BEGIN if(charIndex(';', @variasPols,@finIndex+1) <> 0 ) begin set @PolsNum = substring (@variasPols,@finIndex+1,(charIndex(';' , @variasPols, @finIndex+1)-(@finIndex+1))) set @finIndex = charIndex(';', @variasPols, @finIndex+1) end else begin set @PolsNum = substring(@variasPols,@finIndex+1,len(@variasPols )) set @finIndex = len (@variasPols)+1 end /*setea el resumen o descripcion del campo*/ select @resumen = abstract from abstract_politicas where cod_politica = @PolsNum /*inserta en la tabla auxiliar los valores deseados*/ INSERT INTO reportePols

(cod_unid, codigo_proy, user_id, numero_Pol, descripcion) VALUES (@unidad, @codigo_proy ,@usuario_id, @PolsNum,@resumen) END Return 1 END else begin return -1 end GO

Вам также может понравиться