Forum
See question

Starter – A coluna ‘Assinatura’ não existe na base de dados.   

Duplicada
62 views
0
0
Duplicada.

This question already has an answer here: Erro “A coluna ‘SCON’ não existe na base de dados”

Boa tarde,

Um cliente que tem a versão Starter, após atualização, quando vai a Operações S/ Contas Correntes, ao selecionar qualquer documento e clicar no Atualizar mostra sempre o seguinte erro:

Erro ao executar a operação. – A coluna ‘Assinatura’ não existe na base de dados. (print em anexo)

Não tem mais atualizações, também já fui ao painel de controlo e reparei todos os setups do Primavera.

O erro persiste, ao passar a BD para o meu PC que tem o Primavera Professional está ok.

O que mais posso fazer?

Obrigado

Faça login para poder traduzir
ERP v9
Starter Easy
Marked as spam
Criado há 4 anos e 1 mês heliobaltasar
heliobaltasar Loyal Contributor
2 answers
0
Private answer

DROP PROCEDURE [dbo].[GCP_CCT_ListaPendentes]
GO

CREATE PROCEDURE [dbo].[GCP_CCT_ListaPendentes]

/* Parâmetros da liquidação */
@pTipoDocLiq AS NVARCHAR(5),
@pMoedaLiq AS NVARCHAR(3),
@pNumDocExterno AS NVARCHAR(20),
@pCambioLiq AS FLOAT,

/* Filtros */
@pTipoEntidade NVARCHAR(1),
@pIncluirEntidadesAssociadas BIT,
@pExcluirEstornados BIT = 0,
@pDataDocLiq DATETIME,
@pDataDocInicial DATETIME,
@pDataDocFinal DATETIME,
@pValidaDataLimite DATETIME,
@pDataLimite DATETIME,
@pMoedaOrig NVARCHAR(3),
@pTipoLancamento NVARCHAR(3),
@pModoPag NVARCHAR(5),
@pFilial NVARCHAR(3),
@pTipoTerceiro NVARCHAR(3),
@pTabela AS NVARCHAR(250),
@pNumRemessa INT,
@pCamposSelect NVARCHAR(4000),

/* XML */
@pXMLFiltrosCntEstDoc AS TEXT,
@pXMLFiltrosObras AS TEXT,
@pXMLRestricoes AS TEXT,
@pSQLWhereEntidades NVARCHAR(MAX) = '',
@pAtualizacaoEstados NVARCHAR(4) = ''

AS
SET NOCOUNT ON
SET ANSI_WARNINGS OFF

/**********************************************************************************
DECLARAÇÃO DE CONSTANTES
**********************************************************************************/

/* Documentos em XML */
DECLARE @DOC_FILTROS_CNTESTDOC NVARCHAR(14)
, @DOC_FILTROS_OBRAS NVARCHAR(14)
, @DOC_REST_ENTIDADES NVARCHAR(14)
/* Módulos de Logística */
DECLARE @MODULO_Vendas NVARCHAR(1)
, @MODULO_Compras NVARCHAR(1)
, @MODULO_ContasCorrentes NVARCHAR(1)

/* Constantes das tabelas auxiliares */
DECLARE @COUNT_TBL_FILTROS_OBRAS INT
, @COUNT_TBL_REST_ENTIDADES INT
, @GRP_TBL_REST_ENTIDADES BIT

/**********************************************************************************
DECLARAÇÃO DE VARIÁVEIS
**********************************************************************************/

/* XML */
DECLARE @intFiltrosCntEstDoc INT
, @intFiltrosObras INT
, @intRestricoes INT

DECLARE @ListaPendentes NVARCHAR(4000)
, @ListaPendentesCred NVARCHAR(4000)
, @Estornos NVARCHAR(4000)
, @WHERE NVARCHAR(MAX)
, @SQL NVARCHAR(MAX)
, @SQL2 NVARCHAR(MAX)
, @intEntidades INT
, @strNaturezaDoc NVARCHAR(1)
, @intTipoDocumento INT
, @strNaturezaEntidade NVARCHAR(1)
, @intLocalizacaoSede SMALLINT

/**********************************************************************************
INICIALIZAÇÃO DAS CONSTANTES
**********************************************************************************/

/* Documentos em XML */
SET @DOC_FILTROS_CNTESTDOC = 'Documento/FCED'
SET @DOC_FILTROS_OBRAS = 'Documento/FOBR'
SET @DOC_REST_ENTIDADES = 'Documento/RENT'
/* Módulos de Logística */
SET @MODULO_Vendas = 'V'
SET @MODULO_Compras = 'C'
SET @MODULO_ContasCorrentes = 'M'

EXEC ADM_DaLocalizacaoSede @intLocalizacaoSede OUTPUT

/**********************************************************************************
INICIALIZAÇÃO DOS DOCUMENTOS XML
**********************************************************************************/
EXEC sp_xml_preparedocument @intFiltrosCntEstDoc OUTPUT, @pXMLFiltrosCntEstDoc
EXEC sp_xml_preparedocument @intFiltrosObras OUTPUT, @pXMLFiltrosObras
EXEC sp_xml_preparedocument @intRestricoes OUTPUT, @pXMLRestricoes

/**********************************************************************************
INICIALIZAÇÃO DAS TABELAS TEMPORÁRIAS E CONSTANTES
**********************************************************************************/

CREATE TABLE #TBL_TIPOENT_ENT
( [TipoEntidade] NVARCHAR(1)
, [Entidade] NVARCHAR(12)
, [Fator] INT
, [NaturezaEntidade] NVARCHAR(1) NULL
)

CREATE UNIQUE CLUSTERED INDEX TBL_TIPOENT_ENT01 ON #TBL_TIPOENT_ENT
(
[TipoEntidade]
, [Entidade]
)

SELECT [CNT]
, [EST]
, [MOD]
, [TDOC]
INTO #TBL_FILTROS_CNTESTDOC
FROM OPENXML (@intFiltrosCntEstDoc, @DOC_FILTROS_CNTESTDOC)
WITH( [CNT] NVARCHAR(5)
, [EST] NVARCHAR(4)
, [MOD] NVARCHAR(1)
, [TDOC] NVARCHAR(5)
)

CREATE UNIQUE CLUSTERED INDEX TBL_FILTROS_CNTESTDOC01 ON #TBL_FILTROS_CNTESTDOC
(
[CNT]
, [EST]
, [MOD]
, [TDOC]
)

SELECT 'X' AS [chave], [ID]
INTO #TBL_FILTROS_OBRAS
FROM OPENXML (@intFiltrosObras, @DOC_FILTROS_OBRAS)
WITH([ID] UNIQUEIDENTIFIER)

SELECT @COUNT_TBL_FILTROS_OBRAS = COUNT(1) FROM #TBL_FILTROS_OBRAS

/**********************************************************************************
TRATA ENTIDADES
**********************************************************************************/
--Quando não temos a restrição SQL preenchida, usamos o XML
IF LEN(@pSQLWhereEntidades) = 0
BEGIN
SELECT [COD]
, [GRP]
INTO #TBL_REST_ENTIDADES
FROM OPENXML (@intRestricoes, @DOC_REST_ENTIDADES)
WITH( [COD] NVARCHAR(48)
, [GRP] BIT)

SELECT @COUNT_TBL_REST_ENTIDADES = COUNT([COD]) FROM #TBL_REST_ENTIDADES
SELECT TOP 1 @GRP_TBL_REST_ENTIDADES = [GRP] FROM #TBL_REST_ENTIDADES

/* Numero de entidades a filtrar */
SELECT @intEntidades = COUNT([COD]) FROM #TBL_REST_ENTIDADES
IF LEN(@pTipoEntidade)>0
BEGIN
/* Restrição não indicada, insere todas as entidades do tipo de entidade*/
IF @intEntidades > 0
BEGIN

/* Restrição indicada como grupo, elementos x1, x2, x3 */
IF (SELECT TOP 1 [GRP] FROM #TBL_REST_ENTIDADES) = 1
BEGIN

INSERT INTO #TBL_TIPOENT_ENT
SELECT TipoEntidade, Entidade, 1, NaturezaEntidade
FROM V_Entidades v
INNER JOIN #TBL_REST_ENTIDADES r ON (v.TipoEntidade=@pTipoEntidade) AND (Entidade=r.[COD])

END

/* Restrição indicada como range, elementos de x até y */
IF (SELECT TOP 1 [GRP] FROM #TBL_REST_ENTIDADES) = 0
BEGIN

INSERT INTO #TBL_TIPOENT_ENT
SELECT TipoEntidade, Entidade, 1, NaturezaEntidade
FROM V_Entidades v
WHERE (v.TipoEntidade=@pTipoEntidade)
AND (v.Entidade <= (SELECT MAX([COD]) FROM #TBL_REST_ENTIDADES))
AND (v.Entidade >= (SELECT MIN([COD]) FROM #TBL_REST_ENTIDADES))

END

END

END
ELSE
BEGIN
SET @SQL = 'INSERT INTO #TBL_TIPOENT_ENT
SELECT V.TipoEntidade, V.Entidade, 1, NaturezaEntidade FROM V_Entidades V'
EXEC sp_executesql @SQL
END
END

ELSE
BEGIN

SET @SQL = 'INSERT INTO #TBL_TIPOENT_ENT
SELECT V.TipoEntidade, V.Entidade, 1, NaturezaEntidade FROM V_Entidades V'
IF @pTipoEntidade <> 'B'
SET @SQL = @SQL + ' WHERE ' + @pSQLWhereEntidades
/* Preenche a tabela temporária com a restrição para as entidades */
EXEC sp_executesql @SQL
END

IF LEN(@pTipoEntidade)>0 AND LEN(@pSQLWhereEntidades) = 0
BEGIN

-- Obter sempre as entidades associadas
IF (@pIncluirEntidadesAssociadas=1)
BEGIN

INSERT INTO #TBL_TIPOENT_ENT
SELECT EA.TipoEntidadeAssociada, EA.EntidadeAssociada, 1, V.NaturezaEntidade
FROM #TBL_TIPOENT_ENT E
INNER JOIN EntidadesAssociadas EA WITH (NOLOCK) ON E.TipoEntidade = EA.TipoEntidade
AND E.Entidade = EA.Entidade
LEFT JOIN #TBL_TIPOENT_ENT E2 ON E2.TipoEntidade = EA.TipoEntidadeAssociada
AND E2.Entidade = EA.EntidadeAssociada
LEFT JOIN V_Entidades V ON EA.TipoEntidadeAssociada = V.TipoEntidade
AND EA.EntidadeAssociada = V.Entidade
WHERE E2.TipoEntidade IS NULL

END

DELETE FROM #TBL_TIPOENT_ENT
WHERE TipoEntidade
NOT IN (
SELECT DISTINCT TipoEntidade
FROM V_CCT_DocsTiposContaTiposEntidade
WHERE Documento = @pTipoDocLiq
) AND TipoEntidade <> 'B'

END

SELECT @strNaturezaDoc = Natureza, @intTipoDocumento = TipoDocumento
FROM DocumentosCCT
WHERE Documento = @pTipoDocLiq

IF LEN(@pTipoEntidade) > 0 AND ISNULL(@pIncluirEntidadesAssociadas, 0) = 1
BEGIN
SELECT TOP 1 @strNaturezaEntidade = NaturezaEntidade
FROM #TBL_TIPOENT_ENT
WHERE TipoEntidade = @pTipoEntidade
UPDATE ENT
SET Fator = (
CASE
WHEN @pTipoEntidade IN ('C', 'D', 'B') THEN 1
WHEN @pTipoEntidade IN ('E', 'O') AND @strNaturezaEntidade = 'D' THEN 1
ELSE -1
END
) * (CASE WHEN @intTipoDocumento <> 5 AND @strNaturezaEntidade <> @strNaturezaDoc THEN -1 ELSE 1 END)
FROM #TBL_TIPOENT_ENT ENT
END
ELSE
BEGIN
UPDATE ENT
SET Fator = (
CASE
WHEN TipoEntidade IN ('C', 'D', 'B') THEN 1
WHEN TipoEntidade IN ('E', 'O') AND NaturezaEntidade = 'D' THEN 1
ELSE -1
END
) * (CASE WHEN @intTipoDocumento <> 5 AND NaturezaEntidade <> @strNaturezaDoc THEN -1 ELSE 1 END)
FROM #TBL_TIPOENT_ENT ENT
END

/**********************************************************************************
FINALIZAÇÃO DOS DOCUMENTOS XML
**********************************************************************************/
EXEC sp_xml_removedocument @intFiltrosCntEstDoc
EXEC sp_xml_removedocument @intFiltrosObras
EXEC sp_xml_removedocument @intRestricoes
/**********************************************************************************
PREPARA TABELA AUXILIAR
**********************************************************************************/

-- Tabelas temporarias para conter a lista de pendentes e situação de crêdito
SET @ListaPendentes= @pTabela + '_LSTPEND'
-- Apaga as tabelas da secção anterior
EXEC STD_DropTempTable @ListaPendentes
--Tabela temporária com os estornos
SET @Estornos= @pTabela + '_Estornos'
-- Apaga as tabelas da secção anterior
EXEC STD_DropTempTable @Estornos
/**********************************************************************************
PREPARA WHERE
**********************************************************************************/
SET @WHERE = 'p.TipoLancamento =''' + @pTipoLancamento + '''' + char(13)

-- Apenas documentos não lançados em cessões de factoring --
SET @WHERE = @WHERE + ' AND p.IdCessao IS NULL ' + char(13)

IF @pTipoEntidade <> 'B'
IF (@pIncluirEntidadesAssociadas <> 1)
SET @WHERE = @WHERE + ' AND (LEN(''' + @pTipoEntidade+ ''') = 0 OR p.TipoEntidade =''' +@pTipoEntidade + ''')' + char(13)

SET @WHERE = @WHERE + ' AND p.DataDoc <=''' + convert(varchar, @pDataDocFinal,101) + '''' + char(13)
IF (len(@pNumDocExterno) > 0) AND (@pNumDocExterno <> '0')
SET @WHERE = @WHERE + ' AND p.NumDoc = ''' + @pNumDocExterno + '''' + char(13)
IF (@pValidaDataLimite = 1)
SET @WHERE = @WHERE + ' AND p.DataVenc <=''' + convert(varchar, @pDataLimite,101) + '''' + char(13)

IF (LEN(@pMoedaOrig) >0)
SET @WHERE = @WHERE + ' AND p.Moeda = ''' + @pMoedaOrig + '''' + char(13)

IF (LEN(@pModoPag) >0)
SET @WHERE = @WHERE + ' AND p.ModoPag ='''+ @pModoPag + '''' + char(13)

IF (LEN(@pFilial) >0)
SET @WHERE = @WHERE + ' AND p.Filial ='''+ @pFilial + '''' + char(13)

IF (@pNumRemessa >0)
SET @WHERE = @WHERE + ' AND p.NumRemessa =' + cast(@pNumRemessa as varchar) + char(13)

IF ( @COUNT_TBL_FILTROS_OBRAS > 0)
SET @WHERE = @WHERE + ' AND p.ObraID IN (SELECT [ID] FROM #TBL_FILTROS_OBRAS)' + char(13)
SET @WHERE = @WHERE + 'AND p.ValorPendente <> 0 ' + char(13)
SET @SQL = ' SELECT H.Id
, p.Modulo
, p.TipoEntidade
, p.Entidade
, p.Filial
, p.TipoDoc
, p.Serie
, p.NumDoc
, p.NumDocInt
, p.ValorTotal
, p.ValorPendente
, p.TotalIva
, p.DataDoc
, p.DataVenc
, p.NumPrestacao
, p.TipoConta
, p.NumTransferencia
, p.ObraID
, p.TipoEntidadeComercial
, p.EntidadeComercial
, p.ModoPag
, p.CondPag
, p.ValorRetencao
, p.ValorRetencaoPendente
, p.ValorRetencaoGarantia
, p.ValorRetencaoGarantiaPendente
, p.CambioMBase
, p.idhistorico
, p.Estado
, p.CambioMAlt
, p.NumRemessa
, p.Cambio
, p.Conta
, p.DataIntroducao
, p.Moeda
, p.IdMovCBL
, p.DataPrevTes
, h.IdCabecMovCbl
, h.CodIva
, h.IdDoc
, h.Descricao
, h.IdLinhaDoc
, NaturezaDocCCT = dcct.Natureza
, P.WBSItem
, P.CambioADataDoc
, H.TrataIvaCaixa
, H.IvaIndiferido
, p.NumAvisos
, LPP.Numero
, LPP.IdLinhaTesChq
, Assinatura = (CASE WHEN ' + CAST(@intLocalizacaoSede AS NVARCHAR(2)) + ' = 6 THEN ISNULL(CD.Assinatura, '''') ELSE '''' END) -- apenas para CV
INTO ' + @ListaPendentes

SET @SQL2 = ' FROM Pendentes p WITH (NOLOCK)
INNER JOIN Historico H WITH (NOLOCK) ON P.IdHistorico = H.Id
INNER JOIN DocumentosCCT dcct WITH (NOLOCK) ON dcct.Documento = ''' + @pTipoDocLiq + '''
INNER JOIN #TBL_FILTROS_CNTESTDOC ce ON p.TipoConta = ce.[CNT] AND p.Estado = ce.[EST] AND p.Modulo = ce.[MOD] AND p.TipoDoc = ce.[TDOC]
LEFT JOIN LinhasPlanosPagamentos LPP WITH (NOLOCK) ON H.IdPlano = LPP.IdPlano AND H.NumPagamento = LPP.NumPagamento
LEFT JOIN CabecDoc CD WITH (NOLOCK) ON CD.[ID] = H.[IDDoc] AND H.[Modulo] = ''V''
'

IF @intEntidades > 0 OR LEN(@pSQLWhereEntidades)>0
BEGIN
IF @pTipoEntidade <> 'B'
SET @SQL2 = @SQL2 + 'INNER JOIN #TBL_TIPOENT_ENT e ON (p.TipoEntidade = e.TipoEntidade) AND (p.Entidade = e.Entidade)'
ELSE
SET @SQL2 = @SQL2 + 'INNER JOIN #TBL_TIPOENT_ENT e ON (p.Conta = e.Entidade) AND E.TipoEntidade = ''B'''
END

set @SQL2 = @SQL2 + ' WHERE ' + @WHERE

EXEC (@SQL + @SQL2)

/**************************************************************************************************
DOCUMENTOS ESTORNADOS E DE ESTORNO
**************************************************************************************************/
IF (@pExcluirEstornados = 1)
BEGIN

SET @SQL =
' SELECT * INTO ' + @Estornos + '
FROM (
SELECT E.IdDoc
FROM ' + @ListaPendentes + ' E
INNER JOIN LinhasDoc L WITH (NOLOCK) ON L.IdCabecDoc = E.IdDoc
WHERE E.Modulo = ''V''
AND L.Id IN (SELECT IDLinhaEstorno FROM LinhasDoc)
UNION ALL
SELECT E.IdDoc
FROM ' + @ListaPendentes + ' E
INNER JOIN LinhasCompras LC WITH (NOLOCK) ON LC.IdCabecCompras = E.IdDoc
WHERE E.Modulo = ''C''
AND LC.Id IN (SELECT IDLinhaEstorno FROM LinhasCompras)
UNION ALL
SELECT E.IdDoc
FROM ' + @ListaPendentes + ' E
INNER JOIN LinhasDoc L WITH (NOLOCK) ON L.IdCabecDoc = E.IdDoc
WHERE E.Modulo = ''V''
AND L.IDLinhaEstorno IS NOT NULL
UNION ALL
SELECT E.IdDoc
FROM ' + @ListaPendentes + ' E
INNER JOIN LinhasCompras LC WITH (NOLOCK) ON LC.IdCabecCompras = E.IdDoc
WHERE E.Modulo = ''C''
AND LC.IDLinhaEstorno IS NOT NULL
GROUP BY E.IdDoc
) AS Estornos
'

EXEC sp_executesql @SQL

END

-- Limpa a tabela com dados da sessão anterior
EXEC STD_DropTempTable @pTabela

SET @SQL = 'SELECT p.Modulo
, p.TipoEntidade
, p.Entidade
, p.Filial
, p.TipoDoc
, p.Serie
, p.NumDoc
, p.NumDocInt
, p.ValorTotal
, p.ValorPendente
, p.TotalIva
, p.DataDoc
, p.DataVenc
, p.NumPrestacao
, p.TipoConta
, p.NumTransferencia
, p.ObraID
, p.TipoEntidadeComercial
, p.EntidadeComercial
, p.ModoPag
, p.CondPag
, p.ValorRetencao
, p.ValorRetencaoPendente
, p.ValorRetencaoGarantia
, p.ValorRetencaoGarantiaPendente
, p.CambioMBase
, p.idhistorico
, p.Estado
, p.CambioMAlt
, p.NumRemessa
, p.Cambio
, p.Conta
, p.DataIntroducao
, p.IdLinhaDoc
, p.IdCabecMovCbl
, p.NaturezaDocCCT
, p.DataPrevTes
, CodIva = ISNULL(p.CodIva, l.CodIva)
, p.IdDoc
, p.Descricao
, m.Moeda
, m.Compra
, m.Venda
, m.DecArredonda
, d.PagarReceber
, d.DeduzLiquidaIVA
, cp.TipoCondicao
, SugereDescontosLiquidacao = cp.SugereDescontosLiquidacao
, DescontoIncluiIVA = cp.DescontoIncluiIVA
, DescontoLiquidacao = ISNULL(dbo.GCP_CCT_DaDescontoLiquidacao('''+ CAST( @pDataDocLiq as varchar(20))+''', ISNULL(p.CondPag, ''''), p.DataDoc, p.TipoEntidade),0)
, DescontoRemessa = ISNULL(ll.ValorDesconto,0)
, l.Artigo
, l.Unidade
, l.Quantidade
, ObraCodigo = ob.Codigo
, p.IdMovCBL
, pc.Nome
, pc.CREDITO_TipoCred
, pc.CREDITO_TotalDebito
, pc.CREDITOVALOR_Limite
, pc.CREDITOVALOR_ValorLimite
, pc.CREDITOVALOR_Excedido
, PC.CREDITOIDADESALDO_ValorLimite
, pc.CREDITOIDADESALDO_Excedido
, pc.TipoTerceiro
, P.WBSItem
, p.CambioADataDoc
, p.TrataIvaCaixa
, p.IvaIndiferido
, p.NumAvisos
, NumPlano = CPP.NumPlano
, NumeroPagamento = PPP.NumPagamento
, IdPlanoPag = PPP.IdPlano
, NumeroCheque = p.Numero
, p.IdLinhaTesChq
, p.Assinatura

INTO ' + @pTabela

SET @SQL2 = ' FROM ' + @ListaPendentes + ' p
LEFT JOIN Moedas m WITH (NOLOCK) ON p.Moeda = m.Moeda
LEFT JOIN COP_Obras ob WITH (NOLOCK) ON p.ObraID = ob.ID
LEFT JOIN CondPag cp WITH (NOLOCK) ON p.CondPag = cp.CondPag
LEFT JOIN (SELECT
L.FilialOrig,
L.TipoDocOrig,
L.SerieOrig,
L.NumDocOrigInt,
L.ModuloOrig,
L.NumPrestacao,
L.NumTransferencia,
L.Estado,
ValorDesconto = SUM (ISNULL(L.ValorDesconto,0))
FROM Linhasliq L WITH(NOLOCK)
INNER Join DocumentosCCT D WITH(NOLOCK) On L.Tipodoc = D.Documento And D.RemessaBancaria = 1
WHERE L.PendenteGerado = 1
GROUP BY L.FilialOrig, L.TipoDocOrig, L.SerieOrig, L.NumDocOrigInt, L.NumPrestacao, L.NumTransferencia, L.ModuloOrig, L.Estado) LL
ON LL.FilialOrig = P.Filial AND ll.TipoDocOrig = P.Tipodoc AND LL.SerieOrig = P.Serie AND LL.NumDocOrigInt = P.NumDocint AND LL.NumPrestacao = P.NumPrestacao AND
LL.NumTransferencia = P.NumTransferencia AND LL.ModuloOrig = P.Modulo AND LL.Estado = P.Estado
LEFT join V_GCP_CCT_CreditoEntidades pc ON p.tipoentidade = pc.tipoentidade and p.entidade = pc.entidade
LEFT JOIN [PendentesPlanosPagamentos] PPP WITH (NOLOCK) ON P.IdHistorico = PPP.IdHistorico
LEFT JOIN [CabecPlanosPagamentos] CPP WITH (NOLOCK) ON PPP.IdPlano = CPP.Id
LEFT JOIN
(
SELECT Modulo = ''' + @MODULO_Compras + '''
, Id
, Artigo
, Unidade
, Quantidade
, CodIva
FROM LinhasCompras WITH (NOLOCK)
UNION ALL
SELECT Modulo =''' + @MODULO_Vendas + '''
, Id
, Artigo
, Unidade
, Quantidade
, CodIva
FROM LinhasDoc WITH (NOLOCK)
) l ON p.Modulo = l.Modulo AND p.IdLinhaDoc = l.Id
LEFT JOIN
(
SELECT Modulo =''' + @MODULO_Vendas + '''
, Documento
, PagarReceber
, DeduzLiquidaIVA
FROM DocumentosVenda WITH (NOLOCK)
UNION ALL
SELECT Modulo =''' + @MODULO_Compras +'''
, Documento
, PagarReceber
, DeduzLiquidaIVA
FROM DocumentosCompra WITH (NOLOCK)
UNION ALL
SELECT Modulo =''' + @MODULO_ContasCorrentes +'''
, Documento
, (CASE WHEN Natureza = ''D'' THEN ''P'' ELSE ''R'' END) As PagarReceber
, DeduzLiquidaIVA
FROM DocumentosCCT
) d ON p.Modulo = d.Modulo AND p.TipoDoc = d.Documento
'
IF (@pExcluirEstornados = 1)
SET @SQL2 = @SQL2 + ' WHERE P.IdDoc NOT IN (SELECT IdDoc FROM ' + @Estornos + ')
AND P.IdDoc NOT IN (SELECT IdDocOrigem FROM RastreabilidadeEstornos)
AND P.IdDoc NOT IN (SELECT IdDocDestino FROM RastreabilidadeEstornos) '

-- Lista todos os pendentes com base nas restrições indicadas pelos utilizador
EXEC (@SQL + @SQL2)
-- Valida parâmetro
IF LEN(ISNULL(@pCamposSelect,'')) = 0
SET @pCamposSelect = '*'

SET @SQL = '
UPDATE P
SET ValorTotal = P.ValorTotal * ENT.Fator
, ValorPendente = P.ValorPendente * ENT.Fator
FROM @TabelaTemp@ P
INNER JOIN #TBL_TIPOENT_ENT ENT (NOLOCK) ON P.TipoEntidade = ENT.TipoEntidade AND P.Entidade = ENT.Entidade'

SET @SQL = REPLACE(@SQL, '@TabelaTemp@', @pTabela)

EXEC sp_executesql @SQL
-- Alimenta tabela para impressão
--##CT

IF LEN(@pAtualizacaoEstados) > 0

BEGIN
set @SQL2= '(SELECT Distinct(Docs.TipoConta) FROM DocumentosCCContaEstado Docs
INNER JOIN EstadosConta EC on EC.TipoConta = Docs.TipoConta
WHERE Docs.Documento =''' + @pTipoDocLiq + ''' and EC.Estado=''' + @pAtualizacaoEstados + ''')'
set @SQL='SELECT ' + @pCamposSelect+ ' FROM ' + @pTabela + ' WHERE TipoConta in ' + @SQL2 + ' AND ValorTotal = VAlorPendente ORDER BY [TipoConta], [Entidade], [DataVenc], [DataDoc], [NumDocInt]'
EXEC sp_executesql @SQL

END
ELSE
BEGIN
IF LEN(@pTipoTerceiro)<> 0
BEGIN
SET @SQL='DELETE ' + @pTabela + ' WHERE ISNULL(TipoTerceiro, '''') <> ''' + @pTipoTerceiro + ''''
EXEC(@SQL)

SET @SQL='SELECT ' + @pCamposSelect+ ' FROM ' + @pTabela + ' WHERE TipoTerceiro = ''' + @pTipoTerceiro + ''' ORDER BY [TipoConta], [Entidade], [DataVenc], [DataDoc], [NumDocInt]'
END
ELSE
SET @SQL='SELECT ' + @pCamposSelect+ ' FROM ' + @pTabela + ' ORDER BY [TipoConta], [Entidade], [DataVenc], [DataDoc], [NumDocInt]'

EXEC sp_executesql @SQL
END
--##CT

ERRO:
SET NOCOUNT OFF
SET ANSI_WARNINGS ON

Faça login para poder traduzir
Marked as spam
Criado há 4 anos e 1 mês filipesantos
f
filipesantos Loyal Contributor
    Comments
    Obrigado
    4 anos e 1 mês
    heliobaltasar
      -1
      Private answer

      Boa tarde,

      O problema reportado ficou registado como anomalia com o identificador 60321.
      A correção será disponibilizada na próxima MB.

      Pode usar a dll do link: https://we.tl/t-kKfbPjsBHb
      Ou então correr o script em anexo.

      Faça login para poder traduzir
      Marked as spam
      Criado há 4 anos e 1 mês filipesantos
      f
      filipesantos Loyal Contributor