SUPORTE: erro de processamento de operações por conflito de cadastro logístico de produto

porFelipe Buzacchi

SUPORTE: erro de processamento de operações por conflito de cadastro logístico de produto

Se algum dia as operações pararem de ser processadas pelo retaguarda, e ao verificar o arquivo de logs do processador encontrar alguma coisa semelhante ao descrito abaixo, é devido a um conflito de unidades de medida de algum produto.

A instrução INSERT conflitou com a restrição do FOREIGN KEY “FK__item_operacao_pd__4707859D”. O conflito ocorreu no bando de dados “Hiper”, tabela “dbo.cadastro_logistico_produto”.
A instrução foi finalizada.

Isto acontece por que houve a alteração da unidade de medida de algum produto no retaguarda, sendo que foi feita alguma venda no frente de caixa com a unidade de medida antiga. Aí na hora de processar a operação para inseri-la no banco do retaguarda, ocorre o conflito de cadastro logístico de produto (conflito de unidades de medida).

Para resolver, primeiramente deve-se acessar o servidor e parar todos os serviços do Lojamix. Acessar o banco de dados do retaguarda através do SQL Management e localizar a operação na tabela “hiperpdv_operacao_pdv”. Isso pode ser feito comparando a última operação inserida com sucesso no retaguarda (tabela “operacao_pdv”) com os registro da tabela hiperpdv_operacao_pdv.

Após localizar a operação, basta rodar scripts como os do exemplo abaixo para que a operação de PDV tenha a mesma unidade de medida do que está no retaguarda. Neste exemplo, a venda no PDV foi feita com a unidade “KG”, e o produto estava no retaguarda com a unidade “UN”. A quantidade era 0,308 KG.

1º passo: acertar a unidade de medida do item da operação para a que está no cadastro de produto

update hiperpdv_item_operacao_pdv set sigla_unidade_logistica_primaria = ‘UN’ where id_item_operacao_pdv = 9999
update hiperpdv_item_operacao_pdv set sigla_unidade_logistica_secundaria = ‘UN’ where id_item_operacao_pdv = 9999

2º passo: acertar as quantidades para serem condizentes com a unidade de medida correta
update hiperpdv_item_operacao_pdv set quantidade_primaria = 1 where id_item_operacao_pdv = 9999
update hiperpdv_item_operacao_pdv set quantidade_secundaria = 1 where id_item_operacao_pdv = 9999

 OBS.: os 2 últimos scripts acima podem ser necessários para adequar a quantidade da operação a unidade de medida. Como na operação a quantidade estava 0,308 KG e a unidade de medida do cadastro de produto (UN) não aceita casas decimais, a quantidade teve que ser arredondada para 0 casas (1 no exemplo).

Após feito isso, basta reiniciar os serviços e verificar o arquivo de log do LojamixProcessador, onde deve começar a aparecer o processamento desta operação com conflito e das demais posteriores.

Sobre o Autor

Felipe Buzacchi administrator

Deixe uma resposta