예제 #1
0
        private void btnImprimir_Click(object sender, EventArgs e)
        {
            this.Close();
            try
            {
                Saida.Observacao = observacaoTextBox.Text;
            }
            catch (Exception)
            {
                throw new NegocioException("Número da nota fiscal inválido. Favor verificar o formato e a sequência da numeração.");
            }
            if (Saida.CupomFiscal.Trim().Equals(""))
            {
                GerenciadorSaida.GetInstance(null).AtualizarNfePorCodSaida(Saida.Nfe, Saida.Observacao, Saida.CodSaida);
            }
            else
            {
                GerenciadorSaida.GetInstance(null).AtualizarNfePorPedidoGerado(Saida.Nfe, Saida.Observacao, Saida.CupomFiscal);
            }
            NfeControle nfe = new NfeControle();

            nfe.CodNfe = GerenciadorNFe.GetInstance().Inserir(nfe, Saida);
            nfe.Chave  = GerenciadorNFe.GetInstance().GerarChaveNFE(Saida, nfe);

            if (!string.IsNullOrEmpty(nfe.Chave))
            {
                GerenciadorNFe.GetInstance().Atualizar(nfe);
                GerenciadorNFe.GetInstance().EnviarNFE(Saida, nfe);
            }
            //GerenciadorSaida.GetInstance(null).ImprimirNotaFiscal(Saida);
        }
예제 #2
0
 private void btnCartaCorrecao_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Confirma envio de Carta Correção da Nf-e?", "Correção da NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
     {
         NfeControle nfeControle = (NfeControle)nfeControleBindingSource.Current;
         GerenciadorNFe.GetInstance().EnviarCartaCorrecaoNfe(nfeControle);
     }
 }
예제 #3
0
 private void btnSituacao_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Confirma envio de solicitação de Consulta a NF-e?", "Consulta na Base da SEFAZ da NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
     {
         NfeControle nfeControle = (NfeControle)nfeControleBindingSource.Current;
         GerenciadorNFe.GetInstance().EnviarConsultaNfe(nfeControle);
     }
 }
예제 #4
0
 private void btnCancelar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Confirma envio de pedido de cancelamento da NF-e?", "Cancelar NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
     {
         NfeControle _nfeCurrent  = (NfeControle)nfeControleBindingSource.Current;
         NfeControle _nfeControle = GerenciadorNFe.GetInstance().Obter(_nfeCurrent.CodNfe).ElementAtOrDefault(0);
         _nfeControle.JustificativaCancelamento = _nfeCurrent.JustificativaCancelamento;
         _nfeControle.CodSaida = _nfeCurrent.CodSaida;
         GerenciadorNFe.GetInstance().EnviarSolicitacaoCancelamento(_nfeControle);
     }
 }
예제 #5
0
 public FrmSaidaAutorizacao(long codSaida, long codCliente, DocumentoFiscal.TipoSolicitacao tipo)
 {
     InitializeComponent();
     this.codSaida       = codSaida;
     nfeControle         = null;
     lblCartao.ForeColor = Color.Black;
     tipoNfe             = tipo;
     if (codCliente != Util.Global.CLIENTE_PADRAO)
     {
         Pessoa cliente = GerenciadorPessoa.GetInstance().Obter(codCliente).FirstOrDefault();
         if ((cliente != null) && (cliente.ImprimirCF))
         {
             tipoNfe = DocumentoFiscal.TipoSolicitacao.NFE;
         }
     }
     contConsultas = 0;
 }
예제 #6
0
 private void ExibirResultadoProcessamentoNfe(Dados.tb_solicitacao_documento documentoE)
 {
     if (!documentoE.nfeProcessada)
     {
         lblCartao.Text = "Aguardando Autorização NF-e... ";
         Cursor.Current = Cursors.WaitCursor;
     }
     else
     {
         Dados.tb_solicitacao_saida solicitacaoSaida = documentoE.tb_solicitacao_saida.FirstOrDefault();
         // recupera a último envio da nfe
         NfeControle nfeControle = GerenciadorNFe.GetInstance().ObterPorSaida(solicitacaoSaida.codSaida).OrderBy(nfe => nfe.CodNfe).LastOrDefault();
         if (nfeControle != null && !nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_SOLICITADA))
         {
             Cursor.Current = Cursors.WaitCursor;
             if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_AUTORIZADA))
             {
                 lblCartao.Text      = "NFC-e AUTORIZADA.";
                 lblCartao.ForeColor = Color.Green;
                 btnImprimir.Enabled = true;
                 btnImprimir.Focus();
             }
             else if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_REJEITADA))
             {
                 lblCartao.Text      = "NFC-e rejeitada. " + nfeControle.MensagemSitucaoProtocoloUso;
                 lblCartao.ForeColor = Color.Red;
                 btnImprimir.Enabled = false;
                 btnCancelar.Focus();
             }
             else if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_NAO_VALIDADA))
             {
                 lblCartao.Text      = "NFC-e não validada. Alguns dos produtos do pedido precisam de atualizações no cadastro.";
                 lblCartao.ForeColor = Color.Red;
                 btnImprimir.Enabled = false;
                 btnCancelar.Focus();
             }
         }
     }
 }
예제 #7
0
        private void ExibirResultadoProcessamentoNFCe()
        {
            lblCartao.Text = "Solicitando Autorização... ";
            textNfe.Text   = "Favor aguardar.";
            Cursor.Current = Cursors.WaitCursor;
            contConsultas++;
            // recupera a último envio da nfe
            List <NfeControle> listaNfe = GerenciadorNFe.GetInstance().ObterPorSaida(codSaida).OrderBy(nfe => nfe.CodNfe).ToList();

            if (tipoNfe == DocumentoFiscal.TipoSolicitacao.NFE)
            {
                listaNfe = listaNfe.Where(nfe => nfe.Modelo.Equals(NfeControle.MODELO_NFE)).OrderBy(nfe => nfe.CodNfe).ToList();
            }
            else
            {
                listaNfe = listaNfe.Where(nfe => nfe.Modelo.Equals(NfeControle.MODELO_NFCE)).OrderBy(nfe => nfe.CodNfe).ToList();
            }

            //if (listaNfe.Count == 0)
            //{
            //    listaNfe = GerenciadorNFe.GetInstance().ObterPorSaida(codSaida).OrderBy(nfe => nfe.CodNfe).ToList();
            //}
            //else
            //{
            //    novaSolicitacao = true;
            //}
            nfeControle = listaNfe.LastOrDefault();


            if (nfeControle != null && !nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_SOLICITADA))
            {
                Cursor.Current = Cursors.WaitCursor;
                bool modeloSolicitado = (nfeControle.Modelo.Equals(NfeControle.MODELO_NFE) && (tipoNfe == DocumentoFiscal.TipoSolicitacao.NFE)) ||
                                        (nfeControle.Modelo.Equals(NfeControle.MODELO_NFCE) && (tipoNfe == DocumentoFiscal.TipoSolicitacao.NFCE));
                if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_AUTORIZADA) && modeloSolicitado)
                {
                    if (nfeControle.Modelo.Equals(NfeControle.MODELO_NFCE))
                    {
                        lblNffe.Text = "NFe CONSUMIDOR AUTORIZADA.";
                    }
                    else
                    {
                        lblNffe.Text = "NFe AUTORIZADA.";
                    }
                    lblNffe.ForeColor = Color.Green;
                    Cursor.Current    = Cursors.Default;
                    //this.Close();
                }
                if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_CONTINGENCIA_OFFLINE) && modeloSolicitado)
                {
                    if (nfeControle.Modelo.Equals(NfeControle.MODELO_NFCE))
                    {
                        lblNffe.Text = "NFe CONSUMIDOR OFF-LINE";
                    }
                    else
                    {
                        lblNffe.Text = "NFe OFF-LINE";
                    }
                    lblNffe.ForeColor = Color.Blue;
                    Cursor.Current    = Cursors.Default;
                    //this.Close();
                }
                else if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_REJEITADA))
                {
                    lblNffe.Text      = "NF REJEITADA";
                    textNfe.Text      = nfeControle.MensagemSitucaoProtocoloUso;
                    lblNffe.ForeColor = Color.Red;
                    Cursor.Current    = Cursors.Default;
                    btnCancelar.Focus();
                }
                else if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_NAO_VALIDADA))
                {
                    lblNffe.Text = "NF NÃO VALIDADA.";
                    //textNfe.Text = "Favor verificar {0} (1) NCM ausentes nos produtos {0} (2) CNPJ/CPF ou IE do cliente incorretos. {0}";
                    lblNffe.ForeColor = Color.Red;
                    Cursor.Current    = Cursors.Default;
                    Loja loja = GerenciadorLoja.GetInstance().Obter(nfeControle.CodLoja).ElementAtOrDefault(0);
                    if (loja != null)
                    {
                        DirectoryInfo Dir        = new DirectoryInfo(loja.PastaNfeErro);
                        string        numeroLote = "";
                        if (Dir.Exists)
                        {
                            string     arquivoRetornoLote = nfeControle.Chave + "-nfe.err";
                            FileInfo[] files = Dir.GetFiles(arquivoRetornoLote, SearchOption.TopDirectoryOnly);
                            if (files.Length > 0)
                            {
                                StreamReader reader = new StreamReader(files[0].FullName);
                                textNfe.Text = reader.ReadToEnd();
                            }
                        }
                    }
                }

                btnCancelar.Enabled = true;
                if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_AUTORIZADA) && modeloSolicitado)
                {
                    timerAtualizaNFCe.Enabled = false;

                    btnImprimir.Enabled = true;
                    btnImprimir.Focus();
                }
                else if (nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_CONTINGENCIA_OFFLINE) && modeloSolicitado)
                {
                    timerAtualizaNFCe.Enabled = false;

                    btnImprimir.Enabled = true;
                    btnImprimir.Focus();
                }
                else if (!nfeControle.SituacaoNfe.Equals(NfeControle.SITUACAO_SOLICITADA) && (contConsultas > 5))
                {
                    timerAtualizaNFCe.Enabled = false;
                    btnCancelar.Focus();
                }
                else
                {
                    btnCancelar.Focus();
                }
            }
        }
예제 #8
0
        private void btnImprimir_Click(object sender, EventArgs e)
        {
            NfeControle nfeControle = (NfeControle)nfeControleBindingSource.Current;

            GerenciadorNFe.GetInstance().imprimirDANFE(nfeControle);
        }
예제 #9
0
        private void btnEnviar_Click(object sender, EventArgs e)
        {
            // o evento foi disparo do butão que emite Nf-
            bool ehNfeComplementar = (sender is Button) && ((Button)sender).Name.Equals("btnComplementar");

            if (Saida.TipoSaida.Equals(Saida.TIPO_DEVOLUCAO_FORNECEDOR) || Saida.TipoSaida.Equals(Saida.TIPO_REMESSA_CONSERTO) || Saida.TipoSaida.Equals(Saida.TIPO_DEVOLUCAO_CONSUMIDOR))
            {
                if (MessageBox.Show("Deseja gerar espelho da NF-e para Validação?", "Criar Espelho da NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    // Atualiza os dados da saída
                    Saida.Observacao = observacaoTextBox.Text;
                    if (Saida.CupomFiscal.Trim().Equals(""))
                    {
                        GerenciadorSaida.GetInstance(null).AtualizarNfePorCodSaida(Saida.Nfe, Saida.Observacao, Saida.CodSaida);
                    }
                    List <SaidaPedido> listaSaidaPedido = new List <SaidaPedido>()
                    {
                        new SaidaPedido()
                        {
                            CodSaida = Saida.CodSaida, TotalAVista = Saida.TotalAVista
                        }
                    };
                    List <SaidaPagamento> listaSaidaPagamento = GerenciadorSaidaPagamento.GetInstance(null).ObterPorSaida(Saida.CodSaida);
                    GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, listaSaidaPagamento, DocumentoFiscal.TipoSolicitacao.NFE, ehNfeComplementar, true);
                }
            }

            if (MessageBox.Show("Confirma envio da NF-e?", "Enviar NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                Cursor.Current = Cursors.WaitCursor;
                // Atualiza os dados da saída
                Saida.Observacao = observacaoTextBox.Text;
                if (Saida.CupomFiscal.Trim().Equals(""))
                {
                    GerenciadorSaida.GetInstance(null).AtualizarNfePorCodSaida(Saida.Nfe, Saida.Observacao, Saida.CodSaida);
                }
                else
                {
                    GerenciadorSaida.GetInstance(null).AtualizarPorPedido(Saida.Nfe, Saida.Observacao, Cliente.CodPessoa, Saida.CupomFiscal);
                }

                NfeControle nfe = (NfeControle)nfeControleBindingSource.Current;
                if (nfe != null)
                {
                    GerenciadorNFe.GetInstance().Atualizar(nfe);
                }

                // envia nota fiscal
                Saida saida = GerenciadorSaida.GetInstance(null).Obter(Saida.CodSaida);
                List <SaidaPedido> listaSaidaPedido = new List <SaidaPedido>()
                {
                    new SaidaPedido()
                    {
                        CodSaida = Saida.CodSaida, TotalAVista = Saida.TotalAVista
                    }
                };
                List <SaidaPagamento>           listaSaidaPagamento = GerenciadorSaidaPagamento.GetInstance(null).ObterPorSaida(Saida.CodSaida);
                DocumentoFiscal.TipoSolicitacao tipoSolicitacao;
                if (Saida.CupomFiscal.Trim().Equals("") && Saida.TipoSaida.Equals(Saida.TIPO_PRE_VENDA_NFCE))
                {
                    tipoSolicitacao = DocumentoFiscal.TipoSolicitacao.NFCE;
                }
                else
                {
                    tipoSolicitacao = DocumentoFiscal.TipoSolicitacao.NFE;
                }

                GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, listaSaidaPagamento, tipoSolicitacao, ehNfeComplementar, false);
                Cursor.Current = Cursors.Default;
            }
        }
예제 #10
0
        private void btnEnviar_Click(object sender, EventArgs e)
        {
            // o evento foi disparo do butão que emite Nf-
            bool ehNfeComplementar = (sender is Button) && ((Button)sender).Name.Equals("btnComplementar");

            if (Saida.TipoSaida.Equals(Saida.TIPO_DEVOLUCAO_FORNECEDOR) || Saida.TipoSaida.Equals(Saida.TIPO_REMESSA_CONSERTO))
            {
                if (MessageBox.Show("Deseja gerar espelho da NF-e para Validação?", "Criar Espelho da NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    // Atualiza os dados da saída
                    Saida.Observacao = observacaoTextBox.Text.Trim();
                    if (Saida.CupomFiscal.Trim().Equals(""))
                    {
                        GerenciadorSaida.GetInstance(null).AtualizarNfePorCodSaida(Saida.Nfe, Saida.Observacao, Saida.CodSaida);
                    }
                    //List<SaidaPedido> listaSaidaPedido = new List<SaidaPedido>() { new SaidaPedido() { CodSaida = Saida.CodSaida, TotalAVista = Saida.TotalAVista } };
                    //List<SaidaPagamento> listaSaidaPagamento = GerenciadorSaidaPagamento.GetInstance(null).ObterPorSaida(Saida.CodSaida);
                    GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, listaSaidaPagamento, DocumentoFiscal.TipoSolicitacao.NFE, ehNfeComplementar, true);
                }
            }

            if (MessageBox.Show("Confirma envio da NF-e?", "Enviar NF-e", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                Cursor.Current = Cursors.WaitCursor;
                // Atualiza os dados da saída
                if ((Cliente == null) || Cliente.CodPessoa.Equals(Global.CLIENTE_PADRAO))
                {
                    throw new TelaException("Para emissão de uma NF-e deve-se selecionar um Cliente.");
                }
                if (Cliente.CodPessoa != Saida.CodCliente)
                {
                    Saida.CodCliente = Cliente.CodPessoa;
                    GerenciadorSaida.GetInstance(null).Atualizar(Saida);
                }
                Saida.Observacao = observacaoTextBox.Text;
                if (Saida.CupomFiscal.Trim().Equals(""))
                {
                    foreach (SaidaPedido saidaPedido in listaSaidaPedido)
                    {
                        GerenciadorSaida.GetInstance(null).AtualizarNfePorCodSaida(Saida.Nfe, Saida.Observacao, saidaPedido.CodSaida);
                    }
                }
                else
                {
                    GerenciadorSaida.GetInstance(null).AtualizarPorPedido(Saida.Nfe, Saida.Observacao, Cliente.CodPessoa, Saida.CupomFiscal);
                }
                NfeControle nfe = (NfeControle)nfeControleBindingSource.Current;
                if (nfe != null)
                {
                    GerenciadorNFe.GetInstance().Atualizar(nfe);
                }

                // envia nota fiscal
                //List<SaidaPedido> listaSaidaPedido = new List<SaidaPedido>();
                //Saida saida = GerenciadorSaida.GetInstance(null).Obter(Saida.CodSaida);
                List <SaidaPesquisa> listaSaidas            = GerenciadorSaida.GetInstance(null).ObterPorCodSaidas(listaSaidaPedido.Select(s => s.CodSaida).ToList());
                List <string>        listaDocumentosFiscais = listaSaidas.Select(s => s.CupomFiscal).Distinct().ToList();
                if (listaSaidas.Where(s => !string.IsNullOrEmpty(s.CupomFiscal)).Count() > 0)
                {
                    listaSaidas = listaSaidas.Where(s => string.IsNullOrEmpty(s.CupomFiscal)).ToList();
                    foreach (string docFiscal in listaDocumentosFiscais)
                    {
                        if (!string.IsNullOrEmpty(docFiscal))
                        {
                            listaSaidas.AddRange(GerenciadorSaida.GetInstance(null).ObterPorCupomFiscal(Saida.CupomFiscal));
                        }
                    }


                    listaSaidaPedido = new List <SaidaPedido>();
                    foreach (SaidaPesquisa s in listaSaidas)
                    {
                        listaSaidaPedido.Add(new SaidaPedido()
                        {
                            CodSaida = s.CodSaida, TotalAVista = s.TotalAVista
                        });
                    }
                    List <Conta> listaContas = GerenciadorConta.GetInstance(null).ObterPorNfe(Saida.CupomFiscal).ToList();

                    decimal        valorTotalPagamento = listaContas.Sum(c => c.Valor) - listaContas.Sum(c => c.Desconto);
                    SaidaPagamento saidaPagamento      = new SaidaPagamento();
                    FormaPagamento dinheiro            = GerenciadorFormaPagamento.GetInstance().Obter(FormaPagamento.DINHEIRO).ElementAt(0);
                    saidaPagamento.CodFormaPagamento        = FormaPagamento.DINHEIRO;
                    saidaPagamento.CodCartaoCredito         = Global.CARTAO_LOJA;
                    saidaPagamento.MapeamentoFormaPagamento = dinheiro.Mapeamento;
                    saidaPagamento.DescricaoFormaPagamento  = dinheiro.Descricao;
                    saidaPagamento.Valor = valorTotalPagamento;
                    listaSaidaPagamento.Add(saidaPagamento);
                }

                Cursor.Current = Cursors.Default;

                long codSolicitacao = GerenciadorSolicitacaoDocumento.GetInstance().InserirSolicitacaoDocumento(listaSaidaPedido, listaSaidaPagamento, DocumentoFiscal.TipoSolicitacao.NFE, ehNfeComplementar, false);
                FrmSaidaAutorizacao frmSaidaAutorizacao = new FrmSaidaAutorizacao(Saida.CodSaida, Saida.CodCliente, DocumentoFiscal.TipoSolicitacao.NFE);
                frmSaidaAutorizacao.ShowDialog();
                frmSaidaAutorizacao.Dispose();
            }
        }