private void btnContingencia_Click(object sender, EventArgs e) { List <belPesquisaNotas> objSelect = BuscaNotasSelecionadas().Where(c => c.bEnviado == false && c.bDenegada == false && c.bCancelado == false && c.sRECIBO_NF == "").ToList <belPesquisaNotas>(); try { if (objSelect.Count() > 0) { if (objSelect.Where(c => c.sCD_NOTAFIS == "").Count() > 0) { belNumeroNF objbelNumeracao = new belNumeroNF(objSelect.Where(c => c.sCD_NOTAFIS == "").ToList()); frmGeraNumeracaoNFe objfrmGeraNumeracao = new frmGeraNumeracaoNFe(objbelNumeracao, false); objfrmGeraNumeracao.ShowDialog(); if (!objfrmGeraNumeracao.bGerou) { throw new Exception("Transmissão de Notas abortada"); } } belCarregaDados objbelCarregaDados = new belCarregaDados(objSelect); objbelCarregaDados.CarregaDados(); frmVisualizaNFe objfrmVisualizaNFe = new frmVisualizaNFe(objbelCarregaDados.lNotas); objfrmVisualizaNFe.ShowDialog(); if (objfrmVisualizaNFe.Cancelado) { throw new Exception("Envio da(s) Nota(s) Cancelado"); } objbelCarregaDados.objbelCriaXml.GeraLoteXmlEnvio(); foreach (belPesquisaNotas item in objSelect) { item.AlteraStatusNotaParaContingenciaFS(); } KryptonMessageBox.Show(belTrataMensagemNFe.RetornaMensagem(objSelect, belTrataMensagemNFe.Tipo.ContingenciaFS), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); PesquisaNotas(); } } catch (Exception ex) { 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(); } }
private void btnContingencia_Click(object sender, EventArgs e) { List<belPesquisaNotas> objSelect = BuscaNotasSelecionadas().Where(c => c.bEnviado == false && c.bDenegada == false && c.bCancelado == false && c.sRECIBO_NF == "").ToList<belPesquisaNotas>(); try { if (objSelect.Count() > 0) { if (objSelect.Where(c => c.sCD_NOTAFIS == "").Count() > 0) { belNumeroNF objbelNumeracao = new belNumeroNF(objSelect.Where(c => c.sCD_NOTAFIS == "").ToList()); frmGeraNumeracaoNFe objfrmGeraNumeracao = new frmGeraNumeracaoNFe(objbelNumeracao, false); objfrmGeraNumeracao.ShowDialog(); if (!objfrmGeraNumeracao.bGerou) { throw new Exception("Transmissão de Notas abortada"); } } belCarregaDados objbelCarregaDados = new belCarregaDados(objSelect); objbelCarregaDados.CarregaDados(); frmVisualizaNFe objfrmVisualizaNFe = new frmVisualizaNFe(objbelCarregaDados.lNotas); objfrmVisualizaNFe.ShowDialog(); if (objfrmVisualizaNFe.Cancelado) { throw new Exception("Envio da(s) Nota(s) Cancelado"); } objbelCarregaDados.objbelCriaXml.GeraLoteXmlEnvio(); foreach (belPesquisaNotas item in objSelect) { item.AlteraStatusNotaParaContingenciaFS(); } KryptonMessageBox.Show(belTrataMensagemNFe.RetornaMensagem(objSelect, belTrataMensagemNFe.Tipo.ContingenciaFS), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); PesquisaNotas(); } } catch (Exception ex) { new HLPexception(ex); } }
public void EnviarNFe() { List <belPesquisaNotas> objSelect = BuscaNotasSelecionadas().Where(c => c.bEnviado == false && c.bDenegada == false && c.bCancelado == false && c.sRECIBO_NF == "").ToList <belPesquisaNotas>(); try { frmEnviaLotes objfrmLotes = null; if (objSelect.Count() > 0) { belCarregaDados objbelCarregaDados = null; if (objSelect.Where(c => c.sCD_NOTAFIS == "").Count() > 0) { belNumeroNF objbelNumeracao = new belNumeroNF(objSelect.Where(c => c.sCD_NOTAFIS == "").ToList()); frmGeraNumeracaoNFe objfrmGeraNumeracao = new frmGeraNumeracaoNFe(objbelNumeracao, false); if (Acesso.TP_EMIS == 3) { if (String.IsNullOrEmpty(Acesso.GRUPO_SCAN)) { throw new Exception("Sistema em modo SCAN, configure um grupo de faturamento para utilizar com a série 900"); } else { objfrmGeraNumeracao.cbxGrupos.cbx.SelectedValue = Acesso.GRUPO_SCAN; } } else { if (String.IsNullOrEmpty(objbelNumeracao.sGrupoNF)) { throw new Exception("Nota fiscal sem grupo de Faturamento salvo, Impossível gerar numeração."); } else { objfrmGeraNumeracao.cbxGrupos.cbx.SelectedValue = objbelNumeracao.sGrupoNF; } } objfrmGeraNumeracao.ShowDialog(); if (!objfrmGeraNumeracao.bGerou) { throw new Exception("Transmissão de Notas abortada"); } //Thread workThread = new Thread(objbelNumeracao.AlteraDuplicatasNFe); //workThread.Start(); //while (!workThread.IsAlive) ; } if (objSelect.Where(c => c.bContingencia).Count() > 1) { throw new Exception("Selecione uma nota de cada vez quando houver notas de contingêcia a ser enviada."); } else if ((objSelect.Where(c => c.bContingencia).Count() == 1)) { if (objSelect.Count() > 1) { throw new Exception("Selecione uma nota de cada vez quando houver notas de contingêcia a ser enviada."); } else { objbelCarregaDados = new belCarregaDados(); DirectoryInfo dinfo = new DirectoryInfo(Pastas.CONTINGENCIA); FileInfo[] files = dinfo.GetFiles("*.xml"); string sPath = string.Empty; XmlDocument xml = new XmlDocument(); foreach (FileInfo f in files) { if (f.Name.Length == 26) { xml.Load(f.FullName); if (xml.GetElementsByTagName("infNFe")[0].Attributes["Id"].Value.ToString().Replace("NFe", "").Equals(objSelect.FirstOrDefault().sCHAVENFE)) { sPath = f.FullName; string sPathDest = Pastas.ENVIO + "\\" + f.Name; string sPathOrigem = Pastas.CONTINGENCIA + "\\" + f.Name; if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); } } else if (f.Name.Length == 52) { if (f.Name.Replace("-nfe.xml", "") == objSelect.FirstOrDefault().sCHAVENFE) { string sPathDest = Pastas.ENVIO + "\\" + objSelect.FirstOrDefault().sCHAVENFE.Substring(2, 4) + "\\" + objSelect.FirstOrDefault().sCHAVENFE + "-nfe.xml"; string sPathOrigem = Util.BuscaCaminhoArquivoXml(objSelect.FirstOrDefault().sCHAVENFE, 3); if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); } } } if (sPath == "") { throw new Exception("Arquivo xml do Lote não foi encontrado na pasta de Contingência."); } objbelCarregaDados.objbelRecepcao.TransmitirLote(sPath, objSelect); } } else { objSelect = ConsultaClienteBeforeEnvio(objSelect); if (objSelect.Count() > 0) { objfrmLotes = new frmEnviaLotes(objSelect); objfrmLotes.ShowDialog(); //objbelCarregaDados = new belCarregaDados(objSelect); //frmVisualizaNFe objfrmVisualizaNFe = new frmVisualizaNFe(objbelCarregaDados); //objfrmVisualizaNFe.ShowDialog(); //if (objfrmVisualizaNFe.Cancelado) //{ // throw new Exception("Envio da(s) Nota(s) Cancelado"); //} //objbelCarregaDados.objbelCriaXml.GeraLoteXmlEnvio(); //objbelCarregaDados.objbelRecepcao.TransmitirLote(objbelCarregaDados.objbelCriaXml.sPathLote, objSelect); if (objfrmLotes.bCancelado == true) { throw new Exception("Envio da(s) Nota(s) Cancelado."); } } } if (objfrmLotes == null) { if (objSelect.Count() > 0) { belBusRetFazenda objbelRetFazenda = new belBusRetFazenda(objSelect); frmBuscaRetorno objFrmBuscaRet = new frmBuscaRetorno(objbelRetFazenda); objFrmBuscaRet.ShowDialog(); KryptonMessageBox.Show(belTrataMensagemNFe.RetornaMensagem(objbelRetFazenda.lDadosRetorno, belTrataMensagemNFe.Tipo.Envio), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); cboStatus.cbx.SelectedIndex = 2; PesquisaNotas(); List <string> lsNotas = objbelRetFazenda.lDadosRetorno.Select(c => c.seqNota).ToList <string>(); List <belPesquisaNotas> dados = (from c in ((List <belPesquisaNotas>)bsNotas.DataSource) where lsNotas.Contains(c.sCD_NFSEQ) select c).ToList(); bsNotas.DataSource = dados; } } else { cboStatus.cbx.SelectedIndex = 2; PesquisaNotas(); if (objfrmLotes != null) { List <string> lsNotas = objfrmLotes.lDadosRetorno.Select(c => c.seqNota).ToList <string>(); List <belPesquisaNotas> dados = (from c in ((List <belPesquisaNotas>)bsNotas.DataSource) where lsNotas.Contains(c.sCD_NFSEQ) select c).ToList(); bsNotas.DataSource = dados; } } cboStatus.cbx.SelectedIndex = 1; ColoriGrid(); ValidaContadorBuscaRetorno(); } } catch (Exception ex) { new HLPexception(ex); cboStatus.cbx.SelectedIndex = 1; PesquisaNotas(); } }
public void EnviarNFe() { List<belPesquisaNotas> objSelect = BuscaNotasSelecionadas().Where(c => c.bEnviado == false && c.bDenegada == false && c.bCancelado == false && c.sRECIBO_NF == "").ToList<belPesquisaNotas>(); try { frmEnviaLotes objfrmLotes = null; if (objSelect.Count() > 0) { belCarregaDados objbelCarregaDados = null; if (objSelect.Where(c => c.sCD_NOTAFIS == "").Count() > 0) { belNumeroNF objbelNumeracao = new belNumeroNF(objSelect.Where(c => c.sCD_NOTAFIS == "").ToList()); frmGeraNumeracaoNFe objfrmGeraNumeracao = new frmGeraNumeracaoNFe(objbelNumeracao, false); if (Acesso.TP_EMIS == 3) { if (String.IsNullOrEmpty(Acesso.GRUPO_SCAN)) { throw new Exception("Sistema em modo SCAN, configure um grupo de faturamento para utilizar com a série 900"); } else { objfrmGeraNumeracao.cbxGrupos.cbx.SelectedValue = Acesso.GRUPO_SCAN; } } else { if (String.IsNullOrEmpty(objbelNumeracao.sGrupoNF)) { throw new Exception("Nota fiscal sem grupo de Faturamento salvo, Impossível gerar numeração."); } else { objfrmGeraNumeracao.cbxGrupos.cbx.SelectedValue = objbelNumeracao.sGrupoNF; } } objfrmGeraNumeracao.ShowDialog(); if (!objfrmGeraNumeracao.bGerou) { throw new Exception("Transmissão de Notas abortada"); } //Thread workThread = new Thread(objbelNumeracao.AlteraDuplicatasNFe); //workThread.Start(); //while (!workThread.IsAlive) ; } if (objSelect.Where(c => c.bContingencia).Count() > 1) { throw new Exception("Selecione uma nota de cada vez quando houver notas de contingêcia a ser enviada."); } else if ((objSelect.Where(c => c.bContingencia).Count() == 1)) { if (objSelect.Count() > 1) { throw new Exception("Selecione uma nota de cada vez quando houver notas de contingêcia a ser enviada."); } else { objbelCarregaDados = new belCarregaDados(); DirectoryInfo dinfo = new DirectoryInfo(Pastas.CONTINGENCIA); FileInfo[] files = dinfo.GetFiles("*.xml"); string sPath = string.Empty; XmlDocument xml = new XmlDocument(); foreach (FileInfo f in files) { if (f.Name.Length == 26) { xml.Load(f.FullName); if (xml.GetElementsByTagName("infNFe")[0].Attributes["Id"].Value.ToString().Replace("NFe", "").Equals(objSelect.FirstOrDefault().sCHAVENFE)) { sPath = f.FullName; string sPathDest = Pastas.ENVIO + "\\" + f.Name; string sPathOrigem = Pastas.CONTINGENCIA + "\\" + f.Name; if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); } } else if (f.Name.Length == 52) { if (f.Name.Replace("-nfe.xml", "") == objSelect.FirstOrDefault().sCHAVENFE) { string sPathDest = Pastas.ENVIO + "\\" + objSelect.FirstOrDefault().sCHAVENFE.Substring(2, 4) + "\\" + objSelect.FirstOrDefault().sCHAVENFE + "-nfe.xml"; string sPathOrigem = Util.BuscaCaminhoArquivoXml(objSelect.FirstOrDefault().sCHAVENFE, 3); if (File.Exists(sPathDest)) { File.Delete(sPathDest); } File.Copy(sPathOrigem, sPathDest); } } } if (sPath == "") { throw new Exception("Arquivo xml do Lote não foi encontrado na pasta de Contingência."); } objbelCarregaDados.objbelRecepcao.TransmitirLote(sPath, objSelect); } } else { objSelect = ConsultaClienteBeforeEnvio(objSelect); if (objSelect.Count() > 0) { objfrmLotes = new frmEnviaLotes(objSelect); objfrmLotes.ShowDialog(); //objbelCarregaDados = new belCarregaDados(objSelect); //frmVisualizaNFe objfrmVisualizaNFe = new frmVisualizaNFe(objbelCarregaDados); //objfrmVisualizaNFe.ShowDialog(); //if (objfrmVisualizaNFe.Cancelado) //{ // throw new Exception("Envio da(s) Nota(s) Cancelado"); //} //objbelCarregaDados.objbelCriaXml.GeraLoteXmlEnvio(); //objbelCarregaDados.objbelRecepcao.TransmitirLote(objbelCarregaDados.objbelCriaXml.sPathLote, objSelect); if (objfrmLotes.bCancelado == true) { throw new Exception("Envio da(s) Nota(s) Cancelado."); } } } if (objfrmLotes == null) { if (objSelect.Count() > 0) { belBusRetFazenda objbelRetFazenda = new belBusRetFazenda(objSelect); frmBuscaRetorno objFrmBuscaRet = new frmBuscaRetorno(objbelRetFazenda); objFrmBuscaRet.ShowDialog(); KryptonMessageBox.Show(belTrataMensagemNFe.RetornaMensagem(objbelRetFazenda.lDadosRetorno, belTrataMensagemNFe.Tipo.Envio), Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information); cboStatus.cbx.SelectedIndex = 2; PesquisaNotas(); List<string> lsNotas = objbelRetFazenda.lDadosRetorno.Select(c => c.seqNota).ToList<string>(); List<belPesquisaNotas> dados = (from c in ((List<belPesquisaNotas>)bsNotas.DataSource) where lsNotas.Contains(c.sCD_NFSEQ) select c).ToList(); bsNotas.DataSource = dados; } } else { cboStatus.cbx.SelectedIndex = 2; PesquisaNotas(); if (objfrmLotes != null) { List<string> lsNotas = objfrmLotes.lDadosRetorno.Select(c => c.seqNota).ToList<string>(); List<belPesquisaNotas> dados = (from c in ((List<belPesquisaNotas>)bsNotas.DataSource) where lsNotas.Contains(c.sCD_NFSEQ) select c).ToList(); bsNotas.DataSource = dados; } } cboStatus.cbx.SelectedIndex = 1; ColoriGrid(); ValidaContadorBuscaRetorno(); } } catch (Exception ex) { new HLPexception(ex); cboStatus.cbx.SelectedIndex = 1; PesquisaNotas(); } }