Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Italo, pode dar uma olhada nessa unit, que ajustei para compilar no XE3 ? Seue em anexo obrigado.

ACBrNFSeUtil.pas

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Boa tarde Isaque,

Já esta disponivel as alterações propostas por você para compilar no XE3.

Andei notando que varias function se repete em varios componentes, poderiamos criar uma unit com essas function para ser utilizada por todos os componentes que as necessitam desta forma a manutenção fica mais facil e centralizada.

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

Boa tarde Isaque,

Já esta disponivel as alterações propostas por você para compilar no XE3.

Andei notando que varias function se repete em varios componentes, poderiamos criar uma unit com essas function para ser utilizada por todos os componentes que as necessitam desta forma a manutenção fica mais facil e centralizada.

Ei Italo, subi um ajuste, pois as mudanças do jeito que fiz, deu pau no D2010, agora ta ok, ficou parecido como o que vc já havia feito.

Concordo com vc podemos sim, criar essa Unit, inclusive termos uma var public chamada "ACBrFormatSettings" do tipo TFormatSettings, para resolver essa questão.

Vou começar a olhar sobre isso e volto a postar aqui, dando sequencia a essa ideia, vou começar com ACBrNFeUtil, ACBrNFSeUtil e ACBrCTeUtil, vamos definir o nome

ACBreUtil

ACBrXeUtil

ACBrUtile

da uma ideia ai.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Bom dia Isaque,

Como dito anteriormente, existem varias funções com o mesmo nome e funcionalidade, declaradas nas unit: ACBrNFeUtil, ACBrNFSeUtil e ACBrCTeUtil.

Em um primeiro momento poderiamos estar criando uma Unit chamada ACBrDFeUtil (DFe = Documento Fiscal Eletrônico).

Ela ficaria por exemplo dentro da pasta ACBrComum.

Ou passariamos as funções comuns para a unit ACBrUtil (que já existe e também encontra-se dentro da pasta ACBrComum), o meu receio e deixar essa unit muito grande.

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

Bom dia Isaque,

Como dito anteriormente, existem varias funções com o mesmo nome e funcionalidade, declaradas nas unit: ACBrNFeUtil, ACBrNFSeUtil e ACBrCTeUtil.

Em um primeiro momento poderiamos estar criando uma Unit chamada ACBrDFeUtil (DFe = Documento Fiscal Eletrônico).

Ela ficaria por exemplo dentro da pasta ACBrComum.

Ou passariamos as funções comuns para a unit ACBrUtil (que já existe e também encontra-se dentro da pasta ACBrComum), o meu receio e deixar essa unit muito grande.

Bom dia, bingooooo, ótimo nome para a unit, a Unit ACBrUtil, tem finalidade para todos os pacotes, penso ser melhor criarmos uma nova mesmo só para os DFe, se depois virmos que alguma função existe ou seja util para os demais pacotes passamos somente essas funções para o ACBrUtil, o que acha?

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Isaque,

Perfeito, penso da mesma forma, só incluir uma function na unit ACBrUtil quando esta for de uso geral.

E aproveitando, temos 3 funções no ACBrUtil que aparecem nas outras ACBrxxxUtil com nomes diferentes mas com a mesma funcionalidade.

ACbrUtil ACBrxxxUtil

padL PadE

padR PadD

padC PadC

No ACBrUtil os nomes estão em ingles (L, R e C) e nas units ACBrxxxUtil estão em portugues (E, D, C).

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

Isaque,

Perfeito, penso da mesma forma, só incluir uma function na unit ACBrUtil quando esta for de uso geral.

E aproveitando, temos 3 funções no ACBrUtil que aparecem nas outras ACBrxxxUtil com nomes diferentes mas com a mesma funcionalidade.

ACbrUtil ACBrxxxUtil

padL PadE

padR PadD

padC PadC

No ACBrUtil os nomes estão em ingles (L, R e C) e nas units ACBrxxxUtil estão em portugues (E, D, C).

Dessa forma,assumimos o nome da ACBrUtil, pois ela abrange mais lugares a serem mexidos.

Certo então vou começar aqui, e se ficar alguma coisa em dúvida discutimos nos próximos posts.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Isaque,

Desculpe, não compreendi "assumimos o nome da ACBrUtil"?

A minha idéia e termos as duas units: ACBrUtil que contem as function de uso geral, e a ACBrDFeUtil que contem as function de uso dos componentes ACBrNFe, ACBrNFSe e ACBrCTe e outros que venham a ser criados para gerar documentos fiscais eletrônicos.

No meu post anterior apenas alertei sobre as 3 funções que na unit ACBrUtil tem os seus nomes em ingles e nas demais em portugues.

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

Isaque,

Desculpe, não compreendi "assumimos o nome da ACBrUtil"?

A minha idéia e termos as duas units: ACBrUtil que contem as function de uso geral, e a ACBrDFeUtil que contem as function de uso dos componentes ACBrNFe, ACBrNFSe e ACBrCTe e outros que venham a ser criados para gerar documentos fiscais eletrônicos.

No meu post anterior apenas alertei sobre as 3 funções que na unit ACBrUtil tem os seus nomes em ingles e nas demais em portugues.

O que eu quis dizer é que quando tivermos as units parecidas ou de mesma função, mas com nomes diferentes tipo as que citou.

padL PadE

padR PadD

padC PadC

Usaremos a de nome que esta em ACBrUtil "padL, padR, padC", e eliminaremos as demais, das outras units. "padE, padD, padC"

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Postado

Agora ficou claro, desculpe.

Italo, fiz o que conversamos:

Criei a unit ACBrDFeUtil.pas e levei as funções para ela

Já nas units ACBrNFeUtil, ACBrNFSeUtil e ACBrCTeUtil, somente cerquei as funções removidas para o ACBrDFeUtils, e mudei todos os link das funções nas units que necessitarma para o nome da class "DFeUtil.NomeDaFuncao"

Obs: as funções originais não foram apagadas das units de origem, para qualquer evento, foram somente comentadas.

Fiz as funções mais simples, as mais complexas deixei para olharmos depois com mais calma, o pontapé inicial era importante para começarmos.

A Unit ACBrDFeUtil.pas foi add ao pacote ACBrComum

Acho que é só, abraço.

Há, testei no D2010, DXE2 e DXE3, e depois subi as alterações.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Boa tarde Isaque,

Perfeito, no decorrer dos dias vamos eliminando dos fontes as linhas comentadas, assim que notarmos que esta funcionando a contento.

Vamos deixar por exemplo na unit ACBrNFeUtil as function que diz respeito somente a NFe.

Desta forma vamos simplificar as units, evitar de ter function em duplicidade, tornando a manutenção do código muito mais rapida.

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

  • Moderadores
Postado

Boa tarde

Já para ajudar, atualizei os fontes e ao compilar deu problema com os pacotes do rave

ACBrDANFeCBRavePaisagem.pas está reclamando a falta das funções EstaVazio,Poem_Zeros,SeSenao

ai conferi que são as funções comentadas, então adicionei na uses que foram alteradas para pegar

acho que precisa modificar isso no svn

também o mesmo com o datamodule ACBrNFeDANFERaveDM.pas

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
 

 

Postado

Boa tarde Isaque,

Perfeito, no decorrer dos dias vamos eliminando dos fontes as linhas comentadas, assim que notarmos que esta funcionando a contento.

Vamos deixar por exemplo na unit ACBrNFeUtil as function que diz respeito somente a NFe.

Desta forma vamos simplificar as units, evitar de ter function em duplicidade, tornando a manutenção do código muito mais rapida.

Depois, podemos olhar junto a unit ACBrUtil e vê o que já tem la, podendo assim eliminar a duplicidade na unit ACBrDFeUtil

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Boa tarde Isaque,

Implementei as funções FormatarCEP e FormatarFone na unit ACBrDFeUtils.

Elas estão bem diferente das existentes em outras Unit, a minha intensão foi aprimora-las, mas caso você encontre algum problema ou tenha uma proposta melhor, por favor altere.

As funções referentes a assinatura de XML bem como a validação do mesmo, na minha opnião deve ficar na unit que pertence o componente, ou seja a função que assina o XML do CTe deve ficar no ACBrCTeUtil.

As procedure e funções: ConfAmbiente, PathAplication, CollateBr, UpperCase2 poderia ficar no ACBrDFeUtil.

Já, PathWithDelim e RetornarConteudoEntre já estão definidas na unit pcnAuxiliar se não me falha a memória.

Fico no aguardo a sua opnião.

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

Ola Italo, concordo as funções de assinatura devem ficar cada uma em sua unit de origem, a DFe não deve ter nada da capicom nem da openssl inclusa nela, sobre as outras acredito que podemos transferi-las para DFeUtil, e comentar as originais, como foi feito nas demais, vou fazer isso.

Sobre Já, "PathWithDelim e RetornarConteudoEntre", temos que olhar com calma, pois se não me engano tem elas no ACBrUtil tb, vamos com calma, no final tudo da certo. :)

Abraço

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

  • Consultores
Postado

Isaque,

Eu não me recordo onde as funções PathWithDelim e RetornarConteudoEntre estão implementadas, mas sei que já estão logo devemos deixa-las de lado.

Imprime a o "Type" do ACBrCTeUtil, ACBrNFeUtil, ACBrNFSeUtil e do ACBrMDFeUtil (Manifesto Eletrônico de Documentos Fiscais) para checar as funções restantes, depois lhe informo quais funções talvez poderia migrar para o ACBrDFeUtil.

Temos novidades para o primeiro semestre de 2013 (NFe NT 2012/005 e CTe NT 2012/004).

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

Olá Pessoal,

Atualizei o ACBRNFe esta semana e verifiquei que o CEP do destinatário esta gerendo errado. Esta sendo adicionado um zero na frente do numero correto.

No XML esta correto o problema esta na impressão do DANFE RAVE.

Verifiquei que existem duas units com a mesma função. AcbrNFeUtil e AcbrDFeUtil.

Na unit ACBrNFeDANFERaveDM, o CEP do Emitente esta sendo formatado usando a Unit AcbrNFeUtil e CEP do Destinatario pela Unit AcbrDFeUtil.

Troquei a função para pegar da unit AcbrNFeUtil e funcionou normal.

Quem atualizou favor verificar. Tive problemas aqui com um cliente. A Transportadora não quis transportar até fazer carta de correção.

Atte.

Ageu

  • Consultores
Postado

Boa tarde Isaque,

Acrescentei na unit ACBrDFeUtil as seguintes funções e procedimentos:

FormatarCEP, FormatarFone, ConfigAmbiente, PathAplication, CollateBr, UpperCase2, ValidaUFCidade e FormatarPlaca.

As units FormatarValor e UFToCUF não inclui pois elas necessitam da unit pcnConversao que faz parte do pacote PCN2.

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

Boa tarde Isaque,

Acrescentei na unit ACBrDFeUtil as seguintes funções e procedimentos:

FormatarCEP, FormatarFone, ConfigAmbiente, PathAplication, CollateBr, UpperCase2, ValidaUFCidade e FormatarPlaca.

As units FormatarValor e UFToCUF não inclui pois elas necessitam da unit pcnConversao que faz parte do pacote PCN2.

Olá Italo, achas que podemos mudar todas sem problema? Digo isso pelas diferenças que tinham uma das outras. Se me confirmar mudo elas também, semana que vem.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.