コード例 #1
0
 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); }
             }
         }
     }
 }
コード例 #2
0
 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); }
             }
         }
     }
 }
コード例 #3
0
 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();
     }
 }
コード例 #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); }
         }
     }
 }