private void btnBuscaRetorno_Click(object sender, EventArgs e) { frmStatusEnvioNfs objfrmStatus = null; try { if (belPesq.lResultPesquisa != null) { List<belPesquisaNotas> objSelecionadas = belPesq.lResultPesquisa.Where(c => c.bSeleciona).ToList<belPesquisaNotas>(); List<belPesquisaNotas> objSelect = objSelecionadas.Where(c => c.bDenegada == false && c.bCancelado == false).ToList<belPesquisaNotas>(); if (objSelect.Count() == 0) { KryptonMessageBox.Show("Nenhuma nota Válida foi Selecionada", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (objSelect.Count == 1) { if (Acesso.tipoWsNfse == Acesso.TP_WS_NFSE.DSF) { belPesquisaNotas objPesquisa = new belPesquisaNotas(objSelect.FirstOrDefault().sRECIBO_NF); bsNotas.DataSource = objPesquisa.lResultPesquisa; belCarregaDadosRPS objCarregarNotasLote = new belCarregaDadosRPS(objPesquisa.lResultPesquisa, objPesquisa.lResultPesquisa.FirstOrDefault().sRECIBO_NF); belEnviarNFSeWS objEnvio = new belEnviarNFSeWS(objCarregarNotasLote); string sNumeroLote = objCarregarNotasLote.objLoteEnvio.cabec.NumeroLote.ToString(); KryptonMessageBox.Show(objEnvio.BuscaRetorno(sNumeroLote), Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information); PesquisaNotas(); } else { belPrestador objbelPrestador = new belPrestador(); belRecepcao objBelRecepcao = new belRecepcao(); objBelRecepcao.Protocolo = objBelRecepcao.BuscaNumProtocolo(objSelect[0].sCD_NFSEQ); objfrmStatus = new frmStatusEnvioNfs(); objfrmStatus.Show(); objfrmStatus.Refresh(); string sMsgErro = objBelRecepcao.BuscaRetorno(objbelPrestador.RettcIdentificacaoPrestador(objSelect[0].sCD_NFSEQ), objfrmStatus.lblMsg, objfrmStatus.progressBarStatus); if (objBelRecepcao.sCodigoRetorno.Equals("E4")) { objfrmStatus.Close(); KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine + Environment.NewLine + "IMPORTANTE: Tente Buscar Retorno da NFs-e, pois o serviço do WebService está demorando para responder. ", Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (objBelRecepcao.objListaNfseRetorno.Count > 0) { objfrmStatus.lblMsg.Text = "Alterando Status da Nota..."; objfrmStatus.lblMsg.Refresh(); objBelRecepcao.AlteraStatusDaNota(objBelRecepcao.objListaNfseRetorno); objfrmStatus.Close(); objBelRecepcao.VerificaNotasParaCancelar(objBelRecepcao.objListaNfseRetorno); KryptonMessageBox.Show(null, objBelRecepcao.MontaMsgDeRetornoParaCliente(), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); //EnviaEmail(objBelRecepcao.objListaNfseRetorno); } else { objBelRecepcao.LimpaRecibo(); objfrmStatus.Close(); KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine, Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); } PesquisaNotas(); VerificaGeneratorLote(); } } else { KryptonMessageBox.Show("Selecione apenas uma Nota para consultar o lote", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information); PesquisaNotas(); } } } catch (Exception ex) { if (objfrmStatus != null) { objfrmStatus.Close(); } VerificaGeneratorLote(); new HLPexception(ex); } }
private void btnEnvio_Click(object sender, EventArgs e) { frmStatusEnvioNfs objfrmStatus = null; try { if (belPesq.lResultPesquisa != null) { List<belPesquisaNotas> objSelecionadas = belPesq.lResultPesquisa.Where(c => c.bSeleciona).ToList<belPesquisaNotas>(); List<belPesquisaNotas> objSelect = objSelecionadas.Where(c => c.bEnviado == false && c.bDenegada == false && c.bCancelado == false).ToList<belPesquisaNotas>(); if (Acesso.tipoWsNfse == Acesso.TP_WS_NFSE.SUSESU && objSelect.Count > 1) { throw new Exception("Para Enviar, só é permitido selecionar uma Nota por vez!"); } if (objSelect.Count() > 0) { if (objSelect.Where(C => C.sRECIBO_NF != "").Count() > 0) { foreach (belPesquisaNotas nota in objSelect.Where(C => C.sRECIBO_NF != "")) { throw new Exception("A Nota de Sequência " + nota.sCD_NFSEQ + " Já tem um retorno Salvo no Banco de Dados, tente Buscar Retorno"); } } if (objSelect.Where(c => c.sCD_NOTAFIS == "").Count() > 0) { HLP.GeraXml.bel.NFe.Estrutura.belNumeroNF objbelNumeracao = new HLP.GeraXml.bel.NFe.Estrutura.belNumeroNF(objSelect.Where(c => c.sCD_NOTAFIS == "").ToList()); frmGeraNumeracaoNFe objfrmGeraNumeracao = new frmGeraNumeracaoNFe(objbelNumeracao, true); objfrmGeraNumeracao.ShowDialog(); } if (Acesso.tipoWsNfse == Acesso.TP_WS_NFSE.DSF) { belCarregaDadosRPS objCarregaDados = new belCarregaDadosRPS(objSelect); frmVisualizaNfsDSF objfrm = new frmVisualizaNfsDSF(objCarregaDados.objLoteEnvio); objfrm.ShowDialog(); if (objfrm.Cancelado) { throw new Exception("Envio da(s) Nota(s) de serviço foi Cancelado."); } objCarregaDados.CriarXml(); belEnviarNFSeWS objEnvio = new belEnviarNFSeWS(objCarregaDados); KryptonMessageBox.Show(objEnvio.Enviar(), Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (Acesso.tipoWsNfse == Acesso.TP_WS_NFSE.SUSESU) // arrumar o retorno das TELAS... { if (objSelect.Count > 1) { throw new Exception("Só é permitido selecionar uma Nota por vez!"); } bel.NFes.Susesu.belNFesSusesu objNFes = new bel.NFes.Susesu.belNFesSusesu(objSelect.FirstOrDefault()); Susesu.frmVisualizaNfsSusesu objFrmVisualizaSusesu = new Susesu.frmVisualizaNfsSusesu(objNFes); objFrmVisualizaSusesu.ShowDialog(); if (!objFrmVisualizaSusesu.Cancelado) { objNFes.TransmiteRPS(); } } else { bool isCancelado = false; belLoteRps objbelLoteRps = new belLoteRps(); tcLoteRps objLoteRps = objbelLoteRps.BuscaDadosNFes(objSelect); frmVisualizaNfs objFrmVisualiza = new frmVisualizaNfs(objLoteRps); objFrmVisualiza.ShowDialog(); isCancelado = objFrmVisualiza.Cancelado; if (isCancelado) { throw new Exception("Envio da(s) Nota(s) Cancelado"); } objfrmStatus = new frmStatusEnvioNfs(); objfrmStatus.Show(); objfrmStatus.lblMsg.Text = "Montando Xml..."; objfrmStatus.lblMsg.Refresh(); objfrmStatus.Refresh(); belCriaXmlNFs objbelCriaXmlNFs = new belCriaXmlNFs(); if (Acesso.tipoWsNfse == Acesso.TP_WS_NFSE.GINFES) { objbelCriaXmlNFs.GerarArquivoXml(objFrmVisualiza.objLoteRpsAlter); } else { objbelCriaXmlNFs.GerarArquivoXml2(objFrmVisualiza.objLoteRpsAlter); } objfrmStatus.lblMsg.Text = "Enviando Lote para o Webservice..."; objfrmStatus.lblMsg.Refresh(); belRecepcao objBelRecepcao = new belRecepcao(objbelCriaXmlNFs.sXmlLote, objFrmVisualiza.objLoteRpsAlter); if (objBelRecepcao.sMsgTransmissao != "") { throw new Exception(objBelRecepcao.sMsgTransmissao); } objfrmStatus.lblMsg.Text = "Gravando recibo na base de dados..."; objfrmStatus.lblMsg.Refresh(); objBelRecepcao.GravaRecibo(objBelRecepcao.Protocolo, objFrmVisualiza.objLoteRpsAlter); objfrmStatus.Close(); KryptonMessageBox.Show(null, "Lote enviado com sucesso, aguarde aproximadamente 6 min. para buscar o Retorno.", Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); //string sMsgErro = objBelRecepcao.BuscaRetorno(objFrmVisualiza.objLoteRpsAlter.Rps[0].InfRps.Prestador, objfrmStatus.lblMsg, objfrmStatus.progressBarStatus); //if (objBelRecepcao.sCodigoRetorno.Equals("E4")) //{ // objfrmStatus.Close(); // KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine + Environment.NewLine + "IMPORTANTE: Tente Buscar Retorno da NFs-e, pois o serviço do WebService está demorando para responder. ", Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); //} //else if (objBelRecepcao.objListaNfseRetorno.Count > 0) //{ // objfrmStatus.lblMsg.Text = "Alterando Status da Nota..."; // objfrmStatus.lblMsg.Refresh(); // objBelRecepcao.AlteraStatusDaNota(objBelRecepcao.objListaNfseRetorno); // objfrmStatus.Close(); // objBelRecepcao.VerificaNotasParaCancelar(objBelRecepcao.objListaNfseRetorno); // KryptonMessageBox.Show(null, objBelRecepcao.MontaMsgDeRetornoParaCliente(), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); // //if (Convert.ToBoolean(Acesso.EMAIL_AUTOMATICO)) // //{ // // //EnviaEmail(objBelRecepcao.objListaNfseRetorno); // //} //} //else //{ // objBelRecepcao.LimpaRecibo(objFrmVisualiza.objLoteRpsAlter); // objfrmStatus.Close(); // KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine, Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); //} } } else { KryptonMessageBox.Show("Nenhuma nota Válida foi Selecionada", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } PesquisaNotas(); } catch (Exception ex) { if (objfrmStatus != null) { objfrmStatus.Close(); } new HLPexception(ex); PesquisaNotas(); } }