Criacao de filtro em procedure

0 respostas
L

bom dia pessoal

estou com um problema, tenho uma procedure no sql server 2008, e tenho que criar um filtro para usuario. essa é a procedure:
alter PROCEDURE dbo.FINANCEIRO_CONTA_CORRENTE_RELATORIO_PERIODO(  
 @intEmpresaID INT,  
 @datDataInicial DATETIME,  
 @datDataFinal DATETIME,  
 @intConciliado TINYINT,  
 @strContaCorrenteIDs VARCHAR(8000),
 @strUsuarioIDs varchar (8000),  
 @bitConsolidado BIT = 0  
) AS  
  
-- atualiza o saldo das contas correntes  
EXEC FINANCEIRO_CONTA_CORRENTE_ATUALIZAR_SALDO @intEmpresaID  
  
DECLARE  
 @datDataBase DATETIME  
  
SELECT  
 @datDataBase = DBO.SOMENTE_DATA(@datDataInicial) - 1,  
 @datDataFinal = DBO.DATA_CHEIA(@datDataFinal),  
 @bitConsolidado = isnull(@bitConsolidado,0)  
  
SELECT  
 @strContaCorrenteIDs = ISNULL(@strContaCorrenteIDs, ''),
 @strUsuarioIDs = ISNULL(@strUsuarioIDs,'')  
  
-- cria a estrutura da tabela em memória dos códigos das contas correntes  
DECLARE @tabContaCorrente TABLE(  
 ID INT  
)  
  
-- cria a tabela temporária dos códigos das contas correntes  
INSERT INTO @tabContaCorrente  
SELECT  
 CAST(REGISTRO AS INT) AS ID  
FROM  
 CRIAR_RESULTSET(@strContaCorrenteIDs)  
  
-- cria a tabela temporária do extrato a ser retornado  
DECLARE  
 @tabRetorno TABLE(  
 EMPRESA_ID INT,  
 ORDEM INT,  
 NATUREZA_TRANSACAO VARCHAR(100),  
 CONTA_CORRENTE_ID INT,  
 DATA DATETIME,  
 ID INT,  
 DOCUMENTO_ID INT,  
 CONTA_CORRENTE_NOME VARCHAR(100),  
 CONTA_CORRENTE_NUMERO_DIGITO VARCHAR(15),  
 CONTA_CORRENTE_AGENCIA_NUMERO VARCHAR(10),  
 CONTA_CORRENTE_BANCO_NUMERO VARCHAR(10),  
 EVENTO_FINANCEIRO_ID INT,  
 EVENTO_FINANCEIRO_NOME VARCHAR(100),  
 CONTA_FINANCEIRA_ID INT,  
 CONTA_FINANCEIRA_MASCARA VARCHAR(30),  
 CONTA_FINANCEIRA_NOME VARCHAR(100),  
 CENTRO_CUSTO_ID INT,  
 CENTRO_CUSTO_MASCARA VARCHAR(30),  
 CENTRO_CUSTO_NOME VARCHAR(100),  
 SIMBOLO VARCHAR(10),  
 VALOR MONEY,  
 MOEDA_ID INT,  
 HISTORICO_ID INT,  
 HISTORICO VARCHAR(1000),  
 DOCUMENTO_NUMERO VARCHAR(30),  
 DOCUMENTO_ID_CHEQUE INT,  
 DATA_SALDO DATETIME,
 USUARIO_ID_CRIACAO INT,
 USUARIO_ID_ALTERACAO INT,  
 SALDO MONEY)  
  
-- busca as transações das contas correntes  
INSERT INTO @tabRetorno  
SELECT  
 M.EMPRESA_ID,  
 0 AS ORDEM,  
 CAST('Transações' AS VARCHAR(100)) AS NATUREZA_TRANSACAO,  
 M.CONTA_CORRENTE_ID,  
 CASE @intConciliado WHEN 0 THEN M.DATA ELSE M.DATA_CONCILIACAO END AS DATA,  
 M.ID,  
 M.DOCUMENTO_ID,  
 CC.NOME AS CONTA_CORRENTE_NOME,  
 CC.NUMERO_DIGITO AS CONTA_CORRENTE_NUMERO_DIGITO,  
 CC.AGENCIA_NUMERO AS CONTA_CORRENTE_AGENCIA_NUMERO,  
 CC.BANCO_NUMERO AS CONTA_CORRENTE_BANCO_NUMERO,  
 M.EVENTO_FINANCEIRO_ID,  
 EF.NOME AS EVENTO_FINANCEIRO_NOME,  
 M.CONTA_FINANCEIRA_ID,  
 CF.MASCARA AS CONTA_FINANCEIRA_MASCARA,  
 ISNULL(CF.NOME, 'Não informada') AS CONTA_FINANCEIRA_NOME,  
 M.CENTRO_CUSTO_ID,  
 CEC.MASCARA AS CENTRO_CUSTO_MASCARA,  
 ISNULL(CEC.NOME, 'Não informado') AS CENTRO_CUSTO_NOME,  
 M.SIMBOLO,  
 M.VALOR_TESOURARIA AS VALOR,  
 M.MOEDA_ID,  
 M.HISTORICO_ID,  
 M.HISTORICO,  
 M.DOCUMENTO_NUMERO,  
 M.DOCUMENTO_ID_CHEQUE,  
 S.DATA AS DATA_SALDO,
 M.USUARIO_ID_CRIACAO,
 M.USUARIO_ID_ALTERACAO,  
 S.SALDO  
FROM  
 TB_MOVIMENTO_FINANCEIRO M  
 LEFT OUTER JOIN TB_CONTA_CORRENTE CC ON  
  (M.EMPRESA_ID = CC.EMPRESA_ID AND M.CONTA_CORRENTE_ID = CC.ID)  
 LEFT OUTER JOIN EVENTO_FINANCEIRO EF ON  
  (M.EMPRESA_ID = EF.EMPRESA_ID AND M.EVENTO_FINANCEIRO_ID = EF.ID)  
 LEFT OUTER JOIN CONTA_FINANCEIRA CF ON  
  (M.EMPRESA_ID = CF.EMPRESA_ID AND M.CONTA_FINANCEIRA_ID = CF.ID)  
 LEFT OUTER JOIN CENTRO_CUSTO CEC ON  
  (M.EMPRESA_ID = CEC.EMPRESA_ID AND M.CENTRO_CUSTO_ID = CEC.ID)  
 LEFT OUTER JOIN DBO.FINANCEIRO_CONTA_CORRENTE_SALDO_CONSOLIDADO('',@datDataBase, @intConciliado, @bitConsolidado) S ON  
  (M.CONTA_CORRENTE_ID = S.CONTA_CORRENTE_ID)and((@bitConsolidado = 1) or (M.EMPRESA_ID = S.EMPRESA_ID))  
 INNER JOIN @tabContaCorrente CCX ON  
  (@strContaCorrenteIDs = '' OR (M.CONTA_CORRENTE_ID = CCX.ID))  
WHERE  
 (M.EMPRESA_ID = @intEmpresaID or @bitConsolidado = 1) and  
 ((@intConciliado = 0 AND M.DATA BETWEEN @datDataInicial AND @datDataFinal)  
  OR (@intConciliado = 1 AND M.DATA_CONCILIACAO BETWEEN @datDataInicial AND @datDataFinal))  
 AND M.VALOR_TESOURARIA <> 0
AND M.USUARIO_ID_CRIACAO  = @strUsuarioIDs and M.USUARIO_ID_ALTERACAO = @strUsuarioIDs  
ORDER BY  
 -- empresa, conta corrente, data/data de conciliação, ID  
 1, 4, 5, 6  
  
/*  
-- busca os cheques a compensar nas contas correntes  
INSERT INTO @tabRetorno  
SELECT  
 C.EMPRESA_ID,  
 1 AS ORDEM,  
 CAST('Cheques a Compensar' AS VARCHAR(100)) AS NATUREZA_TRANSACAO,  
 C.CONTA_CORRENTE_ID,  
 DATA_APRESENTACAO,  
 C.ID,  
 C.ID,  
 CC.NOME AS CONTA_CORRENTE_NOME,  
 CC.NUMERO_DIGITO AS CONTA_CORRENTE_NUMERO_DIGITO,  
 CC.AGENCIA_NUMERO AS CONTA_CORRENTE_AGENCIA_NUMERO,  
 CC.BANCO_NUMERO AS CONTA_CORRENTE_BANCO_NUMERO,  
 0 AS EVENTO_FINANCEIRO_ID,  
 'Cheque a Compensar' AS EVENTO_FINANCEIRO_NOME,  
 0 AS CONTA_FINANCEIRA_ID,  
 '' AS CONTA_FINANCEIRA_MASCARA,  
 '' AS CONTA_FINANCEIRA_NOME,  
 0 AS CENTRO_CUSTO_ID,  
 '' AS CENTRO_CUSTO_MASCARA,  
 '' AS CENTRO_CUSTO_NOME,  
 '' AS SIMBOLO,  
 CASE C.PROPRIO WHEN 1 THEN -VALOR ELSE VALOR END AS VALOR,  
 1 AS MOEDA_ID,  
 0 AS HISTORICO_ID,  
 'Cheque ' + CAST(C.NUMERO AS VARCHAR) + ISNULL(' ' + C.PAGAMENTO_DESCRICAO + ' -', '') + ISNULL(' ' + NOME_FAVORECIDO, '') AS HISTORICO,  
 'CH' + CAST(C.NUMERO AS VARCHAR) AS DOCUMENTO_NUMERO,  
 C.ID AS DOCUMENTO_ID_CHEQUE,  
 DATA_APRESENTACAO AS DATA_SALDO,  
 0 AS SALDO  
FROM  
 TB_CHEQUE C  
 INNER JOIN CHEQUE_POSICAO CP ON  
  (CP.ID = C.CHEQUE_POSICAO_ID)  
 INNER JOIN TB_CONTA_CORRENTE CC ON  
  (C.EMPRESA_ID = CC.EMPRESA_ID AND C.CONTA_CORRENTE_ID = CC.ID)  
 INNER JOIN @tabContaCorrente CCX ON  
  (@strContaCorrenteIDs = '' OR (C.EMPRESA_ID = @intEmpresaID AND C.CONTA_CORRENTE_ID = CCX.ID))  
WHERE  
 C.EMPRESA_ID = @intEmpresaID  
 AND C.DATA_APRESENTACAO <= @datDataFinal  
 AND CP.TIPO = 0  
*/  
  
-- retorna o extrato da conta corrente  
SELECT  
 R.EMPRESA_ID,  
 R.ORDEM,  
 R.NATUREZA_TRANSACAO,  
 R.CONTA_CORRENTE_ID,  
 R.DATA,  
 R.ID,  
 R.DOCUMENTO_ID,  
 R.CONTA_CORRENTE_NOME,  
 R.CONTA_CORRENTE_NUMERO_DIGITO,  
 R.CONTA_CORRENTE_AGENCIA_NUMERO,  
 R.CONTA_CORRENTE_BANCO_NUMERO,  
 R.EVENTO_FINANCEIRO_ID,  
 R.EVENTO_FINANCEIRO_NOME,  
 R.CONTA_FINANCEIRA_ID,  
 R.CONTA_FINANCEIRA_MASCARA,  
 R.CONTA_FINANCEIRA_NOME,  
 R.CENTRO_CUSTO_ID,  
 R.CENTRO_CUSTO_MASCARA,  
 R.CENTRO_CUSTO_NOME,  
 R.SIMBOLO,  
 R.VALOR,  
 R.MOEDA_ID,  
 R.HISTORICO_ID,  
 R.HISTORICO,  
 R.DOCUMENTO_NUMERO,  
 R.DOCUMENTO_ID_CHEQUE,  
 R.DATA_SALDO,
 R.USUARIO_ID_CRIACAO,
 R.USUARIO_ID_ALTERACAO,  
 R.SALDO  
FROM  
 @tabRetorno R  
ORDER BY  
 R.CONTA_CORRENTE_NOME,  
 R.ORDEM,  
 R.DATA,  
 R.ID,  
 R.EMPRESA_ID
tentei fazer, criei um parametro @strUsuarioIDs, colokei os campos usuario_id_criacao e usuario_id_alteracao como criterios, mas nao me retorna nada, alguem pode me ajudar?
Criado 5 de agosto de 2011
Respostas 0
Participantes 1