Ir para conteúdo
  • Cadastre-se

dev botao

CTe - OS | Rejeição: IE deve ser informada para tomador Contribuinte


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

Recommended Posts

Postado (editado)

Linguagem - C#

CTe - OS | Rejeição: IE deve ser informada para tomador Contribuinte

IE está sendo alimentada na classe, está retornando certo no arquivo INI, porém está retornando rejeição de que a mesma deve ser preenchida ao enviar o mesmo.

No Delphi a mesma nota, com as mesmas informações é emitida normalmente, por isso acredito que não seja nada na SEFAZ.

Está sendo emitido em ambiente 3.0.

Observando o XML gerado após os comandos Assinar() e Validar(), a classe toma4 não está sendo alimentada.

42230717089484000190670020000000141448349226-cte.xml CT-eOS - ObterIni().txt CT-eOS - Classe CTe.txt

Editado por Lindomar S. Menezes
  • Consultores
Postado

Bom dia Lindomar,

No XML que você anexou foi informado que o tipo de serviço é 6 - Transporte de Pessoas (Fretamento) e não consta o grupo toma (tomador).

Segundo o manual que contem o layout do CT-e / CT-e OS versão 3.00 diz que o grupo toma é opcional quando o tipo de serviço for Excesso de Bagagem.

Isso deve explicar a rejeição.

  • Curtir 1
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
57 minutos atrás, Italo Giurizzato Junior disse:

Bom dia Lindomar,

No XML que você anexou foi informado que o tipo de serviço é 6 - Transporte de Pessoas (Fretamento) e não consta o grupo toma (tomador).

Segundo o manual que contem o layout do CT-e / CT-e OS versão 3.00 diz que o grupo toma é opcional quando o tipo de serviço for Excesso de Bagagem.

Isso deve explicar a rejeição.

O grupo toma a ser alimentado quando o tipo do serviço for "6 - Transporte de pessoas", no CT-e OS do C# é a classe Tomador4, correto?

Postado

Caso sim, debugando até o momento em que eu Carrego a minha classe CT-e com os dados alimentados, o toma4 está lá preenchido normalmente.

image.png.513167a8a0bbd14e97362dc4ae8ce7eb.png

Utilizando o comando ObterIni(0) após utilizar o comando CarregarINI(), o toma4 também está preenchido, mas visualizando o XML gerado após o Assinar() e o Validar(), o toma4 não está presente no xml.

Obs: tipo do serviço é "6 - Transporte de pessoas"

  • Consultores
Postado

Boa tarde Lindomar,

Pela sua imagem noto que você passou as informações do Tomador4.

Lembre-se que devemos alimentar esses campos quando o tomador do serviço não for o Remetente (0), Expedidor (1), Recebedor (2) ou Destinatário (3).

Neste caso se o tomador não nenhum dos 4 listados acima então é Outros (4).

Notei que o campo Toma do Tomador4 esta com o valor zero, isso faz com que o componente entenda que o tomador é o Remetente da carga, logo não se faz necessário alimentar os dados do Tomador4.

Repito, só alimentados o Tomador4 (não esqueça: Toma = 4) quando o tomador não é o Remetente, Expedidor, Recebedor e nem o Destinatário.

  • Curtir 2
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
22 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Lindomar,

Pela sua imagem noto que você passou as informações do Tomador4.

Lembre-se que devemos alimentar esses campos quando o tomador do serviço não for o Remetente (0), Expedidor (1), Recebedor (2) ou Destinatário (3).

Neste caso se o tomador não nenhum dos 4 listados acima então é Outros (4).

Notei que o campo Toma do Tomador4 esta com o valor zero, isso faz com que o componente entenda que o tomador é o Remetente da carga, logo não se faz necessário alimentar os dados do Tomador4.

Repito, só alimentados o Tomador4 (não esqueça: Toma = 4) quando o tomador não é o Remetente, Expedidor, Recebedor e nem o Destinatário.

Perdão pela minha falta de atenção Italo, realmente eu não tinha reparado nisso, nesse caso em qual classe devemos alimentar o Tomador do CTe-OS?
Pelo que verifiquei aqui, a única classe referente ao tomador, é a Tomador4, e no nosso código no Delphi temos as duas classes presentes, a toma e a toma4, e para essa ocasião a classe toma é alimentada.

Verifiquei no svn, a classe toma que contém os mesmos dados, foi removido na rev 29893. Sendo assim acredito eu que não tenha nenhuma outra classe para ser alimentada. Poderia confirmar se está correto isso?

image.thumb.png.058e39d18730bba0bc2074c48136aadf.png

  • Consultores
Postado

Boa tarde Lindomar,

No CT-e temos o Remetente, Expedidor, Recebedor e o Destinatário, que podem ser o tomador do serviço.

Se não for nenhum deles temos o tal do toma4 que seria um outro tomador, que chamamos de Outro.

Se você olhar o manual do CT-e versão 3.00 - página 9 temos o grupo toma4 que contem diversas informações do tomador.

Lembrando que essas informações só devemos preencher quando o tomador não for o Remetente, Expedidor, Recebedor e nem o Destinatário.

Já no CT-e OS não temos o Remetente, Expedidor, Recebedor e nem o Destinatário, e sim um grupo chamado toma (vide o mesmo manual página 54).

No caso de Delphi temos as classes rem, exped, receb e dest, bem como ide.toma03 e ide.toma04 essas classes são usadas pelo CT-e

Para o CT-e temos a classe toma

Para o GTV-e a classe ide.toma4 é usada para informar os dados do tomaTerceiro.

Agora com relação Lib não sei se todas essas classes estão acessíveis.

 

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

  • Solution
Postado (editado)
  • Solução
    Criado classe TomadorCTeOS.cs com os dados do tomador para preenchimento.
    TomadorCTeOS.cs

 

  • Alterações na classe CTe.cs

Leitura e gravação da classe no método ReadFromIni e WriteToIni.

iniData.ReadFromIni(Tomador, "toma");
iniData.WriteToIni(Tomador, "toma");

Criação da classe tomador no construtor

Tomador = new TomadorCTeOS();

Declaração da propriedade Tomador nas properties

public TomadorCTeOS Tomador { get; }

 

CT-e OS emitido com sucesso com essas alterações acima.

image.png.267487e655d236e67968b204bf827631.png

Editado por Lindomar S. Menezes
  • Consultores
Postado

Boa tarde!

Muito obrigado pela contribuição!

Criada #TK-4293 para análise e posterior inclusão no SVN.

 

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

  • 2 semanas depois ...
  • Consultores
Postado

Bom dia!

Contribuição enviada ao SVN na Rev-30292

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

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