Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Ponto de Entrada SPEDPROD gera registro 0200 duplicado

time.pngTempo aproximado para leitura: 00:03:00 min

Dúvida

Ao processar o Bloco K no SPEDFISCAL com o ponto de entrada SPEDPROD, o sistema está duplicando os itens no Bloco 0200 afetando a geração também dos blocos K230 e K235.

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80

Solução
As ocorrências de registros 0200 duplicados, ao utilizar o ponto de entrada SPEDPROD, se deve ao fato do código do produto no array de retorno estar sendo informado de forma incorreta. Deve-se lembrar que a posição referente ao código do produto no registro é composta por código + filial, portanto caso seja informado essa posição com somente o código do produto o sistema entenderá que se trata de um produto isolado, sendo esta a causa mais provável de duplicidade do registro.
Segue exemplo de implementação;

#Include 'Protheus.ch'

User Function SPEDPROD()

local cAlias := iif(len(paramixb) >= 1 , paramixb[1], '')
local cRegspd := iif(len(paramixb) >= 2 , paramixb[2], '')
local cUnid := iif(len(paramixb) >= 3 , paramixb[3], '')
local aProd := {}
local lFTProduto := .f.
local lB1Cod := .f.
local lCodItem := .f.
local lD2Cod := .f.
local lCF8Item := .f.
local cProduto := ""

//Alert("Ponto de entrada SPEDPROD")

do case
//Verifica se o campo FT_PRODUTO existe no alias
case (cAlias)->(fieldPos('FT_PRODUTO')) > 0
cProduto := (cAlias)->FT_PRODUTO
//Verifica se o campo B1_COD existe no alias
case (cAlias)->(fieldPos('B1_COD')) > 0
cProduto := (cAlias)->B1_COD
//Verifica se o campo COD_ITEM existe no alias
case (cAlias)->(fieldPos('COD_ITEM')) > 0
cProduto := (cAlias)->COD_ITEM
//Verifica se o campo D2_COD existe no alias
case (cAlias)->(fieldPos('D2_COD')) > 0
cProduto := (cAlias)->D2_COD
//Verifica se o campo CF8_ITEM existe no alias
case (cAlias)->(fieldPos('CF8_ITEM')) > 0
cProduto := (cAlias)->CF8_ITEM
endCase

dbSelectArea("SB1")
SB1->(dbSetOrder(1))

if SB1->(dbSeek(xFilial("SB1") + cProduto) )
aAdd(aProd, SB1->B1_COD + cFilAnt) // 1 - Código do Produto
aAdd(aProd, "ALTERADO PE SPEDPROD" ) // 2 - Descrição do Produto
aAdd(aProd, "" ) // 3 - Código de Barras
aAdd(aProd, "" ) // 4 - Código Anterior
aAdd(aProd, SB1->B1_UM ) // 5 - Unidade de Medida
aAdd(aProd, "99" ) // 6 - Tipo do Item (Tipo SPED)
aAdd(aProd, "XX" ) // 7 - Código de NCM
aAdd(aProd, "XX" ) // 8 - Exceção da NCM
aAdd(aProd, "XX" ) // 9 - Código do Gênero do Item
aAdd(aProd, "XX" ) // 10 - Código de ISS
aAdd(aProd, "18" ) // 11 - Alíquota de ICMS
endIf

return aProd

Utilizando o código acima, seguem exemplos de implementação correta e incorreta da linha que alimenta o array de retorno com o código do produto;

Correto:

OBS: Na linha: aAdd(aProd, SB1->B1_COD + cFilAnt) // 1 - Código do Produto 

Se utiliza MV_COFLSPD = .T. ou insistente,
A linha deve estar:
aAdd(aProd, SB1->B1_COD + cFilAnt) // 1 - Código do Produto

Se utiliza MV_COFLSPD = .F.
A linha deve estar:
aAdd(aProd, SB1->B1_COD ) // 1 - Código do Produto
 
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _