Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2389 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
Postado

Boa tarde a todos,

Foi realizado um Refactoring nas units pcnAuxiliar e ACBrDFeUtil visando eliminar funções em duplicidade.

Segue a lista de funções removidas, movidas, renomeadas.

Função movida da unit pcnAuxiliar para a ACBrDFeUtil:

GerarCodigoNumerico.

Função renomeada da unit pcnAuxiliar:

de: ExtrairnNFChaveAcesso para ExtrairCodigoChaveAcesso 

essa mudança no nome se faz necessário uma vez que "nNF" induz que a função só serve para extrair o código numérico de uma chave de NF-e, sendo que na verdade serve para extrair o código numérico de uma chave de NF-e, CT-e, MDF-e e BP-e.

Funções removidas da unit pcnAuxiliar:

GerarChave, GerarChaveCTe, SomenteNumeros, RetornarCodigoNumerico, RetornarCodigoNumericoCTe, RetornarDigito e RetornarModelo.

Em seus lugares devemos utilizar:

GerarChaveAcesso (unit ACBrDFeUtil) em vez de GerarChave ou GerarChaveCTe

OnlyNumber (unit ACBrUtil) em vez de SomenteNumeros

ExtrairCodigoChaveAcesso (unit pcnAuxiliar) em vez de RetornarCodigoNumerico, RetornarCodigoNumericoCTe

ExtrairDigitoChaveAcesso (unit pcnAuxiliar) em vez de RetornarDigito

ExtrairModeloChaveAcesso (unit pcnAuxiliar) em vez de RetornarModelo

 

Desculpe algum transtorno, mas não podemos ter uma função implementada com nomes diferentes com a mesma finalidade.

  • Curtir 6
  • Obrigado 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Bom dia a todos,

Para aqueles que em suas aplicações atribuem o valor -1 ao campo cNF (no caso da NF-e/NFC-e) ou cCT (no caso do CT-e/CT-e OS) ou cMDF (no caso do MDF-e) ou cBP (no caso do BP-e), tomem cuidado, pois agora a nova função responsável por gerar a chave vai considerar o valor -1 como sendo zero e portanto o código numérico passa a ser gerado como sendo um numero aleatório e não como um código com base no numero do documento, como era antes.

Para resolver esse problema a sugestão é o seguinte:

em vez de:

ide.cNF :=  -1; 

mude para:

ide.cNF := GerarCodigoNumerico(ide.nNF);

isso vai fazer com que seja atribuído a cNF um código numérico gerado com base no numero do documento, vai ter o mesmo efeito na geração da chave como era antes ao passar o valor -1 para cNF.

De forma semelhante fazer o mesmo para o CT-e, MDF-e e BP-e.

Lembrando que a função GerarCodigoNumerico se encontra na unit ACBrDFeUtil, logo devemos declara-la no uses da unit que será utilizada.

  • Curtir 3
  • Obrigado 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Acabei de atualizar o componente, a função GerarChaveAcesso.... passou a dar erro de compilação

pcteCTeW.pas

na linha, 252 com o codigo abaixo:

  chave := GerarChaveAcesso(CTe.ide.cUF, CTe.ide.dhEmi, CTe.emit.CNPJ, CTe.ide.serie,
                            CTe.ide.nCT, StrToInt(TpEmisToStr(CTe.ide.tpEmis)),
                            CTe.ide.cCT, CTe.ide.modelo);
 

[dcc32 Error] pcteCTeW.pas(254): E2034 Too many actual parameters

Postado
42 minutos atrás, Leonardo Quinino disse:

Acabei de atualizar o componente, a função GerarChaveAcesso.... passou a dar erro de compilação

pcteCTeW.pas

na linha, 252 com o codigo abaixo:

  chave := GerarChaveAcesso(CTe.ide.cUF, CTe.ide.dhEmi, CTe.emit.CNPJ, CTe.ide.serie,
                            CTe.ide.nCT, StrToInt(TpEmisToStr(CTe.ide.tpEmis)),
                            CTe.ide.cCT, CTe.ide.modelo);
 

[dcc32 Error] pcteCTeW.pas(254): E2034 Too many actual parameters

Prezados, resolvido.
Solução foi apagar a instalação anterior, e reinstalando o pacote todo novamente.

Postado
14 horas atrás, Juliomar Marchetti disse:

tem a opção no instalador pra marcar pra limpar tudo.

outra coisa é ter somente um local com os fontes do acbr

Foi o que fiz.. removi os fontes. quis postar a minha solução para servir de case de ajuda para caso alguém passar novamente por essa situação.

  • Curtir 1
  • 3 semanas depois ...
  • Membros Pro
Postado (editado)

A unit abaixo ainda está com a declaração antiga:

ACBrHTMLtoXML

Acusando erro em:

NFe.Ide.cNF   := ExtrairCodigoChaveAcesso (NFe.infNFe.ID,NFe.infNFe.Versao);

Mudado para (Removendo o NFE.infNFe.Versao):

NFe.Ide.cNF   := ExtrairCodigoChaveAcesso (NFe.infNFe.ID);

 

/*-----------------------------------------------------------------*/

Acusando erro em:

 NFe.Ide.modelo := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 21, 2));
 NFe.Ide.serie := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 23, 3));

Mudado para:

 NFe.Ide.modelo := StrToInt(copy(OnlyNumber (NFe.infNFe.ID), 21, 2));
 NFe.Ide.serie := StrToInt(copy(OnlyNumber (NFe.infNFe.ID), 23, 3));

 

*Acabei de atualizar os fontes e mandei limpar toda instalação.

Editado por evertonbuenolima
  • Obrigado 1
  • Moderadores
Postado

anexa a unit modificada!

10 horas atrás, evertonbuenolima disse:

A unit abaixo ainda está com a declaração antiga:

ACBrHTMLtoXML

Acusando erro em:

NFe.Ide.cNF   := ExtrairCodigoChaveAcesso (NFe.infNFe.ID,NFe.infNFe.Versao);

Mudado para (Removendo o NFE.infNFe.Versao):

NFe.Ide.cNF   := ExtrairCodigoChaveAcesso (NFe.infNFe.ID);

 

/*-----------------------------------------------------------------*/

Acusando erro em:

 NFe.Ide.modelo := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 21, 2));
 NFe.Ide.serie := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 23, 3));

Mudado para:

 NFe.Ide.modelo := StrToInt(copy(OnlyNumber (NFe.infNFe.ID), 21, 2));
 NFe.Ide.serie := StrToInt(copy(OnlyNumber (NFe.infNFe.ID), 23, 3));

 

*Acabei de atualizar os fontes e mandei limpar toda instalação.

 

  • Obrigado 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 meses depois ...
  • Este tópico foi criado há 2389 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.