Ir para conteúdo
  • Cadastre-se

dev botao

Erro com unidade de medida CIOT e-Frete


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

Recommended Posts

Boa tarde pessoal, estou com o seguinte retorno da e-Frete:

ERRO: Sistema e-FRETE (www.efrete.com.br):

[Negócio] (Protocolo: 1.082.783) Erro adicionando viagem: A unidade de medida da mercadoria informada na nota fiscal não é válida.
 Viagem: MDFe


Nota Fiscal: 284882
Série: 1


Viagem.Nota.Fiscal.Unidade.Medida.Mercadoria.Invalida
Estou informando o seguinte na unidade de medida:


<adic:UnidadeDeMedidaDaMercadoria>Kg</adic:UnidadeDeMedidaDaMercadoria>


Ta errado? (editado) 

estou passando isto para o campo:

UnidadeDeMedidaDaMercadoria := umKg;  


O fragmento do XML que adiciona a nota na operação "AdicionarViagem" é este:

<adic:NotasFiscais>
<adic:Numero>284899</adic:Numero>
<adic:Serie>1</adic:Serie>
<adic:Data>2020-05-04</adic:Data>
<adic:ValorTotal>25315.86</adic:ValorTotal>
<adic:ValorDaMercadoriaPorUnidade>22013.7900</adic:ValorDaMercadoriaPorUnidade>
<adic:CodigoNCMNaturezaCarga>1</adic:CodigoNCMNaturezaCarga>
<adic:UnidadeDeMedidaDaMercadoria>Kg</adic:UnidadeDeMedidaDaMercadoria>
<adic:TipoDeCalculo>SemQuebra</adic:TipoDeCalculo>
<adic:ValorDoFretePorUnidadeDeMercadoria>0.0000</adic:ValorDoFretePorUnidadeDeMercadoria>
<adic:QuantidadeDaMercadoriaNoEmbarque>5339.0000</adic:QuantidadeDaMercadoriaNoEmbarque>
</adic:NotasFiscais>

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Anexe o XML completo por favor, isto em homologação tb?

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Atualizando, resposta da e-Frete:
Ali no anexo. O link que me pediram pra olhar é este: https://dev.efrete.com.br/Services/PefService.asmx 
No caso vai aparecer uma lista e a operação é AdicionarViagem.

Daí, no exemplo das criaturas, não tem nenhuma viagem adicionada com NotaFiscal 🤦‍♂️

Bora ignorar as notas.... 🤨

Resposta.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Fernando,

No meu entendimento o webservice deve ter um layout igual para ambos os ambientes (produção/homologação), caso contrario não tem como você atestar que a sua rotina esta correta.

Não faz nenhum sentido você enviar um pedido de adicionar uma viagem para o ambiente de homologação com meia dúzia de informações e para o de produção tem que ter mais de uma dúzia.

Veja isso:

URL de ambiente de homologação: https://dev.efrete.com.br/Services/PefService.asmx?WSDL

Se você procurar pela tag que esta gerando a rejeição temos a seguinte definição:

<s:element name="UnidadeDeMedidaDaMercadoria" type="s1:UnidadeDeMedidaDaMercadoria"/>
<s:simpleType name="UnidadeDeMedidaDaMercadoria">
	<s:restriction base="s:string">
		<s:enumeration value="Indefinido"/>
		<s:enumeration value="Tonelada"/>
		<s:enumeration value="Kg"/>
	</s:restriction>
</s:simpleType>

Note que essa tag aceita os seguintes valores: Indefinido, Tonelada e Kg.

E você informou o valor Kg, portando não existe nenhum erro na geração do XML.

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

Italo, obrigado pela rápida resposta. E concordo com vc em gênero número e grau, mas assim como ocorria antigamente com as mensagens do CEFAZ que era muito ambígua, este pessoal é do mesmo time. O olho clinico do meu chefe sugeriu que pode ser a relação entre eu ter informado que "não tem quebra" e ter mandado um valor "com quebra"  . Sendo assim a mensagem além de confundir, está errada, mas em fim, mudai pra "Integral" e mandei ..... Mesma "M _ _ d a" 😤 

Bom, comentei a parte no fonte onde alimento o ACBrCIOT com as notas, mas me deu o erro de que preciso informar as notas.😩

Verifiquei que ao comentar a parte que inclui as notas o componente nem mesmo adiciona a tag de notas fiscais, mas no exemplo da e-frete aparece assim:

 <Viagem>
   <DocumentoViagem>string</DocumentoViagem>
   <CodigoMunicipioOrigem>int</CodigoMunicipioOrigem>
   <CodigoMunicipioDestino>int</CodigoMunicipioDestino>
   <CepOrigem>string</CepOrigem>
   <CepDestino>string</CepDestino>
   <Valores xsi:nil="true" xmlns="http://schemas.ipc.adm.br/efrete/pef/objects" />
   <TipoPagamento xmlns="http://schemas.ipc.adm.br/efrete/pef/objects">TransferenciaBancaria or eFRETE or Parceiro or Outros</TipoPagamento>
   <InformacoesBancarias xsi:nil="true" xmlns="http://schemas.ipc.adm.br/efrete/pef/objects" />
   <NotasFiscais xsi:nil="true" />
   <NotasFiscais xsi:nil="true" />
</Viagem>

notem que aparece assim : NotasFiscais xsi:nil="true".

Agora não sei mais o que fazer... 

 

Link para o comentário
Compartilhar em outros sites

Agora passei a informar desta maneira.... To tentando de tudo! 

					qryNF.First;             // Aqui coloco todas as notas vinculadas ao
                     while not qryNF.Eof do   // romaneio mais distante.
                     begin
                        with NotasFiscais.New do
                        begin
                           Numero := qryNF.FieldByName('numero').AsString;
                           Serie := qryNF.FieldByName('serie').AsString;
                           Data := qryNF.FieldByName('Emissao').AsDateTime;
                           ValorTotal := qryNF.FieldByName('ValorTotal').AsCurrency;

                           ValorDaMercadoriaPorUnidade := qryNF.FieldByName('ValorProdutos').AsCurrency;// <== verificar com E-FRETE ()
                           CodigoNCMNaturezaCarga := StrToIntDef(qryRomaneio.FieldByName('NCM').AsString,0);
                           DescricaoDaMercadoria := qryItensNF.FieldByName('Referencia').AsString;

                           UnidadeDeMedidaDaMercadoria := umKg;

                           TipoDeCalculo := QuebraIntegral;
                           ValorDoFretePorUnidadeDeMercadoria := qryNF.FieldByName('ValorTotal').AsCurrency / qryRomaneio.FieldByName('peso').AsFloat; //Se tiver quebra deve ser informado

                           QuantidadeDaMercadoriaNoEmbarque := qryRomaneio.FieldByName('peso').AsFloat;

                           ToleranciaDePerdaDeMercadoria.Tipo := tpPorcentagem;
                           ToleranciaDePerdaDeMercadoria.Valor := 5; //Valor da tolerância admitido.

                           DiferencaDeFrete.Tipo := Integral;
                           DiferencaDeFrete.Base := QuantidadeDesembarque;

                           DiferencaDeFrete.Tolerancia.Tipo := tpNenhum;
                           DiferencaDeFrete.Tolerancia.Valor := 0; //Valor da tolerância admitido(Nenhum: 0; Porcentagem: 0.00 – 100.00; Absoluto: Livre)

                           DiferencaDeFrete.MargemGanho.Tipo := tpNenhum;
                           DiferencaDeFrete.MargemGanho.Valor := 0;

                           DiferencaDeFrete.MargemPerda.Tipo := tpNenhum;
                           DiferencaDeFrete.MargemPerda.Valor := 0;
                        end;
                        qryNF.Next;

                     end;

 

Editado por Fernando Massa
Link para o comentário
Compartilhar em outros sites

Gente, mais uma grande inconsistência entre o manual e o que o webservice espera receber:

https://dev.efrete.com.br/Services/PefService.asmx  <== olhando na operação "EncerrarViagem"

Notem que pede um monte de tags a mais com respeito a Viagens.

Por que? porque para TAC Agregado, não é necessário informar viagem para obter ciot mas depois no momento de finalizar SIM, tem que informar as viagens. 

Isso o suporte da e-Frete me falou a 1 min atrás.

portanto, seria o caso de alterar a geração dessas tags caso for tac-agregado.

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Robson Babinski disse:

Boa tarde, conseguiu fazer a homologação e enviar um CIOT ? 

Amigo, consegui fazer os envios dos CIOTs tipo "Padrão" corretamente, do início ao fim.

Mas.... do tipo TAC-Agragado, até envio ele e recebo o numero de CIOT, mas isso é metade do processo, pois TAC-Agregado tem que permitir adicionar viagens "e é isso que não ta funcionando". Também a questão do encerramento, do CIOT. Quando é TAC agregado tem que informar as viagens no encerramento também, pois essa modalidade pode ter encerramentos parciais e até pode ser gerado sem nenhuma viagem e as mesmas serem adicionadas depois.

A parte ruim disso é que no manual não fala nada e só fui descobrir isso quando entrei no link citado acima no outro post onde vi a estrutura que eles pedem para encerramento.

Com tudo isso, no fim o pessoal da e-Frete ta me dando um colher de chá e vão homologar sem o TAC-Agragado, até porque nunca vou usar essa modalidade, mas tive que desenvolver pois é uma exigência da homologação. 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

depende . pois o TAC agregado quando o cara por exemplo trabalhar para uma única transportadora e seu veículo for próprio ele pode fazer diversas viagens  com somente a abertura e dai eles vão carregando o cartão. e no prazo máximo de 30 dias eles fecham esse CIOT e fazem o acerto. o inconveniente é que o cara só pode ter um ciot aberto para aquela empresa e ser exclusivo senão me engano para ela .

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

Bom dia Fernando,

Ao revisar as rotinas que geram o XML dos diversos serviços disponibilizados pelo eFrete notei divergências entre os layouts apresentados no manual (versão 6 se não me falha a memória) e os layouts apresentados pelo SoapUI.

Optei por compatibilizar com o que o SoapUI apresenta, pois acredito que de outra forma o webservice vai recusar.

Ajudaria em muito se o eFrete disponibiliza-se também XMLs de exemplos e um manual mais coerente.

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

4 minutos atrás, Italo Jurisato Junior disse:

Bom dia Fernando,

Ao revisar as rotinas que geram o XML dos diversos serviços disponibilizados pelo eFrete notei divergências entre os layouts apresentados no manual (versão 6 se não me falha a memória) e os layouts apresentados pelo SoapUI.

Optei por compatibilizar com o que o SoapUI apresenta, pois acredito que de outra forma o webservice vai recusar.

Ajudaria em muito se o eFrete disponibiliza-se também XMLs de exemplos e um manual mais coerente.

Bom dia, pois é Italo, e se o suporte deles ajudasse também pelo menos analisando os XMLs gerados. Eles simplesmente não dão suporte algum, você precisa se virar pra tentar achar os problemas analisando as regras de validação através do WSDL porque no manual não tem as regras descritas e nenhum exemplo de como devem ser enviadas as requisições.

Até hoje estou com problemas no envio e não consegui resolver, pois dá um erro de comunicação ao enviar o CIOT. Algum campo do XML está com problema e não consigo identificar qual é.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
24 minutos atrás, Robson Babinski disse:

Bom dia, pois é Italo, e se o suporte deles ajudasse também pelo menos analisando os XMLs gerados. Eles simplesmente não dão suporte algum, você precisa se virar pra tentar achar os problemas analisando as regras de validação através do WSDL porque no manual não tem as regras descritas e nenhum exemplo de como devem ser enviadas as requisições.

Até hoje estou com problemas no envio e não consegui resolver, pois dá um erro de comunicação ao enviar o CIOT. Algum campo do XML está com problema e não consigo identificar qual é.

até tu já não tem um tópico só seu?

creio que é bom continuar nele ou fechamos o mesmo e tu continua por aqui

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

40 minutos atrás, Italo Jurisato Junior disse:

Bom dia Fernando,

Ao revisar as rotinas que geram o XML dos diversos serviços disponibilizados pelo eFrete notei divergências entre os layouts apresentados no manual (versão 6 se não me falha a memória) e os layouts apresentados pelo SoapUI.

Optei por compatibilizar com o que o SoapUI apresenta, pois acredito que de outra forma o webservice vai recusar.

Ajudaria em muito se o eFrete disponibiliza-se também XMLs de exemplos e um manual mais coerente.

Oi Italo. Realmente isso foi meio que uma dor de cabeça por mais de um mês. Me ajudou muito o exemplo do CIOT aqui do acbr 👍.  Só tem que saber onde colocar os "While" nos casos de pagamento e Notas, em fim meio que obvio, mas alguém sem experiência pode achar que o exemplo ta como deve de ser, quando na real é só um esboço com um exemplo mega simples. 

Sobre a adequação que vc pretende fazer, só gostaria de fazer uma observação: No Encerramento, só se for TAC agregado que vai as viagens, caso contrário não precisa. Daí internamente poderia colocar essa verificação para não exigir sempre a questão de informar a viagem. 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Como o nome diz mesmo é um exemplo e não um código pronto igual muitos fazem, pegam os exemplos e anexam as telas nos sistemas deles e acham que vai funcionar certinho e digo isso dos demais componentes

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

6 horas atrás, Fernando Massa disse:

Oi Italo. Realmente isso foi meio que uma dor de cabeça por mais de um mês. Me ajudou muito o exemplo do CIOT aqui do acbr 👍.  Só tem que saber onde colocar os "While" nos casos de pagamento e Notas, em fim meio que obvio, mas alguém sem experiência pode achar que o exemplo ta como deve de ser, quando na real é só um esboço com um exemplo mega simples. 

Sobre a adequação que vc pretende fazer, só gostaria de fazer uma observação: No Encerramento, só se for TAC agregado que vai as viagens, caso contrário não precisa. Daí internamente poderia colocar essa verificação para não exigir sempre a questão de informar a viagem. 

Fernando era isso mesmo, agora o WebService começou a validar as regras. Pedi a eles que adicionassem isso as regras ou que colocassem no manual, para que quem for fazer a integração não fique perdido tentando identificar o problema.

Agora a mensagem de retorno do WebService é essa em anexo. Entrei em contato com o suporte deles agora para verificar, porque não é uma regra de negócio.

Obrigado mesmo pela ajuda Fernando!

 

erro ciot.png

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

  • 4 semanas depois ...
Em 19/06/2020 at 14:32, Fernando Massa disse:

Boa tarde pessoal, estou com o seguinte retorno da e-Frete:

ERRO: Sistema e-FRETE (www.efrete.com.br):

[Negócio] (Protocolo: 1.082.783) Erro adicionando viagem: A unidade de medida da mercadoria informada na nota fiscal não é válida.
 Viagem: MDFe


Nota Fiscal: 284882
Série: 1


Viagem.Nota.Fiscal.Unidade.Medida.Mercadoria.Invalida
Estou informando o seguinte na unidade de medida:


<adic:UnidadeDeMedidaDaMercadoria>Kg</adic:UnidadeDeMedidaDaMercadoria>


Ta errado? (editado) 

estou passando isto para o campo:

UnidadeDeMedidaDaMercadoria := umKg;  


O fragmento do XML que adiciona a nota na operação "AdicionarViagem" é este:


<adic:NotasFiscais>
<adic:Numero>284899</adic:Numero>
<adic:Serie>1</adic:Serie>
<adic:Data>2020-05-04</adic:Data>
<adic:ValorTotal>25315.86</adic:ValorTotal>
<adic:ValorDaMercadoriaPorUnidade>22013.7900</adic:ValorDaMercadoriaPorUnidade>
<adic:CodigoNCMNaturezaCarga>1</adic:CodigoNCMNaturezaCarga>
<adic:UnidadeDeMedidaDaMercadoria>Kg</adic:UnidadeDeMedidaDaMercadoria>
<adic:TipoDeCalculo>SemQuebra</adic:TipoDeCalculo>
<adic:ValorDoFretePorUnidadeDeMercadoria>0.0000</adic:ValorDoFretePorUnidadeDeMercadoria>
<adic:QuantidadeDaMercadoriaNoEmbarque>5339.0000</adic:QuantidadeDaMercadoriaNoEmbarque>
</adic:NotasFiscais>

 

Olá,

Também tive este problema e após muitos chamados e e-mails com imagens para o suporte do e-Frete consegui resolver.

O pessoal do e-Frete chegou a me retornar imagens(desenharam) para explicar o problema e ai consegui compreender que o erro era no prefixo do namespace que somente no envio da viagem de agregado é "obj" e não "adic". Isto acontece em duas tags: UnidadeDeMedidaDaMercadoria e TipoDeCalculo.

Então no arquivo pcnCIOTW_eFrete.pas eu modifiquei as seguintes linhas na procedure TCIOTW_eFrete.GerarViagemAdicViagem:

                  Gerador.Prefixo := 'obj:';
                  Gerador.wCampoNFSe(tcStr, 'AP46', 'UnidadeDeMedidaDaMercadoria       ', 01, 01, 1, TpUnMedMercToStr(UnidadeDeMedidaDaMercadoria));
                  Gerador.wCampoNFSe(tcStr, 'AP47', 'TipoDeCalculo                     ', 01, 01, 1, TpVgTipoCalculoToStr(TipoDeCalculo));
                  Gerador.Prefixo := 'adic:';
                  Gerador.wCampoNFSe(tcDe4, 'AP48',..... etc.... etc...

É só nesta procedure. Não mexi nas outras quanto a este dois campos. 

Coloquei o arquivo em anexo.

Também fiz uma alteração grotesca em TCIOTW_eFrete.GerarPagamentosAdicPagamento para conseguir coloca em produção porque não tinha jeito de alimentar os pagamentos.

Grato.

 

pcnCIOTW_eFrete.pas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Marcio,

Muito obrigado pela contribuição, já inclui na minha lista de tarefas, assim que possível vou analisar e estando tudo OK, vou enviar para o repositório.

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

Boa tarde Marcio,

Não compreendi o que você fez em GerarPagamentosAdicPagamento, não me parece correto.

Só vou poder aceita a alteração de prefixo que você fez em GerarViagemAdicViagem.

Ainda hoje vou enviar para o repositório.

Outra coisa, os seus fontes estão desatualizados.

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

18 horas atrás, Italo Jurisato Junior disse:

Boa tarde Marcio,

Não compreendi o que você fez em GerarPagamentosAdicPagamento, não me parece correto.

Só vou poder aceita a alteração de prefixo que você fez em GerarViagemAdicViagem.

Ainda hoje vou enviar para o repositório.

Outra coisa, os seus fontes estão desatualizados.

Bom dia,

O método GerarPagamentosAdicPagamento não esta correto. Fiz desta forma porque não conseguia alimentar o componente da maneira correta.
Vou atualizar os fontes e testar.

Obrigado.
 

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

Em 22/07/2020 at 16:14, Italo Jurisato Junior disse:

Boa tarde Marcio,

Não compreendi o que você fez em GerarPagamentosAdicPagamento, não me parece correto.

Só vou poder aceita a alteração de prefixo que você fez em GerarViagemAdicViagem.

Ainda hoje vou enviar para o repositório.

Outra coisa, os seus fontes estão desatualizados.

Tudo funcionando!

Atualizei os fontes, fiz os ajustes no programa, coloquei em homologação, testei todas as operações e tudo funcionou corretamente.

Obrigado.

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

  • Administradores

Obrigado por reportar.

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

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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á 1344 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.