Comments (8)
Eu consegui emitir CTE usando ServicoCTeRecepcao().CTeRecepcaoSincronoV4, segui exemplo do app.teste
Mas estou tendo problemas ao utilizar outras funções, como cancelamento, consulta protocolo e consulto status. Mas não deve ter relação com esta issue, vou estudar mais esse erro e talvez eu abra outra issue.
from dfe.net.
Estou tendo o seguinte erro ao chamar o método EnviarAsync utilizando Zeus.Net.CTe na versão 2024.1.26.1413:
The 'versao' attribute is invalid - The value '4.00' is invalid according to its datatype 'http://www.portalfiscal.inf.br/cte:TVerCTe' - The Pattern constraint failed.
Que método é "EnviarAsync()" referencia no código, por favor.
Ao analisar o código eu estranhei o fato do método validaSchema de enviCte, estar utilizando o schema enviCTe_v3.00.xsd mesmo na versão 4.0.
Também achei estranho estar sendo feita uma consulta onde chama o validaSchema de consReciCTe já que o schema consReciCTe também não existe na versão 4.0
Uso o CTe 4.0 a tempos aqui em produção, por favor refencia no código aqui onde você notou as inconsistências
from dfe.net.
namespace CTe.Servicos.EnviarCte
{
public class ServicoEnviarCte
{
public RetornoEnviarCte Enviar(int lote, Classes.CTe cte, ConfiguracaoServico configuracaoServico = null)
{
var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia;
ServicoCTeRecepcao servicoRecepcao = new ServicoCTeRecepcao();
retEnviCte retEnviCte = servicoRecepcao.CTeRecepcao(lote, new List<Classes.CTe> {cte}, configServico);
if (retEnviCte.cStat != 103)
{
return new RetornoEnviarCte(retEnviCte, null, null);
}
ConsultaReciboServico servicoConsultaRecibo = new ConsultaReciboServico(retEnviCte.infRec.nRec);
retConsReciCTe retConsReciCTe = servicoConsultaRecibo.Consultar(configServico);
cteProc cteProc = null;
if (retConsReciCTe.cStat == 104)
{
if (retConsReciCTe.protCTe[0].infProt.cStat != 100)
{
return new RetornoEnviarCte(retEnviCte, retConsReciCTe, null);
}
cteProc = new cteProc
{
CTe = cte,
versao = configServico.VersaoLayout,
protCTe = retConsReciCTe.protCTe[0]
};
}
cteProc.SalvarXmlEmDisco(configServico);
return new RetornoEnviarCte(retEnviCte, retConsReciCTe, cteProc);
}
public async Task<RetornoEnviarCte> EnviarAsync(int lote, Classes.CTe cte, ConfiguracaoServico configuracaoServico = null)
{
var configServico = configuracaoServico ?? ConfiguracaoServico.Instancia;
ServicoCTeRecepcao servicoRecepcao = new ServicoCTeRecepcao();
retEnviCte retEnviCte = await servicoRecepcao.CTeRecepcaoAsync(lote, new List<Classes.CTe> { cte }, configServico);
if (retEnviCte.cStat != 103)
{
return new RetornoEnviarCte(retEnviCte, null, null);
}
ConsultaReciboServico servicoConsultaRecibo = new ConsultaReciboServico(retEnviCte.infRec.nRec);
retConsReciCTe retConsReciCTe = await servicoConsultaRecibo.ConsultarAsync(configServico);
cteProc cteProc = null;
if (retConsReciCTe.cStat == 104)
{
if (retConsReciCTe.protCTe[0].infProt.cStat != 100)
{
return new RetornoEnviarCte(retEnviCte, retConsReciCTe, null);
}
cteProc = new cteProc
{
CTe = cte,
versao = configServico.VersaoLayout,
protCTe = retConsReciCTe.protCTe[0]
};
}
cteProc.SalvarXmlEmDisco(configServico);
return new RetornoEnviarCte(retEnviCte, retConsReciCTe, cteProc);
}
}
}
from dfe.net.
Eu estou tentando chamar diretamente ServicoCTeRecepcao().CTeRecepcaoSincronoV4, ao invés de usar este enviarAsync
from dfe.net.
Esta parecendo erro de schema antigo... que valida se versão ta 3.0! tenta desabilitar a validação de esquema para ver se funciona, lembrando que os schemas não estão adicionados no nuget ou codigo fonte do zeus.
from dfe.net.
Então Danilo, dentro da chamada do servicoRecepcao.CTeRecepcaoAsync ele chamada enviCte.ValidaSchema, e ali dentro ele usa um schema da 3.0 que não existe na 4.0, acredito que esse seja o motivo do meu erro, de fato se eu colocar isValidaSchema pra false, deve passar dai, mas eu reparei que é feita uma chamada pra servicoConsultaRecibo.ConsultarAsync, onde dentro dela é feito consReciCTe.ValidarSchema, e dentro dessa validação o switch case me jogaria pra uma exception, e essse cara não está em um if de isValidaSchema
public async Task CTeRecepcaoAsync(int lote, List cteEletronicosList, ConfiguracaoServico configuracaoServico = null)
{
var enviCte = PreparaEnvioCTe(lote, cteEletronicosList, configuracaoServico);
var webService = WsdlFactory.CriaWsdlCteRecepcao(configuracaoServico);
OnAntesDeEnviar(enviCte);
var retornoXml = await webService.cteRecepcaoLoteAsync(enviCte.CriaRequestWs(configuracaoServico));
var retorno = retEnviCte.LoadXml(retornoXml.OuterXml, enviCte);
retorno.SalvarXmlEmDisco(configuracaoServico);
return retorno;
}
private static enviCTe PreparaEnvioCTe(int lote, List<CTeEletronico> cteEletronicosList, ConfiguracaoServico configuracaoServico = null)
{
var instanciaConfiguracao = configuracaoServico ?? ConfiguracaoServico.Instancia;
var enviCte = ClassesFactory.CriaEnviCTe(lote, cteEletronicosList, instanciaConfiguracao);
if (instanciaConfiguracao.tpAmb == TipoAmbiente.Homologacao)
{
foreach (var cte in enviCte.CTe)
{
const string razaoSocial = "CT-E EMITIDO EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";
cte.infCte.rem.xNome = razaoSocial;
cte.infCte.dest.xNome = razaoSocial;
}
}
foreach (var cte in enviCte.CTe)
{
cte.infCte.ide.tpEmis = instanciaConfiguracao.TipoEmissao;
cte.Assina(instanciaConfiguracao);
cte.infCTeSupl = cte.QrCode(instanciaConfiguracao.X509Certificate2, Encoding.UTF8, instanciaConfiguracao.IsAdicionaQrCode, UrlHelper.ObterUrlQrCode(instanciaConfiguracao));
if (configuracaoServico.IsValidaSchemas)
cte.ValidaSchema(instanciaConfiguracao);
cte.SalvarXmlEmDisco(instanciaConfiguracao);
}
if (configuracaoServico.IsValidaSchemas)
enviCte.ValidaSchema(instanciaConfiguracao);
enviCte.SalvarXmlEmDisco(instanciaConfiguracao);
return enviCte;
}
from dfe.net.
Eu utilizei "ServicoCTeRecepcao().CTeRecepcaoSincronoV4" diretamente e parece estar funcionando. Pelo que entendi agora não é mais assíncrona a chamada para o sefaz, então talvez o método "ServicoEnviarCte().EnviarAsync" perdeu sua utilidade.
from dfe.net.
Sim, o CTe não permite mais envio assincrono.
Eu não tive tempo de parar e ver seu caso ainda, talvez consiga no final de semana, mas então vou para alguns fatos:
- CT-e só síncrono**.
- Uso em produção aqui.
from dfe.net.
Related Issues (20)
- Fala galera! Estou com essa reposta de erro aqui e não estou conseguindo resolver. Alguem pode me ajudar ?A conexao subjacente estava fechada. Erro inesperado em um envio. Estou usando c# no Visual Studio 2015. HOT 1
- Simples Nacional com CST 61 HOT 2
- Internal Server Error CTe 4.0 HOT 4
- Não existe a propriedade CRT no CT-e OS HOT 1
- Acessar valor do ICMS ST do item para impressão no danfe fast report HOT 3
- Datas de Notas Técnicas (próxima 01/04/2024 PRODUÇÃO) HOT 1
- Geração de NFS-e padrão nacional HOT 1
- Alteracao do endereco do qrcode rio de janeiro HOT 2
- nProt ao consultar NFe autorizada não vem preenchida HOT 2
- Impressão Danfe NF-e com tag rastro HOT 2
- Eventos NFe - Erro Desserialização HOT 2
- DECLARAÇÃO DOS MANTENEDORES A COMUNIDADE "ZEUS" HOT 1
- Tag Id em infNFe com problemas HOT 1
- Csosn400 HOT 1
- Retorno cancelamento e carta correcao HOT 1
- GetTotal HOT 1
- MDF-e Recepção Sincrona NT2024.001 HOT 3
- Erro no FastReport ao tentar visualizar MDFe HOT 2
- Desoneracao ST ICMSGeral HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dfe.net.