declare @cerpre as int 
declare @uid as varchar(100)
declare @eid as varchar(100)
declare @subtipospre as varchar(max)
set @subtipospre=''
select @subtipospre =Valor from gen_config where config='subtipoPreliquidacionCliente'
declare @tablita as table(id int)
insert into @tablita(id)
exec('select id from  doc_subtipodocumento where id in ('+ @subtipospre +')')

select @uid=uid ,@eid =eid from seg_usuario where id=1



-- creo el estado APR unico para la PRE

if not exists (select * from  doc_estadotipodocumento est
inner join doc_estadotipodocumento_subtipodocumento movsub on est.id=movsub.id_estadotipodocumento or est.id=movsub.id_estadotipodocumento_destino 
inner join doc_subtipodocumento sub on sub.id=movsub.id_subtipoDocumento
inner join @tablita subcon on subcon .id=sub.id
 where estadoTipoDocumento_codigo ='CER' and  sub.subtipoDocumento_codigo like 'PRE%') 
begin
INSERT INTO [doc_estadoTipoDocumento]
           ([uid]
           ,[eid]
           ,[id_usuario_modifico]
           ,[id_usuario_creo]
           ,[fechaModificacion]
           ,[fechaCreacion]
           ,[active]
           ,[estadoTipoDocumento]
           ,[estadoTipoDocumento_codigo]
           ,[afectaIndicador]
           ,[editaDocumento]
           ,[orden]
           ,[puedeRegresar]
           ,[color]
           ,[afectaInventario]
           ,[id_tipoDocumento]
           ,[descripcion])
  select top 1 @uid ,@eid 
		   ,[id_usuario_modifico]
           ,[id_usuario_creo]
           ,GETDATE ()
           ,GETDATE ()
           ,1
           ,[estadoTipoDocumento]
           ,'CER'
           ,[afectaIndicador]
           ,[editaDocumento]
           ,[orden]
           ,[puedeRegresar]
           ,[color]
           ,[afectaInventario]
           ,[id_tipoDocumento]
           ,'CERPRE Estado aprobada unico para la preliquidacion'
     from [doc_estadoTipoDocumento] where id_tipodocumento=4  and estadotipodocumento_codigo in ('APR')
    
     set @cerpre =(select top 1 id from  doc_estadoTipoDocumento where id_tipoDocumento =4 and descripcion like'CERPRE%' and estadoTipoDocumento_codigo in('CER'))
     
     -- actualizo el flujo de los estado para las preliqudaciones unicamente
     
     update doc_estadotipodocumento_subtipodocumento
     set       id_estadotipodocumento_destino=@cerpre
     from doc_estadotipodocumento_subtipodocumento
     inner join doc_estadotipodocumento_subtipodocumento movsub on movsub.id=doc_estadotipodocumento_subtipodocumento.id
	 inner join doc_subtipodocumento sub on sub.id=movsub.id_subtipoDocumento
	 inner join doc_estadotipodocumento est on  est.id=movsub.id_estadoTipoDocumento_destino
	 inner join @tablita subcon on subcon .id=sub.id
     where sub.id_tipodocumento in (4) and est.estadotipodocumento_codigo in ('APR') and sub.subtipoDocumento_codigo like'PRE%'
     and doc_estadotipodocumento_subtipodocumento.active=1
     
     --actualizo el historico de los estados de los documentos de preliquidaciones
     
     update doc_documento_estadoTipoDocumento 
     set id_estadoTipoDocumento =@cerpre  
     from doc_documento_estadoTipoDocumento 
     inner join doc_documento doc on doc.id=doc_documento_estadotipodocumento.id_documento 
     inner join doc_subtipoDocumento sub on sub.id =doc.id_subtipodocumento
     inner join doc_estadotipodocumento est on est.id = doc_documento_estadoTipoDocumento.id_estadotipodocumento
     inner join @tablita subcon on subcon .id=sub.id
     where sub.id_tipodocumento in (4) and est.estadotipodocumento_codigo in ('APR') and sub.subtipoDocumento_codigo like'PRE%'
     
     -- actualizo es estado actual de la preliquidacion si tiene estado apr y no cer
     
     update doc_documento 
     set id_estadoTipoDocumento =@cerpre  
     from doc_documento
     inner join doc_subtipoDocumento sub on sub.id =doc_documento .id_subtipodocumento
     inner join doc_estadotipodocumento est on est.id = doc_documento.id_estadotipodocumento
     inner join @tablita subcon on subcon .id=sub.id
     where sub.id_tipodocumento in (4) and est.estadotipodocumento_codigo in ('APR') and sub.subtipoDocumento_codigo like'PRE%'
end
else 
begin

print 'Se debe configurar estados manualmente para las preliquidaciones'

end