PDV > Erro: A duplicate value cannot be inserted into a unique index - Produto contido em mais de uma promoção
Software: PDV - Softshop Caixa | Grupo: PDV
Solução
Requisitos:
Acesso ao banco de dados SQL Server do PDV Softshop Caixa com permissões de execução de scripts.
Observações:
Este procedimento requer conhecimento de SQL Server e acesso ao banco de dados. A duplicate value cannot be inserted into a unique index. [A_CAIXA_MERCADORIAS_TRIBUTACAO]
Solução do Erro
Importante!
Antes de executar os passos abaixo, realize um backup completo do seu banco de dados para evitar perda de informações. Qualquer erro na execução do script pode causar problemas no funcionamento do PDV.
1. Acessar o ambiente de gerenciamento do banco de dados SQL Server.
2. Recrie a view A_CAIXA_MERCADORIAS_PROMOCAO_ATIVAS executando o seguinte script SQL:
IF OBJECT_ID('dbo.A_CAIXA_MERCADORIAS_PROMOCAO_ATIVAS', 'V') IS NOT NULL
DROP VIEW dbo.A_CAIXA_MERCADORIAS_PROMOCAO_ATIVAS;
GO
CREATE VIEW [dbo].[A_CAIXA_MERCADORIAS_PROMOCAO_ATIVAS] AS
SELECT
dbo.Promocoes.ID_Promocao AS IdPromocao,
dbo.Promocoes_Itens.ID_PromocaoItem AS ID,
dbo.Promocoes_Itens.ID_Produto AS MercadoriaID,
dbo.Promocoes_Itens.Preco,
dbo.Promocoes_Itens.PromocaoQuantidade,
dbo.Promocoes_Itens.PromocaoQuantidadeTipo,
dbo.Promocoes_Itens.PromocaoMultiplos,
dbo.Promocoes_Itens.PromocaoQuantidadeBonificada,
dbo.Promocoes.PromocaoDataInicio,
dbo.Promocoes.PromocaoDataFim,
dbo.Promocoes.DiaSegunda,
dbo.Promocoes.DiaTerca,
dbo.Promocoes.DiaQuarta,
dbo.Promocoes.DiaQuinta,
dbo.Promocoes.DiaSexta,
dbo.Promocoes.DiaSabado,
dbo.Promocoes.DiaDomingo,
dbo.Promocoes_Itens.Origem,
dbo.Promocoes.PromocaoHoraInicio,
dbo.Promocoes.PromocaoHoraFim,
dbo.Promocoes.DiaHoraInicio,
dbo.Promocoes.DiaHoraFim,
dbo.Promocoes_Itens.PromocaoAplicada,
dbo.Promocoes.PromocaoCombo,
dbo.Promocoes.Autor,
dbo.Promocoes.ClubeNome,
dbo.Promocoes.ClubeID,
dbo.Promocoes.TipoPromocao,
dbo.Promocoes.QuantidadeCriterio,
dbo.Promocoes.QuantidadePagar,
dbo.Promocoes.PrecoFixo,
dbo.Promocoes.DescontoTipo,
dbo.Promocoes.DescontoValor,
dbo.Promocoes.IDMercadoriaBrinde,
dbo.Promocoes.LimitePromocoesPorPedido,
dbo.Promocoes.Lancamento_DataHora,
dbo.Promocoes.Ativa,
dbo.Promocoes_LojasParticipantes.LojaOrigem AS LojaPromocao
FROM
dbo.Promocoes
LEFT OUTER JOIN dbo.Promocoes_LojasParticipantes ON dbo.Promocoes.ID_Promocao = dbo.Promocoes_LojasParticipantes.IDPromocao
INNER JOIN dbo.Promocoes_Itens ON dbo.Promocoes.ID_Promocao = dbo.Promocoes_Itens.ID_Promocao
WHERE
(CONVERT(varchar, GETDATE(), 103) BETWEEN dbo.Promocoes.PromocaoDataInicio AND dbo.Promocoes.PromocaoDataFim)
AND dbo.Promocoes.Ativa = 1
GO
3. Reiniciar o PDV Softshop Caixa.

Como Solicitar a Revisão ou Criação de FAQs?
Acesse o fluxo de aprovação FAQ 6729 - Softcom > FAQ: Como se dará o fluxo (Diagrama) de renovação da base de conhecimento? (Clique aqui)
Tags: pdv, promocao, duplicado, value, cannot, index, unique, duplicate