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:
[code]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
[/code]
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?