× Linguagem de Programação ADVPL

Perguntas Ponto de entrada SPEDPROD

Mais
9 anos 10 meses atrás #22562 por so-bmoraes
Boa tarde pessoal,

Alguém aí já utilizou o ponto de entrada SPEDPROD?

O que acontece é que no arquivo do SPEDFISCAL está sendo concatenada a filial junto com o b1_cod para formar o código do produto e, como na empresa o cadastro é compartilhado, preciso que fique só o b1_cod para manter o código igual às demais obrigações geradas.
Segundo a TOTVS, é preciso usar este ponto de entrada para fazer isto, só que a documentação é um pouco vaga ( tdn.totvs.com/pages/releaseview.action;j...D3F8D?pageId=6077114 ) e estou demorando para ter retorno.
Se alguém puder me ajudar, agradeço imensamente,

Att,
Sofia.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #22563 por lalberto
Respondido por lalberto no tópico Ponto de entrada SPEDPROD
#include "rwmake.ch"
#INCLUDE "TOPCONN.CH"

User Function SPEDPROD()
Local _aGetArea := GetArea()
Local cAlias := paramixb[1]
Local aProd := {}

_cQuery1 := " SELECT * "
_cQuery1 += " FROM "+RetSqlName("SB1")+" SB1 (NOLOCK) "
_cQuery1 += " WHERE B1_COD = '" + (cAlias)->FT_PRODUTO + "'"
_cQuery1 += " AND D_E_L_E_T_ <> '*'"
TCQUERY _cQuery1 NEW ALIAS "QRY"
dbSelectArea("QRY")
QRY->(DBGOTOP())

IF !QRY->(EOF())
aadd(aProd,QRY->B1_COD) // Código do Produto
aadd(aProd,QRY->B1_DESC) // Descrição do produto
aadd(aProd,QRY->B1_CODBAR) // Código de barras
aadd(aProd,QRY->B1_CODANT) // Código Anterior
aadd(aProd,QRY->B1_UM) // Unidade de medida
aadd(aProd,'01') // Tipo do Item (Tipo SPED)
aadd(aProd,QRY->B1_POSIPI) // Código de NCM
aadd(aProd,QRY->B1_EX_NCM) // Exceção da NCM
aadd(aProd,SubStr(QRY->B1_POSIPI,1,2)) // Código do gênero do item
aadd(aProd,QRY->B1_CODISS) // Código de ISS
aadd(aProd,QRY->B1_PICM) // Alíquota de ICMS
ENDIF

DbCloseArea("QRY")

RestArea(_aGetArea)
Return(aProd)

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #22564 por so-bmoraes
Respondido por so-bmoraes no tópico Ponto de entrada SPEDPROD
Valeu Luiz!!

Novamente, muitíssimo obrigada.
Uma dúvida: a posição 6 (tipo do item) é fixo "01"? Não tem a ver com o b1_tipo, onde, para o SPED ele faz a conversão abaixo:
AADD(aTipo,{"ME","00"}) //MERCADORIA PARA REVENDA
AADD(aTipo,{"MP","01"}) //MATERIA PRIMA
AADD(aTipo,{"EM","02"}) //EMBALAGEM
AADD(aTipo,{"PP","03"}) //PRODUTO EM PROCESSO
AADD(aTipo,{"PA","04"}) //PRODUTO ACABADO
AADD(aTipo,{"SP","05"}) //SUBPRODUTO
AADD(aTipo,{"PI","06"}) //PRODUTO INTERMEDIARIO
AADD(aTipo,{"MC","07"}) //MATERIAL DE USO E CONSUMO
AADD(aTipo,{"AI","08"}) //ATIVO IMOBILIZADO
AADD(aTipo,{"MO","09"}) //SERVICOS

Ou esse tipo do item do ponto de entrada trata-se de outra coisa?

Att,
Sofia.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #22566 por lalberto
Respondido por lalberto no tópico Ponto de entrada SPEDPROD
Faz assim :


#include "rwmake.ch"
#INCLUDE "TOPCONN.CH"

User Function SPEDPROD()
Local _aGetArea := GetArea()
Local cAlias := paramixb[1]
Local aProd := {}
Local aTipo := {}

AADD(aTipo,{"ME","00"}) //MERCADORIA PARA REVENDA
AADD(aTipo,{"MP","01"}) //MATERIA PRIMA
AADD(aTipo,{"EM","02"}) //EMBALAGEM
AADD(aTipo,{"PP","03"}) //PRODUTO EM PROCESSO
AADD(aTipo,{"PA","04"}) //PRODUTO ACABADO
AADD(aTipo,{"SP","05"}) //SUBPRODUTO
AADD(aTipo,{"PI","06"}) //PRODUTO INTERMEDIARIO
AADD(aTipo,{"MC","07"}) //MATERIAL DE USO E CONSUMO
AADD(aTipo,{"AI","08"}) //ATIVO IMOBILIZADO
AADD(aTipo,{"MO","09"}) //SERVICOS



_cQuery1 := " SELECT * "
_cQuery1 += " FROM "+RetSqlName("SB1")+" SB1 (NOLOCK) "
_cQuery1 += " WHERE B1_COD = '" + (cAlias)->FT_PRODUTO + "'"
_cQuery1 += " AND D_E_L_E_T_ <> '*'"
TCQUERY _cQuery1 NEW ALIAS "QRY"
dbSelectArea("QRY")
QRY->(DBGOTOP())

// Padrao Tipo 01
cTipo := '01'
nAchou := Ascan(aTipo,{|x| x[1] == AllTrim(QRY->B1_TIPO)}) // Localiza TIpo Produto no Vetor aTipo e Pega o Codigo Correto
If !Empty(nAchou) // Se achar o tipo na lista do Vetor aTipo entao Substitui a Variavel cTipo
cTipo := aTipo[nAchou,2]
Endif

IF !QRY->(EOF())
aadd(aProd,QRY->B1_COD) // Código do Produto
aadd(aProd,QRY->B1_DESC) // Descrição do produto
aadd(aProd,QRY->B1_CODBAR) // Código de barras
aadd(aProd,QRY->B1_CODANT) // Código Anterior
aadd(aProd,QRY->B1_UM) // Unidade de medida
aadd(aProd,cTipo) // Tipo do Item (Tipo SPED)
aadd(aProd,QRY->B1_POSIPI) // Código de NCM
aadd(aProd,QRY->B1_EX_NCM) // Exceção da NCM
aadd(aProd,SubStr(QRY->B1_POSIPI,1,2)) // Código do gênero do item
aadd(aProd,QRY->B1_CODISS) // Código de ISS
aadd(aProd,QRY->B1_PICM) // Alíquota de ICMS
ENDIF

DbCloseArea("QRY")

RestArea(_aGetArea)
Return(aProd)

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 10 meses atrás #22671 por so-bmoraes
Respondido por so-bmoraes no tópico Ponto de entrada SPEDPROD
Brigadão de novo Luiz.

Perfeito!

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 9 meses atrás #23102 por so-bmoraes
Respondido por so-bmoraes no tópico Ponto de entrada SPEDPROD
Luiz,
Boa tarde.

O ponto de entrada tava rodando certinho, porém, após fazer o fechamento de março, está dando erro.
Em anexo estou colocando as telas de parâmetros, o log de erro e o novo arquivo de inventário (que parece ser o que está ocasionando o problema).
Será que vc pode me ajudar, novamente?
Att,

Sofia.

Arquivo Anexo:

Nome do Arquivo: arqsinv.zip
Tamanho do Arquivo:197 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.124 segundos
Joomla templates by a4joomla