CREATE Procedure sp_OCEstadosDocumentoListarCompradorCompleto @idempresa int , @idorgc int, @numero varchar(35), @nombre varchar(50), @numeropedido varchar(35), @idusuario varchar(30), @empresav varchar(255), @solicitante varchar(30), @fechainicio datetime, @fechafinal datetime, @idfunc1 int, @idfunc2 int, @regularizacion int, @idestadodoc1 int, @idestadodoc2 int, @idestadodoc3 int, @idestadodoc4 int, @idestadodoc5 int, @idestadodoc6 int, @idestadodoc7 int, @idestadodoc8 int, @idestadodoc9 int, @idestadodoc10 int, @idestadodoc11 int, @idestadodoc12 int, @idestadodoc13 int, @idestadodoc14 int, @idestadodoc15 int as if @regularizacion = -1 set @regularizacion = null if @idorgc = -1 set @idorgc = null select oc.idempresa, oc.idorgc, oc.idoc as iddoc, oc.numoc as numdoc, oc.nomoc as nomdoc, oc.idestadodoc, oc.comentarios, oc.fechaenvio, orgc.nombre as nombreorgc, oc.fechacreacion, getdate() as fecharecepcion, 0 as cantidadlineas, u.nombre as nombreusuario, ed.descripcionc as estado, oc.empvnombref as nombproveedor, oc.empcnombref as cliente, oc.descuentos, oc.porcimpuesto, oc.total, mon.descripcorta as descripcortamo, mon.descriplarga as DESCRIPLARGAMO, 0 as esintegrado, oc.idempresav, OC.ENVIADA ENVIADA from oc, usuarios u, orgc, moneda mon, estadosdoc ed where mon.idmoneda = oc.idmoneda and ed.idestadodoc = oc.idestadodoc and oc.idempresa = @idempresa and oc.idorgc = orgc.idorgc and oc.idorgc = isnull(@idorgc,oc.idorgc) and orgc.idempresa = oc.idempresa and orgc.idorgc = oc.idorgc and orgc.activo = 1 and oc.idempresa = u.idempresa and oc.idusuario = u.idusuario and oc.regularizacion = isnull(@regularizacion, oc.regularizacion) and (@solicitante = '' or (oc.idusuario like @solicitante + '%' or u.nombre like @solicitante + '%')) and (@nombre = '' or oc.nomoc like '%' + @nombre + '%') and (@numero = '' or oc.numoc like @numero + '%') and oc.fechacreacion between @fechainicio and @fechafinal and oc.idestadodoc in (@idestadodoc1,@idestadodoc2,@idestadodoc3,@idestadodoc4,@idestadodoc5,@idestadodoc6,@idestadodoc7,@idestadodoc8,@idestadodoc9,@idestadodoc10,@idestadodoc11,@idestadodoc12,@idestadodoc13,@idestadodoc14,@idestadodoc15) and (@numeropedido = '' or dbo.fn_DevuelveBuscaPMLinea (oc.idempresa , oc.idorgc , oc.idoc , @numeropedido) > 0) and (@empresav = '' or oc.orgvnombre like '%'+@empresav+'%' or oc.empvnombref like '%'+@empresav+'%') and ( select count(*) from orgcusrroles ocr, rolesfuncs rol where ocr.idempresa = oc.idempresa and ocr.idorgc = oc.idorgc and ocr.idusuario = @idusuario and ocr.idrole = rol.idrole and rol.idfunc in (@idfunc1, @idfunc2) ) > 0 order by oc.fechacreacion desc GO