ALTER procedure [dbo].[pa_generarHorarioSala] --'03','07-10-2014',1,22,60
@codigo_hab char(2),
@diaEnCurso varchar(10),
@horainicio int, --09:00
@horafin int, --22:00
@horarango int --00:30
as
begin
BEGIN TRANSACTION
BEGIN TRY
--calculando horario
declare @horaAvanza varchar(max)
create table #tbl_ayuda
(
Tcodigo int not null identity(1,1),
Thorario varchar(max)
)
insert into #tbl_ayuda(thorario)
values(cast(@horainicio as varchar(max))+cast(':00' as varchar(max)))
--select * from #tbl_ayuda
declare @i as int
set @i=1
declare @horaprueba varchar(max)
set @horaprueba = @horainicio
while(@horaprueba<>@horafin)
begin
set @horaavanza=(select substring(ltrim(dbo.addtime((select thorario from #tbl_ayuda where tcodigo=@i),cast('00:' as varchar(max))+ cast(@horarango as varchar(max)))),12,8))
set @horaprueba=(select datepart(hh,substring(ltrim(dbo.addtime((select thorario from #tbl_ayuda where tcodigo=@i),cast('00:' as varchar(max))+ cast(@horarango as varchar(max)))),12,8)))
insert into #tbl_ayuda(thorario)
values(@horaavanza)
set @i=@i+1
end
--select * from #tbl_ayuda
--
declare @cantMedicos as int
set @cantMedicos=(select count(*) from tbl_habitacion where estado_hab<>0 and codigo_hab=@codigo_hab)
--declare @i as integer
set @i=1
--select * from tbl_habitacion
--declare @codigo_med as varchar(max)
--select * from tbl_procedimiento
--select * from tbl_cita
while (@i<=@cantMedicos)
begin
--select 'entro'
-- set @codigo_med =(select codigo_med from tbl_medico where estado_med<>'01' and cast(codigo_med as int)=@i)
if not exists(select * from tbl_procedimiento where codigo_hab=@codigo_hab and fecha_pro=@diaEnCurso)
begin
insert into tbl_procedimiento(codigo_hab,fecha_pro,hora_pro,estado_pro,docgenerado,coddocgen)
select @codigo_hab,@diaEnCurso,Thorario,1,'','' from #tbl_ayuda
end
set @i =@i+1
end
COMMIT TRANSACTION
END TRY
BEGIN CATCH
--select 'hola'
DECLARE @ErrorMessage NVARCHAR(4000);
SELECT @ErrorMessage = 'SQL:' + ERROR_MESSAGE()
raiserror(@ErrorMessage,11,1)
ROLLBACK TRANSACTION
END CATCH
end