public override void Execute() { int emp = Empresas.FindEmpresaByThread(); //Definir o serviço que será executado para a classe Servico = Servicos.MDFePedidoSituacaoLote; try { #region Parte do código que envia o XML de pedido de consulta do recibo dadosPedRec = new DadosPedRecClass(); PedRec(emp, NomeArquivoXML); //Definir o objeto do WebService WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis); //Criar objetos das classes dos serviços dos webservices do SEFAZ var oRepRecepcao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);//NomeClasseWS(Servico, dadosPedRec.cUF)); var oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedRec.cUF, Servico)); //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.cUF.ToString(), dadosPedRec.cUF.ToString()); wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.versaoDados.ToString(), NFe.ConvertTxt.versoes.VersaoXMLMDFePedRec); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.Invocar(wsProxy, oRepRecepcao, wsProxy.NomeMetodoWS[0],//NomeMetodoWS(Servico, dadosPedRec.cUF), oCabecMsg, this); #endregion #region Parte do código que trata o XML de retorno da consulta do recibo //Efetuar a leituras das notas do lote para ver se foi autorizada ou não LerRetornoLoteMDFe(); //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo //Wandrey 18/06/2009 oGerarXML.XmlRetorno(Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_XML, vStrXmlRetorno); #endregion } catch (Exception ex) { try { TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010 } } finally { //Deletar o arquivo de solicitação do serviço Functions.DeletarArquivo(NomeArquivoXML); } }
public void Execute(int emp) { try { #region Parte do código que envia o XML de pedido de consulta do recibo dadosPedRec = new DadosPedRecClass(); PedRec(emp); //Definir o objeto do WebService WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, 0); System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, Servico); //Criar objetos das classes dos serviços dos webservices do SEFAZ var oRepRecepcao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS); var oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedRec.cUF, Servico, dadosPedRec.tpEmis)); //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedRec.cUF.ToString()); wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedRec.versao); //Invocar o método que envia o XML para o SEFAZ oInvocarObj.Invocar(wsProxy, oRepRecepcao, wsProxy.NomeMetodoWS[0], oCabecMsg, this, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, false, securityProtocolType); #endregion Parte do código que envia o XML de pedido de consulta do recibo #region Parte do código que trata o XML de retorno da consulta do recibo //Efetuar a leituras das notas do lote para ver se foi autorizada ou não LerRetornoLoteCTe(emp); //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo //Wandrey 18/06/2009 oGerarXML.XmlRetorno(Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, vStrXmlRetorno); #endregion Parte do código que trata o XML de retorno da consulta do recibo } catch (Exception ex) { try { TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.ExtRetorno.ProRec_ERR, ex); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010 } } finally { //Deletar o arquivo de solicitação do serviço Functions.DeletarArquivo(NomeArquivoXML); } }