Jump to content

dev botao

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

Recommended Posts

Posted (edited)

Bom dia, o componente não atendia as informações do infGTVe do MOC 4.0.

Classe InfGTVe: InfGTVe.cs
A classe possui o campo chCTe de acordo com o MOC, e possui o grupo Comp para preenchimento das informações do Componente GTVe.

Classe ComponentesValGTVe.cs: ComponentesValGTVe.cs
A classe possui os dados para preenchimento do grupo Comp da tag infGTVe.

Classe TipoComponenteGTVe: TipoComponenteGTVe.cs
Classe enumerada para preenchimento do TipoComponente na classe ComponentesValGTVe.
Essa classe foi criada em ACBr\Shared\ACBrLib.Core\CTe, segui o padrão dos demais arquivos, por isso criei neste local.

Alterações na classe GrupoInformacoesNormalSubstituto.cs

  • Criado propriedade infGTVe para preenchimento da mesma de acordo com o MOC 4.0
public List<InfGTVe> infGTVe { get; set; } = new List<InfGTVe>();


Alterações na classe CTe.cs:

  • Alterações no método WriteToIni:
for (var i = 0; i < GrupoInformacoesNormalSubstituto.infGTVe.Count; i++)
{
  var infGTVe = GrupoInformacoesNormalSubstituto.infGTVe[i];
  iniData.WriteToIni(infGTVe, $"infGTVe{i + 1:000}");

  for (var j = 0; j < GrupoInformacoesNormalSubstituto.infGTVe[i].Comp.Count; j++)
  {
    var Comp = GrupoInformacoesNormalSubstituto.infGTVe[i].Comp[j];
    iniData.WriteToIni(Comp, $"infGTVeComp{i + 1:000}{j + 1:000}");
  }
}

 

  • Alterações no método ReadFromIni
var t = 0;
InfGTVe infGTVe;
do
{
  t++;
  infGTVe = iniData.ReadFromIni<InfGTVe>($"infGTVe{t:000}");

  if (infGTVe != null)
  {

    var u = 0;
    ComponentesValGTVe compValGTVe;
    do
    {
      u++;
      compValGTVe = iniData.ReadFromIni<ComponentesValGTVe>($"infGTVeComp{t:000}{u:000}");

      if (compValGTVe != null) infGTVe.Comp.Add(compValGTVe);

    } while (compValGTVe != null);

    GrupoInformacoesNormalSubstituto.infGTVe.Add(infGTVe);
  }

} while (infGTVe != null);


Obs: no ObterIni, a infGTVe é retornada como se fosse uma TAG de varias ocorrências(infGTVe001), porém ela é uma TAG de apenas uma ocorrência, não deveria ser apenas infGTVe?

Edited by Lindomar S. Menezes
Posted
10 minutos atrás, Lindomar S. Menezes disse:

Obs: no ObterIni, a infGTVe é retornada como se fosse uma TAG de varias ocorrências(infGTVe001), porém ela é uma TAG de apenas uma ocorrência, não deveria ser apenas infGTVe?

Desconsiderar essa parte por gentileza, era pra eu ter removido antes de postar mas esqueci.

  • Consultores
Posted

Boa tarde,

Criada a TK-4267 para avaliação.

Obrigado pela contribuição.

  • Like 1
  • Thanks 1
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Posted

Boa tarde, alimentamos a classe, e chegando nos testes, obtemos o seguinte erro aqui no ACBrLibHandle.

Na seguinte linha: 

ACBrCTe.CarregarIni(CTe.ToString());



A parte do WriteToIni() que converte a classe para Ini, está sendo feita corretamente, debugando o método ele passa do WriteToIni e carrega tudo certinho no iniData, e quando cai no método CarregarIni do ACBrCTe, a seguinte exceção é disparada:

System.ApplicationException: 'List index (1) out of bounds'


Apenas para informação mesmo.

  • 2 weeks later...
  • Consultores
  • Solution
Posted

Bom dia!

Mais uma vez, muito obrigado pela contribuição.

As classes foram enviadas ao SVN na Rev-30343.

Em 01/08/2023 at 11:13, Lindomar S. Menezes disse:

Classe enumerada para preenchimento do TipoComponente na classe ComponentesValGTVe.
Essa classe foi criada em ACBr\Shared\ACBrLib.Core\CTe, segui o padrão dos demais arquivos, por isso criei neste local.

As classes do ACBrLib.Core\CTe, são classes que podem vir a ser usadas por outros DFes, geralmente são classes de configuração da Lib.

Por causa disso, optei por colocar essa junto as demais em ..\ACBrLib\Demos\C#\CTe\Imports\Dinamico\Shared.

Em 01/08/2023 at 18:04, Lindomar S. Menezes disse:

A parte do WriteToIni() que converte a classe para Ini, está sendo feita corretamente, debugando o método ele passa do WriteToIni e carrega tudo certinho no iniData, e quando cai no método CarregarIni do ACBrCTe, a seguinte exceção é disparada:

System.ApplicationException: 'List index (1) out of bounds'


Apenas para informação mesmo.

Verificado que a rotina de leitura nativa estava usando o índice errado.

Correção enviada ao SVN na Rev-30342

  • Like 2
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Posted

A alteração no componente nativo foi enviada hoje para o SVN.

Por isso não foi englobada na compilação da Lib que foi feita ontém.

Vou gerar uma compilação local e lhe enviar no privado para que você possa testar.

Só confirmando, você usa Cdecl, Multi-Thread, X64, correto?

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Posted
1 minuto atrás, Diego Foliene disse:

Vou gerar uma compilação local e lhe enviar no privado para que você possa testar.

Beleza, obrigado

 

1 minuto atrás, Diego Foliene disse:

Só confirmando, você usa Cdecl, Multi-Thread, X64, correto?

Isso mesmo.

  • Consultores
Posted

Compilação da Lib enviada via mensagem privada aqui no fórum.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Posted

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 483 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.