private void bb_alterar_evento_Click(object sender, EventArgs e) { if (bsEvento.Current != null) { if ((bsEvento.Current as TRegistro_EventoNFCe).St_registro.Trim().ToUpper().Equals("T")) { MessageBox.Show("Não é permitido alterar evento TRANSMITIDO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFAlterarEventoNFCe fAlt = new TFAlterarEventoNFCe()) { fAlt.rEvento = bsEvento.Current as TRegistro_EventoNFCe; if (fAlt.ShowDialog() == DialogResult.OK) { try { TCN_EventoNFCe.Gravar(fAlt.rEvento, null); MessageBox.Show("Evento alterado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); (bsNFCe.Current as TRegistro_NFCe).lEvento = TCN_EventoNFCe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa, (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, string.Empty, null); bsNFCe.ResetCurrentItem(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
private void bb_enviarevento_Click(object sender, EventArgs e) { if (bsEvento.Current != null) { if ((bsEvento.Current as TRegistro_EventoNFCe).St_registro.Trim().ToUpper().Equals("T")) { MessageBox.Show("Evento TRANSMITIDO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((bsEvento.Current as TRegistro_EventoNFCe).Tp_evento.Trim().ToUpper().Equals("CA")) { afterExclui(); } else { //Buscar CfgNfe para a empresa CamadaDados.Faturamento.Cadastros.TList_CfgNfe 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 { try { string msg = NFCe.EventoNFCe.TEventoNFCe.EnviarEvento(bsEvento.Current as TRegistro_EventoNFCe, lCfg[0]); if (!string.IsNullOrEmpty(msg)) { MessageBox.Show("Erro ao enviar EVENTO para a receita. Aguarde um tempo e tente novamente.\r\n" + "Erro: " + msg.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show("EVENTO enviado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); (bsNFCe.Current as TRegistro_NFCe).lEvento = TCN_EventoNFCe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa, (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, string.Empty, null); } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
private void bsNFCe_PositionChanged(object sender, EventArgs e) { if (bsNFCe.Current != null) { (bsNFCe.Current as TRegistro_NFCe).lItem = TCN_NFCe_Item.Buscar((bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, (bsNFCe.Current as TRegistro_NFCe).Cd_empresa, string.Empty, null); (bsNFCe.Current as TRegistro_NFCe).lEvento = TCN_EventoNFCe.Buscar((bsNFCe.Current as TRegistro_NFCe).Cd_empresa, (bsNFCe.Current as TRegistro_NFCe).Id_nfcestr, string.Empty, null); bsNFCe.ResetCurrentItem(); } }
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); } } } }