- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de entrada SPEDPROD
×
Linguagem de Programação ADVPL
Perguntas Ponto de entrada SPEDPROD
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22562
por so-bmoraes
Ponto de entrada SPEDPROD foi criado 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.
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 6 meses atrás #22563
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
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)
#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.
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
10 anos 6 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.
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 6 meses atrás #22566
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
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)
#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.
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22671
por so-bmoraes
Respondido por so-bmoraes no tópico Ponto de entrada SPEDPROD
Brigadão de novo Luiz.
Perfeito!
Perfeito!
Por favor Acessar ou Registrar para participar da conversa.
- so-bmoraes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 57
- Obrigados Recebidos: 0
10 anos 5 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.
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.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de entrada SPEDPROD
Tempo para a criação da página:0.113 segundos