Ir para conteúdo
  • Cadastre-se

dev botao

C# - docAnt


Ver Solução Respondido por Diego Foliene,
  • Este tópico foi criado há 256 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores

Boa tarde,

Criada a TK-4266 para verificação.

Obrigado

  • Curtir 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

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Acredito que ela também não esteja sendo carregada com o ACBrCTe.CarregarXml();

Aproveitando também. As classes idDocAntPap e idDocAntEle estão em desacordo com o MOC, elas devem permitir que mais de uma ocorrência seja adicionada.

image.thumb.png.0ecf1d326665f1317ef8e3680f6adf09.png


Realizei a alteração delas para lista aqui para conseguirmos emitir da maneira correta, porém não fiz nenhuma implementação no CTe.cs pois não sei como o iniContent se comporta quando tem mais de uma ocorrência dessas tags, pois ele não vem no ObterIni(), vou ir verificando aqui, caso consiga fazer da maneira correta eu compartilho aqui no tópico.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Antes quando alimentava as classes e enviava o CT-e, me retornava uma rejeição referente aos child objects desse grupo de informações, seguindo a lógica de como eu fiz a implementação do infGTVe em um outro tópico que postei, fiz a implementação para ambas as classes no CTe.cs e consegui obter sucesso na alimentação das TAG's, a única coisa agora é que tá retornando o seguinte erro ao enviar: 

1840 - Element '{http://www.portalfiscal.inf.br/cte}tpDoc': [facet 'enumeration'] The value '00' is not an element of the set {'07', '08', '09', '10', '11', '12', '13'}.


Mesmo o tpDoc sendo alimentado corretamente na classe(No meu caso é "07 - ATRE"), parece que após usar o comando CarregarIni(CTe.ToString()) essa informação não está sendo alimentada corretamente no XML.

Alterações na classe CTe.cs
 

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

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

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

 

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

  if (emiDocAnt != null)
  {
    var b = 0;
    IdDocAntPapCTe idDocAntPap;
    do
    {
      b++;
      idDocAntPap = iniData.ReadFromIni<IdDocAntPapCTe>($"idDocAntPap{a:000}{b:000}");

      if (idDocAntPap != null) emiDocAnt.idDocAntPap.Add(idDocAntPap);

    } while (idDocAntPap != null);

    b = 0;
    IdDocAntEleCTe idDocAntEle;
    do
    {
      b++;
      idDocAntEle = iniData.ReadFromIni<IdDocAntEleCTe>($"idDocAntEle{a:000}{b:000}");

      if (idDocAntEle != null) emiDocAnt.idDocAntEle.Add(idDocAntEle);

    } while (idDocAntEle != null);

    GrupoInformacoesNormalSubstituto.docAnt.emiDocAnt.Add(emiDocAnt);
  }

} while (emiDocAnt != null);

 

  • Tag's em questão geradas corretamente, com exceção do campo tpDoc
<docAnt>
	<emiDocAnt>
		<CNPJ>17089484000190</CNPJ>
		<IE>256876460</IE>
		<UF>SC</UF>
		<xNome>SGBR SISTEMAS</xNome>
		<idDocAnt>
			<idDocAntPap>
				<tpDoc>00</tpDoc>
				<serie>2</serie>
				<subser>1</subser>
				<nDoc>811</nDoc>
				<dEmi>2023-07-25</dEmi>
			</idDocAntPap>
		</idDocAnt>
	</emiDocAnt>
</docAnt>

 

Aproveitando o gancho, fiz outra implementação na classe CTe.cs, mas essa é referente a tag dup (GrupoInformacoesNormalSubstituto.cobr.dup), realizando os testes aqui, observei que a classe não estava sendo alimentada quando enviado um CT-e, sendo assim consegui fazer sair certinho, realizando a seguinte implementação na classe CTe.cs:
 

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

 

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

  if (dup != null) GrupoInformacoesNormalSubstituto.cobr.dup.Add(dup);

} while (dup != null);
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores
  • Solution

Bom dia!

Não tinha na rotina de geração do INI do componente nativo os grupos citados, por isso que o método CTe.ObterIni não trazia a informação.

Adicionado e enviado ao SVN na Rev-30284.

Mais uma vez, muito obrigado pelas contribuição nas classes C#, as alterações nas classes C# foram enviadas ao SVN na Rev-30285

  • Obrigado 1
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 !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Olá bom dia Diego, tudo bem?
Muito obrigado.
 

Referente a esse validação, é necessário aguardar a atualização das dlls relacionadas ao CTe, correto?

Citar
1840 - Element '{http://www.portalfiscal.inf.br/cte}tpDoc': [facet 'enumeration'] The value '00' is not an element of the set {'07', '08', '09', '10', '11', '12', '13'}.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
10 minutos atrás, Lindomar S. Menezes disse:

Olá bom dia Diego, tudo bem?
Muito obrigado.
 

Referente a esse validação, é necessário aguardar a atualização das dlls relacionadas ao CTe, correto?

 

Bom dia!

Pedi a equipe responsável se é possível gerar uma nova compilação da Lib para que você possa testar não só esta, mas as alterações de outros tópicos também.

  • Obrigado 1
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 !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 256 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.