Ir para conteúdo
  • Cadastre-se

dev botao

mdfe com origem e destino na mesma UF


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

Recommended Posts

Postado

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

  • Consultores
  • Solution
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

mas se eu for no meu arquivo e retirar o campo UFPER  E fazer o envio ele me retorna erro de validacao  dizendo que UFper nenhum valor informado e nao segue . como faço neste caso?

Postado

MESMO SE entrar no acbr e gerar um documento de teste e tentar o proprio xml gerado no modelo ele apresenta erro de validacao por falta de UFper nao informado. Preciso de ajuda para fazer a liberacao deste manifesto.

  • Moderadores
Postado
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_Transparent-02.png
 

 

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

mas eu estou conseguindo enviar mdfe para fora do estado normalmente com o percurso. tem algum modelo do Txt para que eu possa colocar o padrao nele e poder enviar? pois ja compatibilizei toda a plataforma usando -o.

 

 

Postado

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

  • Moderadores
Postado

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_Transparent-02.png
 

 

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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
  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo achei o erro. mesmo nao enviando no txt o UFPer ao fazer a leitura do txt. ele monta a tag mesmo que vazia do Infpercurso. o que apresenta erro na validacao.

 

  • Moderadores
Postado

Também queria saber como esse TXT fora do padrão gerou um XML... o componente não devia ser capaz de ler esse arquivo direto.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

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

  • Moderadores
Postado

- 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

 

 

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