Ir para conteúdo
  • Cadastre-se

dev botao

mdfe com origem e destino na mesma UF


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

Recommended Posts

tenho um manifesto de carregamento com erro. Eu não coloquei a informação do percurso  pois se trata de carregamento dentro do próprio estado. Estou perdido podem me ajudar

segue o erro de validação e o anexo com o arquivo enviado.

Aguardo

 

infProt Id="MDFe231120211523244370">
  <tpAmb>1</tpAmb> 
  <verAplic>RS20210820095235</verAplic> 
  <chMDFe>32211109275826000138580010000000191263377678</chMDFe> 
  <dhRecbto>2021-11-23T15:23:24-03:00</dhRecbto> 
  <digVal>WVC2xncKOQhWwAugcJ6538/UB20=</digVal> 
  <cStat>663</cStat> 
  <xMotivo>Rejeição: Percurso informado inválido</xMotivo> 
  </infProt>
 

MDFE.txt

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Fernanda,

Você esta gerando o XML com percurso, veja:

cMunCarrega=3205200
xMunCarrega=VILA VELHA
UFPer=ES                <========== como a UFIni e UFFim são iguais essa linha não pode constar 
dhIniViagem=

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 minuto atrás, Fernanda disse:

delphi. gerei um arquivo txt e mandei abrir o acbrmdfe em modo assincrono

viu utilize diretamente o componente, preenchendo as tags dele. o exemplo lhe mostra como fazer. é muito mais seguro e tu consegue validar muita coisa ao preencher

agora com o txt foi mais uma forma de compatibilizar e usar no monitor

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Fernanda,

Esse TXT que você gerou esta completamente fora do padrão esperado pelo componente.

Faça o que o Juliomar lhe disse.

Já que você trabalha com o Delphi é muito mais simples usar diretamente o componente.

Estude o programa exemplo do ACBrMDFe.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Fernanda,

Quem gerou esse XML o componente ACBrMDFe ou a sua aplicação?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Você alimentando o componente de que forma no que se refere ao percurso?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vou novamente sugerir. tu tá gerando um txt pra inserir no componente para de certa forma gerar outro txt.

sendo que alimentar o componente vai ser algo semelhante abaixo tirado do exemplo

image.png

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

CERTO JULIMAR EU ENTENDO. MAS VEJA SE TEM O RECURSO..... 

pego do meu banco de dados e gero o txt de acordo com as informacoes passadas pelo cliente.  veja o exemplo


         writeln(Arq,'tpAmb=1');
         writeln(Arq,'tpEmit=2');
         writeln(Arq,'modelo=58');
         writeln(Arq,'serie=1');
         writeln(Arq,'nMDF='+numeromdf);
         writeln(Arq,'cmdf='+nseq);
         writeln(Arq,'modal=1');
         writeln(Arq,'dhemi='+inia+'/'+inim+'/'+inid+' '+hora+':'+min+':'+seg);
         writeln(Arq,'tpEmis=1');
         writeln(Arq,'procEmi=0');
         writeln(Arq,'verProc=1.00');
         writeln(Arq,'UFIni='+clientdatasetempuf.value);

         {if copy(ClientDataSetMdfeCodmunfin.value,1,2)='31' then
         writeln(Arq,'UFFim=MG');
         if copy(ClientDataSetMdfeCodmunfin.value,1,2)='35' then
         writeln(Arq,'UFFim=SP');
         if copy(ClientDataSetMdfeCodmunfin.value,1,2)='32' then
         writeln(Arq,'UFFim=ES');
         if copy(ClientDataSetMdfeCodmunfin.value,1,2)='33' then
         writeln(Arq,'UFFim=RJ');}

         writeln(Arq,'UFFim='+ClientDataSetMdfeUFdestino.value);
         //writeln(Arq,'UFFim='+clientdatasetempuf.value);
         //writeln(Arq,'UFFim='+ClientdatasetcliUf.value);
         writeln(Arq,'tpTransp=');
         writeln(Arq,'cMunCarrega='+ClientDataSetEmpCmun.value);
         writeln(Arq,'xMunCarrega='+ClientDataSetEmpCidade.value);

         if (ufcaminho<>'') or (ufcaminho<>'') then
         writeln(Arq,'UFPer='+ufcaminho);
         if (ufcaminho1<>'') or (ufcaminho1<>'') then
         writeln(Arq,'UFPer1='+ufcaminho1);
         if (ufcaminho2<>'') or (ufcaminho2<>'') then
         writeln(Arq,'UFPer2='+ufcaminho2);
         if (ufcaminho3<>'') or (ufcaminho3<>'') then
         writeln(Arq,'UFPer3='+ufcaminho3);
         if (ufcaminho4<>'') or (ufcaminho4<>'') then
         writeln(Arq,'UFPer4='+ufcaminho4);
         if (ufcaminho5<>'') or (ufcaminho5<>'') then
         writeln(Arq,'UFPer5='+ufcaminho5);
         if (ufcaminho6<>'') or (ufcaminho6<>'') then
         writeln(Arq,'UFPer6='+ufcaminho6);

         writeln(Arq,'dhIniViagem=');
         writeln(Arq,'RNTRC=00000000');
         writeln(Arq,'CIOT=000000000000');
         writeln(Arq,'codAgPorto=');
         writeln(Arq,'RNTRC=00000000');
         writeln(Arq,'cint=');
         writeln(Arq,'placa='+cPlaca);
         writeln(Arq,'RENAVAM='+ClientDataSetveicRenavam.value);
         writeln(Arq,'tara=10');
         writeln(Arq,'capKG=');
         writeln(Arq,'capM3=');
         writeln(Arq,'UF='+ClientDataSetveicUF.value);
         writeln(Arq,'CNPJCPF=');
         writeln(Arq,'RNTRC=');
         writeln(Arq,'xNome=');
         writeln(Arq,'IE=');
         writeln(Arq,'UFProp=');
         writeln(Arq,'tpProp=');
         writeln(Arq,'tpRod='+ClientDataSetveicTpveiculo.value);
         writeln(Arq,'tpCar='+ClientDataSetveicTpcarroceria.value);
         writeln(Arq,'UF='+ClientDataSetveicUF.value);
         writeln(Arq,'xNome='+ClientDataSetVENDEDORnome.value);
         writeln(Arq,'CPF='+SomenteNumeros(ClientDataSetVENDEDORcpf.value));
         writeln(Arq,'cMunDescargadest='+ClientDataSetMdfeCodmunfin.value);
         writeln(Arq,'xMunDescargadest='+ClientDataSetCmunCidade.value);
         //writeln(Arq,'chNfe='+ClientDataSetMdfeChavenfe.value);
         with ClientDataSetMdfe do
         while not eof do
         begin
         cte:=cte+1;
         if cte=1 then
         writeln(Arq,'chNfe='+ClientDataSetMdfeChavenfe.value);
         if cte=2 then
         writeln(Arq,'chNfe2='+ClientDataSetMdfeChavenfe.value);

         vcarga:=vcarga+ClientDataSetMdfeTvalor.value;
         //vcarga:=ClientDataSetMdfeTvalor.value;
         ic:=FormatFloat('0.00',vcarga);
         x:=pos(',',ic);
         vld:=copy(ic,x+1,3);
         ic:=Copy(ic,x-X,X-1)+'.'+VLD;

         qCarga:=qCarga+ClientDataSetMdfeQvol.value;
         //qCarga:=ClientDataSetMdfeQvol.value;
         ic:=FormatFloat('0.00',qCarga);
         x:=pos(',',ic);
         vld:=copy(ic,x+1,3);
         ic:=Copy(ic,x-X,X-1)+'.'+VLD;

         {writeln(Arq,'vCarga='+floattostr(vcarga));
         writeln(Arq,'cUnid=02');
         writeln(Arq,'qCarga='+floattostr(qCarga));}

         ClientDataSetMdfe.Next;
         end;

         writeln(Arq,'qCTe=0');
         writeln(Arq,'qNFe='+floattostr(cte));
         writeln(Arq,'vCarga='+floattostr(vcarga));
         writeln(Arq,'cUnid=02');
         writeln(Arq,'qCarga='+floattostr(qCarga));

         writeln(Arq,'infCpl=');
         writeln(Arq,'infAdFisco=');


         CloseFile(arq);

como neste caso o caminho nao existe eu nao mando a tag UFPer

Link para o comentário
Compartilhar em outros sites

  • Moderadores

6.3 - Mostre respeito pelo modo de escrever. Escreva de modo claro, gramaticalmente e semanticamente correto. Não escreva TUDO EM MAIÚSCULAS. Isso é lido como se estivesse gritando e é considerado rude. Favor leia as regras do fórum.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Fernanda,

Ao ler os dados do seu banco de dados em vez de gerar o arquivo TXT porque já não alimenta o componente com esses dados?

Você esta seguindo um caminho mais demorado e com chances de dar errado.

Que é o que esta acontecendo.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

nao sei como alimentar direto...

Mas veja Italo, existe um recurso para ler o txt , e eu estou usando, nao devia funcionar se estou passando os dados corretamente?

da forma que esta falando terei que desenvolver tudo novamente para gerar um xml... isto que nao estou concordando... entende? por isto pedi a ajuda de voces..

 

Outra coisa nem mesmo o componente gerado dentro do AcbrMfe valida.. entao o que pode ser?

 

 

Juolimar, esta não foi minha intenção. não estou brigando , estou precisando de ajuda.

Juolimar, esta não foi minha intenção. não estou brigando , estou precisando de ajuda

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

  • Consultores

Fernanda,

O método que existe no componente para ler um arquivo TXT foi criado para suprir a necessidade de quem programa em outras linguagens e se utiliza do ACBrMonitor Plus ou do ACBrLibMDFe que é uma DLL.

Neste dois casos se faz necessário criar o arquivo TXT uma vez que esses desenvolvedores não conseguem alimentar o componente diretamente.

Desculpe, mas descordo completamente da forma que você fez, pois o tempo que você perdeu escrevendo essa rotina para gerar o TXT teria simplesmente copiado a rotina que esta pronta no programa exemplo e passado para a sua aplicação e ter feito os ajustes necessários nela.

E até agora não consegui entender como o componente esta lendo esse arquivo TXT que esta fora do padrão, uma vez que as informações não estão separadas por sessões.

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
17 minutos atrás, Fernanda disse:

nao sei como alimentar direto...

mostrei acima que tem no exemplo como preencher basta seguir o exemplo

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Fernanda,

Me mostre só o fragmento de código que lê o arquivo TXT no que se refere a UFPer.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Estou escrevendo a geradao do xml da mdfe. porem ao validar ele apresenta o seguinte problema ao clicar no acbrmdfe_demo.exe e selcionar a opcao Validar.

apresenta este erro

1871 - Element '{http://www.portalfiscal.inf.br/mdfe}MDFe': Missing child element(s). Expected is one of ( {http://www.portalfiscal.inf.br/mdfe}infMDFeSupl, {http://www.w3.org/2000/09/xmldsig#}Signature ).

eu não gerei a assinatura. não tenho como ler o xml para o componente gerar para mim as tag´s?

Se possível aguardo orientação?

 

Anexo o xml

 

 

 

 

mdfe.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

- Carregar um XML

if not ACBrMDFe.Manifestos.LoadFromFile(cPathArqXML) then
  raise Exception.Create('Erro ao carregar o XML');

- Assinando

ACBrMDFe.Manifestos.Assinar;

O seu XML tem que ser um MDFe válido pra o componente conseguir carregar, e não deve ter quebras de linhas, espaçamentos entre as tags, isso pode causar erros.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

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