Example #1
0
        private void afterBusca()
        {
            string ini = string.Empty;
            string fim = string.Empty;

            if (dt_inicial.Text.SoNumero().Length.Equals(8))
            {
                ini =
                    string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(dt_inicial.Text).ToString("dd/MM/yyyy"))
                    + " " +
                    (hr_ini.Text.SoNumero().Length.Equals(4) ? string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(hr_ini.Text).ToString("HH:mm")) : "00:00");
            }
            if (dt_final.Text.SoNumero().Length.Equals(8))
            {
                fim =
                    string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(dt_final.Text).ToString("dd/MM/yyyy"))
                    + " " +
                    (hr_fin.Text.SoNumero().Length.Equals(4) ? string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(hr_fin.Text).ToString("HH:mm")) : "23:59");
            }

            bsNFCe.DataSource = TCN_NFCe.Buscar(id_nfce.Text,
                                                nr_nfce.Text,
                                                cd_empresa.Text,
                                                string.Empty,
                                                string.Empty,
                                                ini,
                                                fim,
                                                vl_ini.Value,
                                                vl_fin.Value,
                                                cd_produto.Text,
                                                string.Empty,
                                                string.Empty,
                                                string.Empty,
                                                false,
                                                id_venda.Text,
                                                cbStatus.SelectedIndex.Equals(0) ? "'A'" : cbStatus.SelectedIndex.Equals(1) ? "'C'" : string.Empty,
                                                0,
                                                null);
            lblTotalNFe.Text = (bsNFCe.List as TList_NFCe).Sum(p => p.Vl_cupom).ToString("N2", new System.Globalization.CultureInfo("pt-BR", true));
            bsNFCe_PositionChanged(this, new EventArgs());
        }
Example #2
0
 private void VincularCfNFe()
 {
     using (Proc_Commoditties.TFVincularECFNF fVincular = new Proc_Commoditties.TFVincularECFNF())
     {
         if (fVincular.ShowDialog() == DialogResult.OK)
         {
             if (fVincular.lCupom != null)
             {
                 if (fVincular.lCupom.Count > 0)
                 {
                     CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null;
                     try
                     {
                         rPed = Proc_Commoditties.TProcessaCFVinculadoNF.ProcessarPedido(fVincular.lCupom,
                                                                                         fVincular.pCd_empresa,
                                                                                         fVincular.pCd_cliente);
                         //Gravar Pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
                         //Buscar pedido
                         rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
                         //Buscar itens pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
                         //Se o CMI do pedido gerar financeiro
                         CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParcVinculado = new CamadaDados.Financeiro.Duplicata.TList_RegLanParcela();
                         //Buscar parcelas em aberto dos cupons que estao sendo vinculados
                         fVincular.lCupom.ForEach(p =>
                         {
                             new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                                 new TpBusca[]
                             {
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(dup.st_registro, 'A')",
                                     vOperador = "<>",
                                     vVL_Busca = "'C'"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(a.st_registro, 'A')",
                                     vOperador = "in",
                                     vVL_Busca = "('A', 'P')"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = string.Empty,
                                     vOperador = "exists",
                                     vVL_Busca = "(select 1 from tb_pdv_cupom_x_vendarapida x " +
                                                 "inner join tb_pdv_cupomfiscal_x_duplicata y " +
                                                 "on x.cd_empresa = y.cd_empresa " +
                                                 "and x.id_vendarapida = y.id_cupom " +
                                                 "where y.cd_empresa = a.cd_empresa " +
                                                 "and y.nr_lancto = a.nr_lancto " +
                                                 "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                                 "and x.id_cupom = " + p.Id_nfcestr + ")"
                                 }
                             }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty).ForEach(v => lParcVinculado.Add(v));
                         });
                         //Gerar Nota Fiscal
                         CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                             Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed,
                                                                                      true,
                                                                                      lParcVinculado.Sum(p => p.Vl_atual));
                         //Vincular Cupom a Nota Fiscal
                         string Obs  = string.Empty;
                         string virg = string.Empty;
                         fVincular.lCupom.ForEach(p =>
                         {
                             rFat.lCupom.Add(p);
                             string Placa_km = TCN_NFCe.BuscarPlacaKM(p.Cd_empresa, p.Id_nfcestr, null);
                             Obs            += virg + p.NR_NFCestr.Trim() + "-" + (string.IsNullOrEmpty(Placa_km) ? p.Placa : Placa_km.Trim()) + (!string.IsNullOrEmpty(p.Nr_requisicao) ? "/" + p.Nr_requisicao.Trim() : string.Empty);
                             virg            = ",";
                         });
                         //Vincular financeiro a Nota Fiscal
                         rFat.lParcAgrupar = lParcVinculado;
                         if (!string.IsNullOrEmpty(Obs))
                         {
                             rFat.Dadosadicionais = (!string.IsNullOrEmpty(rFat.Dadosadicionais) ? "\r\n" : string.Empty) + "Ref. CF-Placa/KM/Frota/Requisicao " + Obs.Trim();
                         }
                         //Gravar Nota Fiscal
                         CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                         if (rFat.Cd_modelo.Trim().Equals("55"))
                         {
                             if (MessageBox.Show("NFe gerada com sucesso.\r\n" +
                                                 "Deseja enviar para receita?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                                 MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                             {
                                 using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                 {
                                     fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                                                                                     rFat.Nr_lanctofiscalstr,
                                                                                                                     null);
                                     fGerNfe.ShowDialog();
                                 }
                             }
                         }
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null);
                     }
                 }
                 else
                 {
                     MessageBox.Show("Não existe cupom fiscal selecionado para vincular a Nota Fiscal.", "Mensagem",
                                     MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
 }
Example #3
0
 private void afterPrint()
 {
     if (bsNFCe.Current != null)
     {
         if ((bsNFCe.Current as TRegistro_NFCe).St_registro.Trim().ToUpper().Equals("C"))
         {
             MessageBox.Show("Não é permitido imprimir DANFE NFCe CANCELADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue ? false : !(bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue)
         {
             MessageBox.Show("Permitido imprimir DANFE somente de NFCe aceita pela receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
         {
             FormRelPadrao.Relatorio Rel = new FormRelPadrao.Relatorio();
             Rel.Altera_Relatorio = Altera_Relatorio;
             BindingSource dts = new BindingSource();
             dts.DataSource    = new TList_NFCe_Item();
             Rel.DTS_Relatorio = dts;// bsItens;
             //DTS Cupom
             BindingSource bs = new BindingSource();
             bs.DataSource = new TList_NFCe()
             {
                 TCN_NFCe.BuscarNFCe((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                     (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr,
                                     null)
             };
             NFCe.TGerarQRCode.GerarQRCode2(bs.Current as TRegistro_NFCe);
             Rel.Adiciona_DataSource("DTS_NFCE", bs);
             //Buscar Empresa
             BindingSource bsEmpresa = new BindingSource();
             bsEmpresa.DataSource = new CamadaDados.Diversos.TList_CadEmpresa()
             {
                 (bs.Current as TRegistro_NFCe).rEmpresa
             };
             Rel.Adiciona_DataSource("DTS_EMP", bsEmpresa);
             //Forma Pagamento
             BindingSource bsPagto = new BindingSource();
             if ((bs.Current as TRegistro_NFCe).lDup.Count > 0)
             {
                 (bs.Current as TRegistro_NFCe).lPagto.Add(new TRegistro_MovCaixa()
                 {
                     Tp_portador = "05",
                     Vl_recebido = (bs.Current as TRegistro_NFCe).lDup[0].Vl_documento
                 });
             }
             bsPagto.DataSource = (bs.Current as TRegistro_NFCe).lPagto;
             Rel.Adiciona_DataSource("DTS_PAGTO", bsPagto);
             //Parametros
             Rel.Parametros_Relatorio.Add("TOT_IMP_APROX", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_imposto_Aprox));
             Rel.Parametros_Relatorio.Add("QTD_ITENS", (bs.Current as TRegistro_NFCe).lItem.Count);
             Rel.Parametros_Relatorio.Add("TOT_SUBTOTAL", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_subtotal));
             Rel.Parametros_Relatorio.Add("TOT_ACRESCIMO", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_acrescimo));
             Rel.Parametros_Relatorio.Add("TOT_DESCONTO", (bs.Current as TRegistro_NFCe).lItem.Sum(p => p.Vl_desconto));
             Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "N");
             object obj = new CamadaDados.Faturamento.NFCe.TCD_LoteNFCe().BuscarEscalar(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "exists",
                     vVL_Busca = "(select 1 from TB_FAT_Lote_X_NFCe x " +
                                 "where x.cd_empresa = a.cd_empresa " +
                                 "and x.id_lote = a.id_lote " +
                                 "and x.status = '100')"
                 }
             }, "a.tp_ambiente");
             Rel.Parametros_Relatorio.Add("TP_AMBIENTE", obj == null ? string.Empty : obj.ToString());
             string dadoscf = TCN_NFCe.BuscarPlacaKM((bs.Current as TRegistro_NFCe).Cd_empresa,
                                                     (bs.Current as TRegistro_NFCe).Id_nfcestr,
                                                     null);
             if (!string.IsNullOrEmpty(dadoscf))
             {
                 string[] linhas        = dadoscf.Split(new char[] { ':' });
                 string   placa         = string.Empty;
                 string   km            = string.Empty;
                 string   frota         = string.Empty;
                 string   requisicao    = string.Empty;
                 string   nm_motorista  = string.Empty;
                 string   cpf_motorista = string.Empty;
                 string   media         = string.Empty;
                 string   virg          = string.Empty;
                 foreach (string s in linhas)
                 {
                     string[] colunas = s.Split(new char[] { '/' });
                     placa         += virg + colunas[0];
                     km            += virg + colunas[1];
                     frota         += virg + colunas[2];
                     requisicao    += virg + colunas[3];
                     nm_motorista  += virg + colunas[4];
                     cpf_motorista += virg + colunas[5];
                     media         += virg + colunas[6];
                     virg           = ",";
                 }
                 if (!string.IsNullOrEmpty(placa))
                 {
                     Rel.Parametros_Relatorio.Add("PLACA", placa);
                 }
                 if (!string.IsNullOrEmpty(km))
                 {
                     Rel.Parametros_Relatorio.Add("KM", km);
                 }
                 if (!string.IsNullOrEmpty(media))
                 {
                     Rel.Parametros_Relatorio.Add("MEDIA", media + " KM/LT");
                 }
                 if (!string.IsNullOrEmpty(frota))
                 {
                     Rel.Parametros_Relatorio.Add("FROTA", frota);
                 }
                 if (!string.IsNullOrEmpty(requisicao))
                 {
                     Rel.Parametros_Relatorio.Add("REQUISICAO", requisicao);
                 }
                 if (!string.IsNullOrEmpty(nm_motorista))
                 {
                     Rel.Parametros_Relatorio.Add("NM_MOTORISTA", nm_motorista);
                 }
                 if (!string.IsNullOrEmpty(cpf_motorista))
                 {
                     Rel.Parametros_Relatorio.Add("CPF_MOTORISTA", cpf_motorista);
                 }
             }
             Rel.Nome_Relatorio          = "DANFE_NFCE";
             Rel.NM_Classe               = "TFConsultaFrenteCaixa";
             Rel.Modulo                  = "FAT";
             Rel.Ident                   = "DANFE_NFCE";
             fImp.St_enabled_enviaremail = true;
             fImp.pCd_clifor             = string.Empty;
             fImp.pMensagem              = "DANFE NFC-e";
             fImp.St_danfenfce           = true;
             if (Altera_Relatorio)
             {
                 Rel.Gera_Relatorio(string.Empty,
                                    fImp.pSt_imprimir,
                                    fImp.pSt_visualizar,
                                    fImp.pSt_enviaremail,
                                    fImp.pSt_exportPdf,
                                    fImp.Path_exportPdf,
                                    fImp.pDestinatarios,
                                    null,
                                    "DANFE NFC-e",
                                    fImp.pDs_mensagem);
                 Altera_Relatorio = false;
             }
             else
             {
                 fImp.pCd_clifor = (bs.Current as TRegistro_NFCe).Cd_clifor;
                 if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                 {
                     if (fImp.St_danfenfcedetalhada)
                     {
                         Rel.DTS_Relatorio = bsItens;
                     }
                     if ((bs.Current as TRegistro_NFCe).Id_contingencia.HasValue &&
                         fImp.St_viaestabelecimento)
                     {
                         if (Rel.Parametros_Relatorio.ContainsKey("ST_VIAEMPRESA"))
                         {
                             Rel.Parametros_Relatorio["ST_VIAEMPRESA"] = "S";
                         }
                         else
                         {
                             Rel.Parametros_Relatorio.Add("ST_VIAEMPRESA", "S");
                         }
                     }
                     Rel.Gera_Relatorio(string.Empty,
                                        fImp.pSt_imprimir,
                                        fImp.pSt_visualizar,
                                        fImp.pSt_enviaremail,
                                        fImp.pSt_exportPdf,
                                        fImp.Path_exportPdf,
                                        fImp.pDestinatarios,
                                        null,
                                        "DANFE NFC-e",
                                        fImp.pDs_mensagem);
                 }
             }
         }
     }
 }
Example #4
0
 private void afterExclui()
 {
     if (bsNFCe.Current != null)
     {
         if ((bsNFCe.Current as TRegistro_NFCe).St_registro.Trim().ToUpper().Equals("C") &&
             (!(bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue ||
              ((bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue &&
               (bsNFCe.Current as TRegistro_NFCe).St_transmitidocancnfce)))
         {
             MessageBox.Show("NFCe ja se encontra CANCELADA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue &&
             !(bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue)
         {
             MessageBox.Show("Não é permitido CANCELAR NFC-e emitida em CONTINGÊNCIA OFFLINE sem antes transmitir a mesma para receita.",
                             "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if (MessageBox.Show("Confirma cancelamento NFCe?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
             == DialogResult.Yes)
         {
             try
             {
                 //Verificar se NFCe não esta vinculada a NFe
                 if (new CamadaDados.Faturamento.NotaFiscal.TCD_ECFVinculadoNF().BuscarEscalar(
                         new TpBusca[]
                 {
                     new TpBusca()
                     {
                         vNM_Campo = "a.cd_empresa",
                         vOperador = "=",
                         vVL_Busca = "'" + (bsNFCe.Current as TRegistro_NFCe).Cd_empresa.Trim() + "'"
                     },
                     new TpBusca()
                     {
                         vNM_Campo = "a.id_cupom",
                         vOperador = "=",
                         vVL_Busca = (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr
                     },
                     new TpBusca()
                     {
                         vNM_Campo = string.Empty,
                         vOperador = "exists",
                         vVL_Busca = "(select 1 from tb_fat_notafiscal x " +
                                     "where x.cd_empresa = a.cd_empresa " +
                                     "and x.nr_lanctofiscal = a.nr_lanctofiscal " +
                                     "and isnull(x.st_registro, 'A') <> 'C')"
                     }
                 }, "1") != null)
                 {
                     MessageBox.Show("Para cancelar NFCe vinculada a NFe, obrigatório antes cancelar a NFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     return;
                 }
                 bool st_cancelar = true;
                 if ((bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue ||
                     (bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue)
                 {
                     string motivo = string.Empty;
                     CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfg = null;
                     CamadaDados.Faturamento.Cadastros.TList_Evento lEv  = null;
                     //Verificar evento
                     TList_EventoNFCe lEvento =
                         TCN_EventoNFCe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                               (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr,
                                               string.Empty,
                                               null);
                     if (lEvento.Count.Equals(0))
                     {
                         if (string.IsNullOrEmpty(motivo))
                         {
                             InputBox ibp = new InputBox();
                             ibp.Text = "Motivo Cancelamento NFCe";
                             motivo   = ibp.ShowDialog();
                             if (string.IsNullOrEmpty(motivo))
                             {
                                 MessageBox.Show("Obrigatorio informar motivo de cancelamento da NFCe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                 return;
                             }
                             if (motivo.Trim().Length < 15)
                             {
                                 MessageBox.Show("Motivo de cancelamento deve ter mais que 15 caracteres.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                 return;
                             }
                         }
                         //Buscar evento Cancelamento
                         if (lEv == null)
                         {
                             lEv = CamadaNegocio.Faturamento.Cadastros.TCN_Evento.Buscar(string.Empty, string.Empty, "CA", null);
                         }
                         if (lEv.Count.Equals(0))
                         {
                             MessageBox.Show("Não existe evento de CANCELAMENTO NFE cadastrado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             return;
                         }
                         //Cancelar NFe Receita
                         TRegistro_EventoNFCe rEvento = new TRegistro_EventoNFCe();
                         rEvento.Cd_empresa        = (bsNFCe.Current as TRegistro_NFCe).Cd_empresa;
                         rEvento.Id_cupom          = (bsNFCe.Current as TRegistro_NFCe).Id_nfce;
                         rEvento.Chave_acesso_nfce = (bsNFCe.Current as TRegistro_NFCe).Chave_acesso;
                         rEvento.Nr_protocoloNFCe  = (bsNFCe.Current as TRegistro_NFCe).Nr_protocolo;
                         rEvento.Dt_evento         = CamadaDados.UtilData.Data_Servidor();
                         rEvento.Justificativa     = motivo;
                         rEvento.Cd_eventostr      = lEv[0].Cd_eventostr;
                         rEvento.Tp_evento         = lEv[0].Tp_evento;
                         rEvento.Ds_evento         = lEv[0].Ds_evento;
                         rEvento.St_registro       = "A";
                         TCN_EventoNFCe.Gravar(rEvento, null);
                         lEvento.Add(rEvento);
                     }
                     if (!lEvento[0].St_registro.Trim().ToUpper().Equals("T") &&
                         (bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue)
                     {
                         //Buscar CfgNfe para a empresa
                         if (lCfg == null)
                         {
                             lCfg = CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          null);
                         }
                         if (lCfg.Count.Equals(0))
                         {
                             MessageBox.Show("Não existe configuração para envio de evento para a empresa " + (bsNFCe.Current as TRegistro_NFCe).Cd_empresa.Trim() + ".",
                                             "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         }
                         else
                         {
                             string ret = NFCe.EventoNFCe.TEventoNFCe.EnviarEvento(lEvento[0], lCfg[0]);
                             if (!string.IsNullOrEmpty(ret))
                             {
                                 MessageBox.Show("Erro ao enviar evento CANCELAMENTO para a receita.\r\n" +
                                                 "Aguarde um tempo e tente novamente.\r\n" +
                                                 "Erro: " + ret.Trim() + ".",
                                                 "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                 st_cancelar = false;
                             }
                         }
                     }
                 }
                 if (st_cancelar)
                 {
                     if (!(bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue &&
                         !(bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue &&
                         !string.IsNullOrEmpty((bsNFCe.Current as TRegistro_NFCe).Chave_acesso))
                     {
                         //Buscar CfgNfe para a empresa
                         CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfgNfCe =
                             CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                                                                   string.Empty,
                                                                                   string.Empty,
                                                                                   null);
                         if (lCfgNfCe.Count.Equals(0))
                         {
                             MessageBox.Show("Não existe configuração NFC-e para a empresa " + (bsNFCe.Current as TRegistro_NFCe).Cd_empresa.Trim() + ".",
                                             "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         }
                         else
                         {
                             //Consultar Chave
                             string ret = NFCe.ConsultaChave.TConsultaChave.ConsultaChave((bsNFCe.Current as TRegistro_NFCe).Chave_acesso,
                                                                                          "1",
                                                                                          lCfgNfCe[0]);
                             if (!string.IsNullOrEmpty(ret))
                             {
                                 MessageBox.Show("Não é permtido excluir cupom com chave de acesso existente na receita.\r\n" + ret, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                 return;
                             }
                         }
                     }
                     TCN_NFCe.CancelarCF(bsNFCe.Current as TRegistro_NFCe, null);
                     MessageBox.Show("NFCe cancelada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     if (!(bsNFCe.Current as TRegistro_NFCe).Nr_protocolo.HasValue &&
                         !(bsNFCe.Current as TRegistro_NFCe).Id_contingencia.HasValue)
                     {
                         CamadaDados.Faturamento.Cadastros.TList_CadSequenciaNF lSeq =
                             CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Busca((bsNFCe.Current as TRegistro_NFCe).Nr_serie,
                                                                                          (bsNFCe.Current as TRegistro_NFCe).Cd_modelo,
                                                                                          (bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                                                                          null);
                         if (lSeq.Count > 0)
                         {
                             if (lSeq[0].Seq_NotaFiscal.Equals((bsNFCe.Current as TRegistro_NFCe).NR_NFCe))
                             {
                                 lSeq[0].Seq_NotaFiscal--;
                                 CamadaNegocio.Faturamento.Cadastros.TCN_CadSequenciaNF.Gravar(lSeq[0], null);
                                 MessageBox.Show("Sequencia de numeração da serie voltada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             }
                             else
                             {
                                 //Buscar configuracao nfe
                                 CamadaDados.Faturamento.Cadastros.TList_CfgNfe lCfgNfe =
                                     CamadaNegocio.Faturamento.Cadastros.TCN_CfgNfe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa,
                                                                                           string.Empty,
                                                                                           string.Empty,
                                                                                           null);
                                 if (lCfgNfe.Count > 0)
                                 {
                                     try
                                     {
                                         //Inutilizar numero nota
                                         NFCe.InutilizaNFCe.TInutilizaNFCe.InutilizarNFCe(lCfgNfe[0].Cd_uf_empresa,
                                                                                          lCfgNfe[0].Cnpj_empresa,
                                                                                          (bsNFCe.Current as TRegistro_NFCe).Nr_serie,
                                                                                          (bsNFCe.Current as TRegistro_NFCe).Cd_modelo,
                                                                                          DateTime.Now.Year.ToString(),
                                                                                          (bsNFCe.Current as TRegistro_NFCe).NR_NFCe.Value,
                                                                                          (bsNFCe.Current as TRegistro_NFCe).NR_NFCe.Value,
                                                                                          "NUMERO INUTILIZADO DEVIDO A ERRO NA EMISSAO DA NFCe",
                                                                                          lCfgNfe[0]);
                                         MessageBox.Show("Numero INUTILIZADO com sucesso na receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                     }
                                     catch (Exception ex)
                                     { MessageBox.Show("Erro: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                 }
                             }
                         }
                     }
                     afterBusca();
                 }
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }