Descrição: No módulo de faturamento, ao enviar para a Sefaz uma nota de devolução com a referencia sendo feita por chave avulsa, apresenta a seguinte rejeição:
Error: 50000 Message:
CHAVE NFE: 35220559418806003243550010003250981619463211
DATA RECEBIMENTO: 20220519 17:54:47.000
STATUS: 225
MOTIVO: RejeiCAo: Falha no Schema XML do lote de NFe
Proc: LX_RECEBIMENTO_PROTOCOLO_NFE_SEFAZ
Verificando o XML pelo validador Validador NF-e - TecnoSpeed, consta a seguinte mensagem:
Falha de Esquema: O elemento pai: 'impostoDevol' não estava esperando o elemento 'pDevol'. O elemento esperado é: 'IPI'.
Causa: Este incidente ocorre, pois a Tag <pDevol> aparece em duplicidade no XML da nota fiscal
Ao referenciar uma chave avulsa, ou seja, a nota de origem sendo vinculada na tabela FATURAMENTO_NF_AVULSA_REFERENCIADA, o valor da tag <pDevol> deve ser 0.00. Já quando a nota de origem constar no sistema, o valor da tag deverá ser calculado com base nas informações da tabela ENTRADAS_ITEM e FATURAMENTO_ENTRADA_DEVOLUCAO.
Exemplo de como aparece a duplicidade no XML:
<impostoDevol>
<pDevol>0.00</pDevol>
<pDevol>38.00</pDevol>
<IPI>
<vIPIDevol>0.00</vIPIDevol>
</IPI>
</impostoDevol>
Solução: Para correção desse incidente, realize o seguinte processo com o script a seguir, que trará como a tag esta sendo gerada:
Rode cada select separadamente pra ver em quais consultas está trazendo duas vezes, o correto é trazer um resultado;
-- ALTERAR TODOS OS WHERE, PREENCHENDO O DADO DA NOTA QUE ESTÁ COM ERRO DA TAG PDEVOL DUPLICADA
--(ATÉ NA ONDE PEDE NOTA DE ENTRADA OU SAIDA, INFORMAR A NOTA COM ERRO NÃO A NOTA DE ORIGEM.
SELECT pDevol AS "pDevol"
FROM
( --SELECT CONVERT(NUMERIC(3,2),(B.QTDE_DEVOLVIDA/C.QTDE_ITEM))*100 AS "pDevol" --#62# --#88#
SELECT CONVERT(NUMERIC(5,2),(SUM(B.QTDE_DEVOLVIDA)/SUM(C.QTDE_ITEM)))*100 AS "pDevol" --#90#
FROM W_IMPRESSAO_NFE_ITENS AS A
JOIN FATURAMENTO_ENTRADA_DEVOLUCAO AS B
ON A.NF=B.NF_SAIDA
AND A.SERIE_NF=B.SERIE_NF
AND A.FILIAL =B.FILIAL
AND A.ITEM_IMPRESSAO=B.ITEM_IMPRESSAO_SAIDA
AND A.SUB_ITEM_TAMANHO=B.SUB_ITEM_SAIDA
JOIN ENTRADAS_ITEM AS C
ON C.NF_ENTRADA=B.NF_ENTRADA
AND C.SERIE_NF_ENTRADA=B.SERIE_NF_ENTRADA
AND C.NOME_CLIFOR=B.NOME_CLIFOR
AND C.ITEM_IMPRESSAO=B.ITEM_IMPRESSAO_ENTRADA
AND C.SUB_ITEM_TAMANHO=B.SUB_ITEM_ENTRADA
WHERE A.NOME_CLIFOR = ''
AND A.ITEM_IMPRESSAO = ''
AND A.SUB_ITEM_TAMANHO = ''
AND A.NF = ''
AND A.SERIE_NF =''
UNION
SELECT CONVERT(NUMERIC(5,2),(SUM(B.QTDE_DEVOLVIDA)/SUM(B.QTDE_ITEM))*100) AS "pDevol" --#70#
FROM W_IMPRESSAO_NFE_ITENS AS A
JOIN ( SELECT
CASE WHEN Isnull(FT.CODIGO_CLIENTE_VAREJO, '') = '' THEN FED.NOME_CLIFOR
ELSE CV.CLIENTE_VAREJO
END AS NOME_CLIFOR
--#118#
,FED.NF_ENTRADA , FED.SERIE_NF_ENTRADA , FED.ITEM_IMPRESSAO_ENTRADA , FED.SUB_ITEM_ENTRADA,SUM(FED.QTDE_DEVOLVIDA) AS QTDE_DEVOLVIDA ,SUM(FI.QTDE_ITEM) AS QTDE_ITEM
FROM FATURAMENTO_ENTRADA_DEVOLUCAO AS FED
JOIN FATURAMENTO_ITEM AS FI
ON FED.FILIAL = FI.FILIAL
AND FED.NF_SAIDA = FI.NF_SAIDA
AND FED.SERIE_NF= FI.SERIE_NF
AND FED.SUB_ITEM_SAIDA = FI.SUB_ITEM_TAMANHO
AND FED.ITEM_IMPRESSAO_SAIDA = FI.ITEM_IMPRESSAO
--#118#
JOIN FATURAMENTO AS FT
ON FT.NF_SAIDA = FI.NF_SAIDA
AND FT.SERIE_NF = FI.SERIE_NF
AND FT.FILIAL = FI.FILIAL
LEFT JOIN CLIENTES_VAREJO CV
ON CV.CODIGO_CLIENTE = FT.CODIGO_CLIENTE_VAREJO
--#118#
GROUP BY FED.NOME_CLIFOR ,FED.NF_ENTRADA , FED.SERIE_NF_ENTRADA , FED.ITEM_IMPRESSAO_ENTRADA , FED.SUB_ITEM_ENTRADA,CV.CLIENTE_VAREJO,FT.CODIGO_CLIENTE_VAREJO ) AS B
/*#39#*/
ON A.NF=B.NF_ENTRADA
AND A.SERIE_NF=B.SERIE_NF_ENTRADA
AND A.NOME_CLIFOR =B.NOME_CLIFOR
AND A.ITEM_IMPRESSAO=B.ITEM_IMPRESSAO_ENTRADA
AND A.SUB_ITEM_TAMANHO=B.SUB_ITEM_ENTRADA
WHERE A.NOME_CLIFOR = ''
AND A.ITEM_IMPRESSAO = ''
AND A.SUB_ITEM_TAMANHO = ''
AND A.NF = ''
AND A.SERIE_NF = ''
--and IPI > 0 /*#27#*/
UNION
--#88#
SELECT 0.00 AS "pDevol"
FROM ENTRADAS_NF_AVULSA_REFERENCIADA
WHERE NF_ENTRADA=''
AND SERIE_NF_ENTRADA = ''
AND NOME_CLIFOR = ''
UNION
--#89#
SELECT 0.00 AS "pDevol"
FROM FATURAMENTO_NF_AVULSA_REFERENCIADA
WHERE NF_SAIDA=''
AND SERIE_NF = ''
AND FILIAL = ''
--#88#
UNION
--#110#-Início
SELECT top 1 0.00 AS "pDevol"
FROM FATURAMENTO_ITEM_RELACIONADO
WHERE NF_SAIDA = ''
AND SERIE_NF = ''
AND FILIAL = ''
--#110#-Fim
UNION
--#93#
SELECT 100.00 AS "pDevol"
FROM ENTRADAS_ITEM
LEFT JOIN FATURAMENTO_ENTRADA_DEVOLUCAO
ON ENTRADAS_ITEM.NF_ENTRADA=FATURAMENTO_ENTRADA_DEVOLUCAO.NF_ENTRADA
AND ENTRADAS_ITEM.SERIE_NF_ENTRADA=FATURAMENTO_ENTRADA_DEVOLUCAO.SERIE_NF_ENTRADA
AND ENTRADAS_ITEM.NOME_CLIFOR=FATURAMENTO_ENTRADA_DEVOLUCAO.NOME_CLIFOR
AND ENTRADAS_ITEM.ITEM_IMPRESSAO=FATURAMENTO_ENTRADA_DEVOLUCAO.ITEM_IMPRESSAO_ENTRADA
AND ENTRADAS_ITEM.SUB_ITEM_TAMANHO=FATURAMENTO_ENTRADA_DEVOLUCAO.SUB_ITEM_ENTRADA
WHERE ENTRADAS_ITEM.NF_ENTRADA=''
AND ENTRADAS_ITEM.SERIE_NF_ENTRADA = ''
AND ENTRADAS_ITEM.NOME_CLIFOR = ''
AND ENTRADAS_ITEM.ITEM_IMPRESSAO = ''
AND ENTRADAS_ITEM.SUB_ITEM_TAMANHO =''
AND FATURAMENTO_ENTRADA_DEVOLUCAO.NF_ENTRADA IS NULL
--AND NFE_ITENS.CODIGO_FISCAL_OPERACAO IN ('1201','1202','1410','1411','5921','6921')
--#107#
AND NOT EXISTS ( SELECT top 1 *
FROM ENTRADAS_NF_AVULSA_REFERENCIADA
WHERE NF_ENTRADA=''
AND SERIE_NF_ENTRADA = ''
AND NOME_CLIFOR = '')
--#107#
--#93#
UNION
--#29#
--LOJA
--#82# Implementado o SUM
SELECT CONVERT(NUMERIC(5,2), (SUM(A.QTDE_ITEM)/SUM(H.QTDE_ITEM))) * 100 AS "pDevol"
FROM W_IMPRESSAO_NFE_ITENS A
INNER JOIN FILIAIS B
ON A.FILIAL = B.FILIAL
INNER join LOJAS_VAREJO LV -- #95#
on B.FILIAL = LV.FILIAL
INNER JOIN LOJA_VENDA_PGTO C
ON A.NF = C.NUMERO_FISCAL_TROCA
AND A.SERIE_NF = C.SERIE_NF_ENTRADA
AND LV.CODIGO_FILIAL = C.CODIGO_FILIAL --#95#
INNER JOIN LOJA_VENDA D ON C.LANCAMENTO_CAIXA = D.LANCAMENTO_CAIXA
AND C.CODIGO_FILIAL = D.CODIGO_FILIAL
CROSS APPLY (SELECT DISTINCT TRO.CODIGO_FILIAL, TRO.TICKET,
TRO.CODIGO_FILIAL_ORIGEM, TRO.TICKET_ORIGEM, TRO.DATA_VENDA_ORIGEM --#94#
FROM LOJA_VENDA_TROCA_ORIGEM TRO
WHERE
TRO.CODIGO_FILIAL = D.CODIGO_FILIAL
AND TRO.TICKET = D.TICKET
AND TRO.DATA_VENDA = D.DATA_VENDA ) E --#84# #94#
INNER JOIN LOJA_VENDA F ON E.TICKET_ORIGEM = F.TICKET
AND E.CODIGO_FILIAL_ORIGEM = F.CODIGO_FILIAL
AND F.DATA_VENDA = E.DATA_VENDA_ORIGEM --#94#
INNER JOIN LOJA_VENDA_PGTO G ON F.LANCAMENTO_CAIXA = G.LANCAMENTO_CAIXA
AND F.CODIGO_FILIAL = G.CODIGO_FILIAL
INNER JOIN LOJA_NOTA_FISCAL_ITEM H ON G.NUMERO_FISCAL_VENDA = H.NF_NUMERO
AND G.SERIE_NF_SAIDA = H.SERIE_NF
AND G.CODIGO_FILIAL = H.CODIGO_FILIAL
AND A.CODIGO_ITEM = H.CODIGO_ITEM -- #84#
WHERE A.NOME_CLIFOR = ''
AND A.ITEM_IMPRESSAO = ''
AND A.SUB_ITEM_TAMANHO = ''
AND A.NF = ''
AND A.SERIE_NF = ''
AND A.NF = '' --#84#
AND A.SERIE_NF ='' --#84#
--and IPI > 0
) IPI_DEVOLUCAO
FOR XML PATH(''), TYPE
|
1.1. Correção referente a versões anteriores a 01.24.030. Esse item é sanado na versão Service Pack 01.24 Hotfix 030 - Shopping - Linx - Rascunho - Linx Share
Select * from (Preencher com a tabela) where NF_ENTRADA = '' AND SERIE_NF_ENTRADA = '' AND NOME_CLIFOR = '' Begin tran Delete from (tabela que as informações será excluída) where NF_ENTRADA = '' AND SERIE_NF_ENTRADA = '' AND NOME_CLIFOR = '' commit |