

if not exists(select* from alq_tipotarifa where tipoTarifa='elementoProducido')
begin 
insert into alq_tipotarifa (uid,eid,tipoTarifa,tipoTarifa_codigo,valor)
select seg_usuario.id,'01','elementoProducido','elementoProducido','9' from seg_usuario where id=1
end




update doc_estadotipodocumento_subtipodocumento set estadotipodocumento_subtipodocumento='val_configobra'
from    doc_estadotipodocumento_subtipodocumento
inner join doc_subtipodocumento  on doc_subtipodocumento.id=doc_estadotipodocumento_subtipodocumento.id_subtipodocumento 
and doc_subtipodocumento.id_tipodocumento=9
inner join doc_estadotipodocumento on doc_estadotipodocumento .id=doc_estadotipodocumento_subtipodocumento.id_estadotipodocumento_destino
and doc_estadotipodocumento.estadotipodocumento_codigo='CON'


IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[val_configobra]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[val_configobra]
GO
CREATE PROCEDURE [val_configobra]
 @p_id_documento as int=-1,
 @p_id_usuario as int=-1,
 @p_eid as varchar(50) 
AS
BEGIN
declare @mensaje as varchar(100)	
set @mensaje=''
--validar equipos devueltos
INSERT INTO [dis_obra]
           ([uid]
           ,[eid]
           ,[id_usuario_modifico]
           ,[id_usuario_creo]
           ,[fechaModificacion]
           ,[fechaCreacion]
           ,[active]
           ,[obra]
           ,[obra_codigo]
           ,[fechaInicial_ff]
           ,[fechaFinal_ff]
           ,[id_sucursal])        
select min(seg_usuario.uid)
,min(seg_usuario.eid),1,1
,getdate(),getdate(),1
,alq.prefijo+'-'+cast( alq.documento_numero as varchar(200))+' '+equ.equipo_serial
,detalle.id
,alq.fecha_fh
,getdate()
,detalle.id_sucursal
 from doc_documento ALQ
inner join equ_detallealquiler detalle on detalle.[id_documento.alquiler]=ALQ.id and id_equipo>0 and detalle.active=1
inner join alq_tarifa tarifa on tarifa.id_detallealquiler=detalle.id and tarifa.id_tipotarifa in (2,7,9,8 ) and tarifa.active =1
inner join equ_equipo equ on equ.id=detalle.id_Equipo and equ.active =1
,seg_usuario 
where ALQ.id= @p_id_documento and seg_usuario.id=1 
and  detalle.id not in (select cast (obr.[obra_codigo] as int ) from dis_obra obr
inner join  dis_obra_catalogo dicat on dicat .id_obra=obr.id
inner join  dis_obra_equipo  dicequ on dicequ  .id_obra=obr.id
where obr.active=1 and  isnumeric(obr.[obra_codigo] )=1 )
group by equ.id,detalle.id,alq.prefijo,alq.documento_numero ,equ.equipo_serial,alq.fecha_fh,detalle.id_sucursal


--asociar equipos a la obra
INSERT INTO [dis_obra_equipo]
           ([uid]
           ,[eid]
           ,[id_usuario_modifico]
           ,[id_usuario_creo]
           ,[fechaModificacion]
           ,[fechaCreacion]
           ,[active]
           ,[obra_equipo]
           ,[id_obra]
           ,[id_equipo]
           ,[promedioEsperado])
select min(seg_usuario.uid)
,min(seg_usuario.eid),1,1,getdate(),getdate(),1
, equ.equipo_serial
,obra.id
,equ.id
,min(equ.promediohoras)
 from doc_documento doc
inner join equ_detallealquiler detalle on doc.id=detalle.[id_documento.alquiler] and detalle.active=1
inner join alq_tarifa tarifa on tarifa.id_detallealquiler=detalle.id and tarifa.id_tipotarifa in (2,7,9,8 ) and tarifa.active=1
inner join equ_equipo equ on equ.id=detalle.id_equipo and detalle.id_equipo>0 and equ.active=1
inner join dis_obra obra on cast(obra.obra_codigo as int)=detalle.id and isnumeric(obra.obra_codigo)=1 and obra.active =1
,seg_usuario where detalle.active=1 and seg_usuario.id=1 and  doc.id= @p_id_documento
and  detalle.id not in (select cast (obr.[obra_codigo] as int ) from dis_obra obr
inner join  dis_obra_catalogo dicat on dicat .id_obra=obr.id
inner join  dis_obra_equipo  dicequ on dicequ  .id_obra=obr.id
where obr.active=1 and  isnumeric(obr.[obra_codigo] )=1 )
group by equ.id,detalle.id,obra.id , equ.equipo_serial

--
INSERT INTO [dis_obra_catalogo]
           ([uid]
           ,[eid]
           ,[id_usuario_modifico]
           ,[id_usuario_creo]
           ,[fechaModificacion]
           ,[fechaCreacion]
           ,[active]
           ,[obra_catalogo]
           ,[cantidad]
           ,[valorUnitario]
           ,[total]
           ,[promedioDia]
           ,[id_obra]
           ,[id_catalogo]
           ,[valorMaximo]
           ,[valorMinimo])
      select seg_usuario.uid
,seg_usuario.eid,1,1,getdate(),getdate(),1
, equ.equipo_serial +'-'+ cat.codigoinventario
,1
,item.valorunitarioplaneado
,item.valorunitarioplaneado* item.cantidadplaneado
,equ.promediohoras
,obra.id
,item.id_catalogo
,100,0
 from doc_documento doc
inner join equ_detallealquiler detalle on doc.id=detalle.[id_documento.alquiler] and detalle.active=1
inner join alq_tarifa tarifa on tarifa.id_detallealquiler=detalle.id and tarifa.id_tipotarifa in (2,7,9,8 )and detalle .active =1
inner join equ_equipo equ on equ.id=detalle.id_equipo and detalle.id_equipo>0 and equ.active=1
inner join dis_obra obra on cast(obra.obra_codigo as int)=detalle.id and isnumeric(obra.obra_codigo)=1 and obra.active=1
inner join doc_itemdocumento item on item.id  =tarifa.id_itemdocumento and item.active =1
inner join cat_catalogo cat on cat.id=item.id_catalogo and cat.active =1
,seg_usuario where seg_usuario.id=1 and  doc.id= @p_id_documento  
and  detalle.id not in (select cast (obr.[obra_codigo] as int ) from dis_obra obr
inner join  dis_obra_catalogo dicat on dicat .id_obra=obr.id
inner join  dis_obra_equipo  dicequ on dicequ  .id_obra=obr.id
where obr.active=1 and  isnumeric(obr.[obra_codigo] )=1 )

select @mensaje

END













