コード例 #1
0
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Convert.ToDecimal(CorpoNotaFiscalForm.PreencherTextBoxComZero(this.txtQuantidade)) == 0)
                {
                    this.txtQuantidade.Focus();
                    throw new Exception("Quantidade não pode ser ZERO !");
                }
                else if (Convert.ToDecimal(CorpoNotaFiscalForm.PreencherTextBoxComZero(this.txtQuantidadeEmbalagem)) == 0)
                {
                    this.txtQuantidadeEmbalagem.Focus();
                    throw new Exception("Quantidade por Embalagem não pode ser ZERO !");
                }
                else if (Convert.ToDecimal(CorpoNotaFiscalForm.PreencherTextBoxComZero(this.txtValorUnitario)) == Convert.ToDecimal(0))
                {
                    this.txtValorUnitario.Focus();
                    this.txtValorUnitario.SelectAll();
                    throw new Exception("Custo unitário não pode ser igual á ZERO !");
                }
                else
                {
                    var retorno = new NotaFiscalDAO().ProdutoNotaFiscalManter(new ProdutoNotaFiscalModel
                    {
                        NotaFiscal             = this.notaFiscalModel,
                        Produto                = this.produtoModel,
                        Quantidade             = Convert.ToDecimal(this.txtQuantidade.Text),
                        QuantidadePorEmbalagem = Convert.ToDecimal(this.txtQuantidadeEmbalagem.Text),
                        ValorUnitario          = Convert.ToDecimal(this.txtValorUnitario.Text),
                        CustoSemImposto        = Convert.ToDecimal(this.txtCustoSemImposto.Text.Replace("R$", "")),
                        CustoComImposto        = Convert.ToDecimal(this.txtCustoComImposto.Text.Replace("R$", "")),
                        ValorTotalDoDesconto   = Convert.ToDecimal(this.txtValorDesconto.Text),
                        ValorTotalDoIcmsSt     = Convert.ToDecimal(this.txtValorIcmsSt.Text),
                        ValorTotalDoIpi        = Convert.ToDecimal(this.txtVAlorIpi.Text),
                        Observacao             = this.txtObservacao.Text
                    });
                    //
                    switch (retorno)
                    {
                    case "INSERT OK":
                        Mensagens.MensagemInformacao("Produto gravado com Sucesso !");
                        this.Close();
                        break;

                    case "UPDATE OK":
                        Mensagens.MensagemInformacao("Produto atualizado com Sucesso !");
                        this.Close();
                        break;

                    default:
                        Mensagens.MensagemErro(retorno);
                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                Mensagens.MensagemErro(exception.Message);
            }
        }
コード例 #2
0
 private void btnExcluir_Click(object sender, EventArgs e)
 {
     try
     {
         if (MessageBox.Show("Deseja realmente cancelar este lançamento ?", "Responda", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
         {
             var retorno = new NotaFiscalDAO().NotaFiscalManter(new NotaFiscalModel {
                 IdNotaFiscal = Convert.ToInt32(this.dgvVencidos.CurrentRow.Cells["clIdLancamentoAberto"].Value)
             });
             if (retorno == "DELETE OK")
             {
                 Mensagens.MensagemInformacao("Lançamento de Compras excluído com sucesso !");
                 this.CarregarDatagrid();
             }
             else
             {
                 throw new Exception(retorno);
             }
         }
     }
     catch (Exception exception)
     {
         Mensagens.MensagemErro(exception.Message);
     }
 }
コード例 #3
0
 private void ExcluirProdutoButton_Click(object sender, EventArgs e)
 {
     try
     {
         if (MessageBox.Show("Deseja realmente excluir este produto do lançamento ?", "Responda", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
         {
             var retorno = new NotaFiscalDAO().ProdutoNotaFiscalManter(new ProdutoNotaFiscalModel
             {
                 NotaFiscal = this.notaFiscalModel,
                 Produto    = new ProdutoModel {
                     IdProduto = Convert.ToInt32(this.dgvProdutos.CurrentRow.Cells["clCodigo"].Value)
                 },
                 Quantidade = 0
             });
             //
             if (retorno == "DELETE OK")
             {
                 Mensagens.MensagemInformacao("Produto excluido com sucesso !");
                 this.CarregarDatagridProdutos();
             }
             else
             {
                 throw new Exception(retorno);
             }
         }
     }
     catch (Exception exception)
     {
         Mensagens.MensagemErro(exception.Message);
     }
 }
コード例 #4
0
        public static string RemoverNotaFiscal(int id)
        {
            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            var nf = notaFiscalDAO.ObterNotaFiscalPorId(id);

            if (nf == null)
            {
                return("Erro: Nota Fiscal não encontrada");
            }

            var item = documentoUnicoExportacaoDAO.ObterItemPorNota(nf.ChaveNF, nf.DueId);

            if (item != null)
            {
                documentoUnicoExportacaoDAO.ExcluirItemDUE(item.Id);
            }

            documentoUnicoExportacaoDAO.ExcluirNotaFiscalManual(id);

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisDUE(nf.DueId);

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
コード例 #5
0
 private void CorpoNotaFiscalForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     try
     {
         if (this.acaoForm == AcaoForm.NovoLancamento && this.notaFiscalModel.IdNotaFiscal > 0 && ConfirmarLancamento == false)
         {
             if (MessageBox.Show("Deseja realmente cancelar este lançamento ?", "Responda", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
             {
                 if (this.notaFiscalModel != null)
                 {
                     this.notaFiscalModel.Fornecedor.IdFornecedor           = 0;
                     this.notaFiscalModel.Estabelecimento.IdEstabelecimento = 0;
                     var retorno = new NotaFiscalDAO().NotaFiscalManter(this.notaFiscalModel);
                     if (retorno == "DELETE OK")
                     {
                         return;
                     }
                     else
                     {
                         throw new Exception(retorno);
                     }
                 }
             }
             else
             {
                 e.Cancel = true;
             }
         }
     }
     catch (Exception exception)
     {
         Mensagens.MensagemErro(exception.Message);
     }
 }
コード例 #6
0
        public static string ExcluirGUID(string guid)
        {
            try
            {
                var _notaFiscalDAO = new NotaFiscalDAO();

                _notaFiscalDAO.ExcluiNFImportacaoConsulta(guid);
                return(string.Empty);
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível importar NFs");
            }
        }
コード例 #7
0
        protected void btnGerarExcelParcial_Click(object sender, EventArgs e)
        {
            var guid = hddnGUID.Value;

            if (string.IsNullOrEmpty(guid))
            {
                ModelState.AddModelError(string.Empty, "Ocorreu um problema ao exportar arquivo");
            }

            if (!ModelState.IsValid)
            {
                return;
            }

            var _notaFiscalDAO = new NotaFiscalDAO();

            var notas = _notaFiscalDAO.ObterNFsImportadasPorGUID(guid);

            ExcelPackage   epackage = new ExcelPackage();
            ExcelWorksheet excel    = epackage.Workbook.Worksheets.Add("CCT");

            excel.Cells["A1"].LoadFromCollection(notas.Select(c => new
            {
                c.DataRegistro,
                c.ChaveNF,
                c.SaldoCCT,
                c.PesoEntradaCCT,
                c.PesoAferido,
                c.Observacoes,
                c.Recinto,
                c.UnidadeReceita,
                c.Item,
                c.DUE,
                c.QtdeAverbada
            }), true);

            string attachment = $"attachment; filename=ArquivoNotas.xlsx";

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.AddHeader("content-disposition", attachment);
            HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            HttpContext.Current.Response.BinaryWrite(epackage.GetAsByteArray());

            HttpContext.Current.Response.End();
            epackage.Dispose();
        }
コード例 #8
0
        public static string VisualizarNF(int id)
        {
            var notaFiscalDAO = new NotaFiscalDAO();

            var nota = notaFiscalDAO.ObterNotaFiscalPorId(id);

            return(Newtonsoft.Json.JsonConvert.SerializeObject(new
            {
                nota.ChaveNF,
                nota.NumeroNF,
                nota.CnpjNF,
                nota.QuantidadeNF,
                nota.UnidadeNF,
                nota.NCM
            }));
        }
コード例 #9
0
        public static string ImportarNFs(List <string> chaves, string guid)
        {
            try
            {
                logger.Info($"{DateTime.Now} - Início consulta NF's: {String.Join(",", chaves)}");
                //ConsultaNfs cnf = new ConsultaNfs();
                var _notaFiscalDAOx = new NotaFiscalDAO();

                foreach (var chave in chaves)
                {
                    // Levi alterou aqui 08/01/2021 - pesquisava qualque coisa do txt. Se fizesse upload de arquivo errado poderia gerar milhares de consultas no siscomex.

                    string chaveaux = chave.Trim();
                    if (chaveaux.Length == 44)
                    {
                        var nf = new NotaFiscalConsultaCCT()
                        {
                            ChaveNF  = chaveaux,
                            SaldoCCT = "0.0",
                            OBS      = string.Empty
                        };

                        ValidarNotasSiscomexUnitario(nf, guid);
                    }
                    else
                    {
                        chaveaux = chaveaux + "                                                      ";
                        var nf = new NotaFiscalConsultaCCT()
                        {
                            ChaveNF      = chaveaux.Substring(0, 44),
                            DataRegistro = System.DateTime.Now.ToString(),
                            SaldoCCT     = "",
                            OBS          = "Chave inválida, somente chaves de 44 dígitos podem se consutadas. Notas formulários não estão disponíveis no Siscomex."
                        };
                        _notaFiscalDAOx.CadastrarNFImportacaoConsulta(nf, guid);
                    }
                    // até aqui
                }
                logger.Info($"{DateTime.Now} - Término consulta NF's");
                return(string.Empty);
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível importar NFs");
            }
        }
コード例 #10
0
        public static string RemoverNotaFiscalRemessa(int id)
        {
            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            var nota = notaFiscalDAO.ObterNotaFiscalPorId(id);

            if (nota == null)
            {
                return("Nota Fiscal não encontrada");
            }

            notaFiscalDAO.ExcluirNotaFiscal(id);

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisRemessaDUE(nota.ChaveNFReferencia, nota.DueId);

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
コード例 #11
0
        public static string AdicionarNotaFiscalRemessa(
            string tipo,
            string item,
            string chaveNF,
            string chaveReferenciada,
            string numero,
            string cnpj,
            string quantidade,
            string unidade,
            string ncm,
            string dueId)
        {
            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            if (!documentoUnicoExportacaoDAO.JaExisteNotaRemessaCadastrada(chaveNF, item.ToInt(), dueId.ToInt(), chaveReferenciada))
            {
                notaFiscalDAO.Cadastrar(new NotaFiscal
                {
                    TipoNF            = tipo,
                    Item              = item.ToInt() == 0 ? 1 : item.ToInt(),
                    ChaveNF           = chaveNF,
                    ChaveNFReferencia = chaveReferenciada,
                    NumeroNF          = numero,
                    CnpjNF            = cnpj,
                    QuantidadeNF      = quantidade.ToDecimal(),
                    UnidadeNF         = unidade,
                    NCM     = ncm,
                    Usuario = Convert.ToInt32(HttpContext.Current.Session["UsuarioId"].ToString()),
                    OBS     = "DUE MANUAL",
                    DueId   = dueId.ToInt()
                });
            }

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisRemessaDUE(chaveReferenciada, dueId.ToInt());

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
コード例 #12
0
        public static string VisualizarNotaFiscalRemessa(int id)
        {
            var notaFiscalDAO = new NotaFiscalDAO();

            var nota = notaFiscalDAO.ObterNotaFiscalPorId(id);

            if (nota == null)
            {
                return("Nota Fiscal não encontrada");
            }

            return(Newtonsoft.Json.JsonConvert.SerializeObject(new
            {
                nota.ChaveNF,
                nota.TipoNF,
                nota.Item,
                nota.NumeroNF,
                nota.CnpjNF,
                nota.QuantidadeNF,
                nota.UnidadeNF,
                nota.NCM
            }));
        }
コード例 #13
0
        private static void ValidarNotasSiscomexUnitario(NotaFiscalConsultaCCT notaFiscalChave, string guid)
        {
            var _notaFiscalDAO      = new NotaFiscalDAO();
            var _recintosDAO        = new RecintosDAO();
            var _unidadesReceitaDAO = new UnidadesReceitaDAO();
            var _estoqueDAO         = new EstoqueDAO(false);

            var numeroNf = string.Empty;
            var cnpjNf   = string.Empty;
            var mesNf    = string.Empty;
            var anoNf    = string.Empty;

            var chaveNf = notaFiscalChave.ChaveNF.Replace(";", "");

            if (chaveNf.Length > 30)
            {
                cnpjNf   = chaveNf.Substring(6, 14);
                numeroNf = chaveNf.Substring(25, 9);
                anoNf    = chaveNf.Substring(2, 2);
                mesNf    = chaveNf.Substring(4, 2);
            }

            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            var saldoNota = AsyncHelpers.RunSync <List <Responses.DadosNotaPreACD> >(() => ServicoSiscomex2.ConsultarDadosNotaPreACD(chaveNf, ConfigurationManager.AppSettings["CpfCertificado"].ToString()));

            stopWatch.Stop();
            LogsService.Logar("ConsultarNFs.aspx", $"Consulta Siscomex: {stopWatch.Elapsed}");

            if (saldoNota != null)
            {
                foreach (var linha in saldoNota)
                {
                    try
                    {
                        if (linha.Sucesso == false)
                        {
                            var informacoesDue = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                            string due          = "";
                            string qtdeAverbada = "";

                            if (informacoesDue != null)
                            {
                                if (informacoesDue.Any())
                                {
                                    due          = string.Join("|", informacoesDue.Select(c => c.DUE));
                                    qtdeAverbada = string.Join("|", informacoesDue.Select(c => c.Quantidade));
                                }
                            }

                            var notaFiscal = new NotaFiscalConsultaCCT
                            {
                                ChaveNF      = chaveNf,
                                OBS          = linha.Mensagem,
                                DUE          = due,
                                QtdeAverbada = qtdeAverbada
                            };

                            stopWatch.Reset();
                            stopWatch.Start();
                            _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);
                            stopWatch.Stop();
                            LogsService.Logar("ConsultarNFs.aspx", $"_notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid): {stopWatch.Elapsed}");
                        }
                        else
                        {
                            string descricaoRecinto = string.Empty;
                            string descricaoUnidade = string.Empty;

                            if (linha.Recinto != null)
                            {
                                var recintoBusca = _recintosDAO.ObterRecintos()
                                                   .Where(c => c.Id == linha.Recinto.ToInt()).FirstOrDefault();

                                if (recintoBusca != null)
                                {
                                    descricaoRecinto = recintoBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoRecinto = "Indisponível";
                            }

                            if (linha.UnidadeReceita != null)
                            {
                                var unidadeBusca = _unidadesReceitaDAO.ObterUnidadesRFB()
                                                   .Where(c => c.Codigo.ToInt() == linha.UnidadeReceita.ToInt()).FirstOrDefault();

                                if (unidadeBusca != null)
                                {
                                    descricaoUnidade = unidadeBusca.Descricao;
                                }
                            }
                            else
                            {
                                descricaoUnidade = "Indisponível";
                            }

                            stopWatch.Reset();
                            stopWatch.Start();

                            var pesos = _estoqueDAO.ObterPesoCCT(
                                linha.Recinto,
                                linha.ResponsavelIdentificacao,
                                numeroNf,
                                linha.Registro.Substring(0, 10),
                                $"{anoNf}{mesNf}");

                            var informacoesDue = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                            string due          = "";
                            string qtdeAverbada = "";

                            if (informacoesDue != null)
                            {
                                if (informacoesDue.Any())
                                {
                                    due          = string.Join("|", informacoesDue.Select(c => c.DUE));
                                    qtdeAverbada = string.Join("|", informacoesDue.Select(c => c.Quantidade));
                                }
                            }

                            stopWatch.Stop();
                            LogsService.Logar("ConsultarNFs.aspx", $"_estoqueDAO.ObterPesoCCT(): {stopWatch.Elapsed}");

                            if (pesos != null)
                            {
                                var pesoAferido = !string.IsNullOrEmpty(pesos.PesoAferido)
                                    ? pesos.PesoAferido
                                    : "Não Disponível - ";

                                if (!string.IsNullOrEmpty(pesos.MotivoNaoPesagem))
                                {
                                    pesoAferido += "Motivo não pesagem: " + pesos.MotivoNaoPesagem;
                                }

                                var notaFiscal = new NotaFiscalConsultaCCT
                                {
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    OBS            = string.Empty,
                                    Item           = linha.Item,
                                    PesoEntradaCCT = pesos.PesoEntradaCCT,
                                    PesoAferido    = pesoAferido,
                                    DUE            = due,
                                    QtdeAverbada   = qtdeAverbada
                                };

                                stopWatch.Reset();
                                stopWatch.Start();

                                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                                stopWatch.Stop();
                                LogsService.Logar("ConsultarNFs.aspx", $"Ln 489 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid) {stopWatch.Elapsed}");
                            }
                            else
                            {
                                var informacoesDues = _estoqueDAO.ObterDadosDueConsCCT(chaveNf);

                                string nrdue         = "";
                                string qtdeAverbadas = "";

                                if (informacoesDues != null)
                                {
                                    if (informacoesDues.Any())
                                    {
                                        due           = string.Join("|", informacoesDues.Select(c => c.DUE));
                                        qtdeAverbadas = string.Join("|", informacoesDues.Select(c => c.Quantidade));
                                    }
                                }

                                var notaFiscal = new NotaFiscalConsultaCCT
                                {
                                    DataRegistro   = linha.Registro,
                                    SaldoCCT       = linha.Saldo.ToString(),
                                    ChaveNF        = chaveNf,
                                    Recinto        = descricaoRecinto,
                                    UnidadeReceita = descricaoUnidade,
                                    OBS            = string.Empty,
                                    Item           = linha.Item,
                                    PesoAferido    = "Não Disponível",
                                    PesoEntradaCCT = "Não Disponível",
                                    DUE            = nrdue,
                                    QtdeAverbada   = qtdeAverbadas
                                };

                                stopWatch.Reset();
                                stopWatch.Start();

                                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                                stopWatch.Stop();
                                LogsService.Logar("ConsultarNFs.aspx", $"Ln 513 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid) {stopWatch.Elapsed}");
                            }
                        }
                    }
                    catch (Exception)
                    {
                        logger.Info($"{DateTime.Now} - Erro ao consultar NF {notaFiscalChave}");
                    }
                }
            }
            else
            {
                var notaFiscal = new NotaFiscalConsultaCCT
                {
                    ChaveNF = chaveNf,
                    OBS     = "Indisponibilidade Siscomex. Por favor, tente novamente após alguns minutos."
                };

                stopWatch.Reset();
                stopWatch.Start();

                _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid);

                stopWatch.Stop();
                LogsService.Logar("ConsultarNFs.aspx", $"Ln 539 - _notaFiscalDAO.CadastrarNFImportacaoConsulta(notaFiscal, guid); {stopWatch.Elapsed}");
            }
        }
コード例 #14
0
        //
        private void NovoProdutoButton_Click(object sender, EventArgs e)
        {
            try
            {
                switch (this.acaoForm)
                {
                case AcaoForm.NovoLancamento:
                    if (this.notaFiscalModel.IdNotaFiscal == 0)
                    {
                        if (Convert.ToInt32(this.cbbEstabelecimento.SelectedValue) == 0)
                        {
                            this.cbbEstabelecimento.Focus();
                            throw new Exception("Informe o Estabelecimento para continuar !");
                        }
                        else if (Convert.ToInt32(this.cbbFornecedor.SelectedValue) == 0)
                        {
                            this.cbbFornecedor.Focus();
                            throw new Exception("Informe o Fornecedor para continuar !");
                        }
                        else if (this.txtNumeroNotaFiscal.Text.Trim() == string.Empty)
                        {
                            this.txtNumeroNotaFiscal.Focus();
                            throw new Exception("Informe o Número da Nota Fiscal para continuar !");
                        }
                        else if (this.txtTotalNotaFiscal.Text.Trim() == string.Empty)
                        {
                            this.txtTotalNotaFiscal.Focus();
                            throw new Exception("Informe o valor total da Nota Fiscal para continuar !");
                        }
                        else if (Convert.ToDateTime(this.dtpDataEmissao.Value.ToShortDateString()) > Convert.ToDateTime(this.dtpDataEntrada.Value.ToShortDateString()))
                        {
                            throw new Exception("Data de entrada não pode ser maior que a data de Emissão !");
                        }
                        else if (this.dtpDataEmissao.Value > DateTime.Now)
                        {
                            this.dtpDataEmissao.Focus();
                            throw new Exception("Data de emissão não pode ser maior que a data Atual !");
                        }

                        this.notaFiscalModel = new NotaFiscalModel
                        {
                            Estabelecimento = new EstabelecimentoModel {
                                IdEstabelecimento = Convert.ToInt32(this.cbbEstabelecimento.SelectedValue)
                            },
                            Fornecedor = new FornecedorModel {
                                IdFornecedor = Convert.ToInt32(this.cbbFornecedor.SelectedValue)
                            },
                            DataEmissaoInicial    = this.dtpDataEmissao.Value,
                            DataEntradaInicial    = this.dtpDataEntrada.Value,
                            NumeroNotaFiscal      = this.txtNumeroNotaFiscal.Text,
                            ValorTotalDaNota      = Convert.ToDecimal(PreencherTextBoxComZero(this.txtTotalNotaFiscal)),//Convert.ToDecimal(this.txtTotalNotaFiscal.Text),
                            ValorTotalDasDespesas = Convert.ToDecimal(PreencherTextBoxComZero(this.txtTotalDespesas)),
                            ValorTotalDoIcmsSt    = Convert.ToDecimal(PreencherTextBoxComZero(this.txtTotalIcms)),
                            ValorTotalDoIpi       = Convert.ToDecimal(PreencherTextBoxComZero(this.txtTotalIpi))
                        };
                        var retorno = new NotaFiscalDAO().NotaFiscalManter(notaFiscalModel);
                        //
                        if (Char.IsNumber(retorno, 0))
                        {
                            this.notaFiscalModel.IdNotaFiscal = Convert.ToInt32(retorno);    //new NotaFiscalModel { IdNotaFiscal = IdNotaFiscal = Convert.ToInt32(retorno) };
                            using (var f = new ProdutoLancamentoNotaFiscalForm(new ProdutoNotaFiscalModel {
                                NotaFiscal = this.notaFiscalModel
                            }))
                            {
                                this.BloquearControles();
                                f.ShowDialog();
                            }
                        }
                        else
                        {
                            throw new Exception(retorno);
                        }
                    }
                    else
                    {
                        using (var f = new ProdutoLancamentoNotaFiscalForm(new ProdutoNotaFiscalModel {
                            NotaFiscal = this.notaFiscalModel
                        }))
                        {
                            this.BloquearControles();
                            f.ShowDialog();
                        }
                    }
                    break;

                case AcaoForm.AlterarLancamento:
                    using (var f = new ProdutoLancamentoNotaFiscalForm(new ProdutoNotaFiscalModel {
                        NotaFiscal = this.notaFiscalModel
                    }))
                    {
                        f.ShowDialog();
                    }
                    break;
                }
                //
                this.CarregarDatagridProdutos();
            }
            catch (Exception exception)
            {
                Mensagens.MensagemErro(exception.Message);
            }
        }
コード例 #15
0
 public ControladorNotaFiscal()
 {
     this.notaFiscalDAO = NotaFiscalDAO.Instance;
 }
コード例 #16
0
        public static string AdicionarNotaFiscal(
            string chaveNF,
            string numero,
            string cnpj,
            string quantidade,
            string unidade,
            string ncm,
            string dueId,
            string vmcv,
            string vmle)
        {
            if (!string.IsNullOrEmpty(chaveNF))
            {
                chaveNF = chaveNF.Replace(" ", "");
            }

            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            var dueBusca = documentoUnicoExportacaoDAO.ObterDUEPorId(dueId.ToInt());

            var atributosCafe = dueBusca.Attr_Padrao_Qualidade_Default + dueBusca.Attr_Tipo_Default + dueBusca.Attr_Embarque_Em_Default +
                                dueBusca.Attr_Caracteristica_Especial_Default + dueBusca.Attr_Outra_Caracteristica_Especial_Default + dueBusca.Attr_Metodo_Processamento_Default;

            if (ncm != "09011110" && ncm != "09011190" && ncm != "09011200" && ncm != "09012100" && ncm != "09012200" && ncm != "21011110" && ncm != "21011190" && ncm != "21011200")
            {
                if (!string.IsNullOrEmpty(atributosCafe))
                {
                    return(@"<strong>Alerta:</strong> Você informou atributos de café nas informações default, mas o NCM da nota que está sendo cadastrada é diferente de NCMs para exportação de café.");
                }
            }

            if (dueBusca != null)
            {
                var itensDue = documentoUnicoExportacaoDAO
                               .ObterItensDUE(dueId.ToInt())
                               .Where(c => !string.IsNullOrEmpty(c.NF))
                               .ToList();

                if (itensDue.Any() && (dueBusca.Completa == 0 || dueBusca.CriadoPorNF == 0))
                {
                    return(@"<strong>Alerta: Não é possível cadastrar Notas de forma manual para uma DUE que já contém itens ou que não foi criada de forma automática.</strong> <br /><br/>
                            Opção 1: Caso necessite vincular uma Nota Fiscal para um item já existente, utilize a opção do menu 'Vincular DUE com NF' ou importe o arquivo de notas.<br /><br/>
                            Opção 2: Caso necessite cadastrar as Notas Fiscais manualmente, exclua os itens já existentes nesta DUE (o sistema irá recria-los de forma automática).");
                }

                if (!documentoUnicoExportacaoDAO.JaExisteNotaCadastrada(chaveNF, dueId.ToInt()))
                {
                    notaFiscalDAO.Cadastrar(new NotaFiscal
                    {
                        TipoNF       = "EXP",
                        Item         = 1,
                        ChaveNF      = chaveNF,
                        NumeroNF     = numero,
                        CnpjNF       = cnpj,
                        QuantidadeNF = quantidade.ToDecimal(),
                        UnidadeNF    = unidade,
                        NCM          = ncm,
                        Usuario      = Convert.ToInt32(HttpContext.Current.Session["UsuarioId"].ToString()),
                        OBS          = "DUE MANUAL",
                        DueId        = dueId.ToInt()
                    });
                }

                var id = documentoUnicoExportacaoDAO.RegistrarItemDUE(new DUEItem
                {
                    DueId         = dueId.ToInt(),
                    NF            = chaveNF,
                    ValorUnitVMLE = vmle.ToDecimal(),
                    ValorUnitVMCV = vmcv.ToDecimal(),
                    CondicaoVenda = dueBusca.CondicaoVenda_Default
                });

                if (id > 0)
                {
                    documentoUnicoExportacaoDAO.MarcarComoAutomatica(dueBusca.Id);

                    decimal resultadoVMLE   = 0;
                    decimal resultadoVMCV   = 0;
                    decimal quantidadeTotal = 0;

                    if (unidade == "TON")
                    {
                        resultadoVMLE   = (((quantidade.ToDecimal() * 1000) * (dueBusca.ValorUnitVMLE_Default / 1000)));
                        resultadoVMCV   = (((quantidade.ToDecimal() * 1000) * (dueBusca.ValorUnitVMCV_Default / 1000)));
                        quantidadeTotal = (quantidade.ToDecimal() * 1000);
                    }
                    else
                    {
                        resultadoVMLE   = (((quantidade.ToDecimal()) * (dueBusca.ValorUnitVMLE_Default / 1000)));
                        resultadoVMCV   = (((quantidade.ToDecimal()) * (dueBusca.ValorUnitVMCV_Default / 1000)));
                        quantidadeTotal = quantidade.ToDecimal();
                    }

                    var dueDetalhe = new DUEItemDetalhes(
                        id,
                        1,
                        resultadoVMLE,
                        dueBusca.PaisDestino_Default,
                        quantidade.ToDecimal(),
                        ncm,
                        resultadoVMCV,
                        quantidade.ToDecimal(),
                        quantidadeTotal,
                        dueBusca.Enquadramento1_Default,
                        dueBusca.Enquadramento2_Default,
                        dueBusca.Enquadramento3_Default,
                        dueBusca.Enquadramento4_Default,
                        dueBusca.DescricaoComplementar_Default,
                        dueBusca.Attr_Padrao_Qualidade_Default,
                        dueBusca.Attr_Embarque_Em_Default,
                        dueBusca.Attr_Tipo_Default,
                        dueBusca.Attr_Metodo_Processamento_Default,
                        dueBusca.Attr_Caracteristica_Especial_Default,
                        dueBusca.Attr_Outra_Caracteristica_Especial_Default,
                        dueBusca.Attr_Embalagem_Final_Default);

                    var itemDetalheId = documentoUnicoExportacaoDAO.RegistrarDUEItemDetalhe(dueDetalhe);

                    if (itemDetalheId > 0)
                    {
                        if (!string.IsNullOrEmpty(dueBusca.LPCO_Default))
                        {
                            if (dueBusca.Enquadramento1_Default == 80380 || dueBusca.Enquadramento2_Default == 80380 || dueBusca.Enquadramento3_Default == 80380 || dueBusca.Enquadramento4_Default == 80380)
                            {
                                var lpcos = dueBusca.LPCO_Default.Split(',');

                                foreach (var lpco in lpcos)
                                {
                                    documentoUnicoExportacaoDAO.RegistrarLPCO(new DUEItemDetalhesLPCO(itemDetalheId, lpco));
                                }
                            }
                        }
                    }
                }
            }

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisDUE(dueId.ToInt());

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
コード例 #17
0
        public static int ObterTotalNFsImportadas(string guid)
        {
            var _notaFiscalDAO = new NotaFiscalDAO();

            return(_notaFiscalDAO.ObterTotalNFsImportadasPorGUID(guid));
        }
コード例 #18
0
        public static string ImportarNFs(List <string> chaves, string guid)
        {
            try
            {
                logger.Info($"{DateTime.Now} - Início consulta NF's: {String.Join(",", chaves)}");
                //ConsultaNfs cnf = new ConsultaNfs();
                var _notaFiscalDAOx = new NotaFiscalDAO();

                foreach (var chave in chaves)
                {
                    // Levi alterou aqui 08/01/2021 - pesquisava qualque coisa do txt. Se fizesse upload de arquivo errado poderia gerar milhares de consultas no siscomex.

                    string chaveaux = chave.Trim();
                    if (chaveaux.Length == 44)
                    {
                        var nf = new NotaFiscalConsultaCCT()
                        {
                            ChaveNF  = chaveaux,
                            SaldoCCT = "0.0",
                            OBS      = string.Empty
                        };

                        var chaveNf       = chave.Replace(";", "");
                        var cnpjNf        = chave.Substring(6, 14);
                        var numeroNf      = chave.Substring(25, 9);
                        var anoNf         = chave.Substring(2, 2);
                        var mesNf         = chave.Substring(4, 2);
                        var DataEmissaoNF = $"{anoNf}{mesNf}";
                        var filtro        = (" AND CnpjDestinatario ='" + cnpjNf + "' AND NumeroNF = " + numeroNf + " AND [NotaFiscalEmissao] = " + DataEmissaoNF);

                        var _estoqueDAO = new EstoqueDAO(false);

                        var ds = _estoqueDAO.GerarCsvEstoque(filtro.ToString());

                        if (ds.Rows.Count > 0)
                        {
                            nf.DataRegistro   = ds.Rows[0].ItemArray[7].ToString();                           //DataHoraEntradaEstoque
                            nf.SaldoCCT       = String.Format("{0:#########.000}", ds.Rows[0].ItemArray[53]); //saldoatual ("#########.###")
                            nf.ChaveNF        = chaveaux.Substring(0, 44);
                            nf.Recinto        = ds.Rows[0].ItemArray[19].ToString();                          // CodigoRA;
                            nf.UnidadeReceita = ds.Rows[0].ItemArray[23].ToString();                          //CodigoURF;
                            nf.OBS            = "Pesquisado no banco de dados interno";
                            nf.Item           = Convert.ToInt32(ds.Rows[0].ItemArray[52].ToString());         //item;
                            nf.PesoEntradaCCT = ds.Rows[0].ItemArray[5].ToString();                           //saldo;
                            nf.PesoAferido    = ds.Rows[0].ItemArray[4].ToString();                           //pesoaferido
                            nf.DUE            = "";
                            nf.QtdeAverbada   = "";



                            _notaFiscalDAOx.CadastrarNFImportacaoConsulta(nf, guid);
                        }
                        else
                        {
                            ValidarNotasSiscomexUnitario(nf, guid);
                        }
                    }
                    else
                    {
                        chaveaux = chaveaux + "                                                      ";
                        var nf = new NotaFiscalConsultaCCT()
                        {
                            ChaveNF      = chaveaux.Substring(0, 44),
                            DataRegistro = System.DateTime.Now.ToString(),
                            SaldoCCT     = "",
                            OBS          = "Chave inválida, somente chaves de 44 dígitos podem se consutadas. Notas formulários não estão disponíveis no Siscomex."
                        };
                        _notaFiscalDAOx.CadastrarNFImportacaoConsulta(nf, guid);
                    }
                    // até aqui
                }
                logger.Info($"{DateTime.Now} - Término consulta NF's");
                return(string.Empty);
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível importar NFs");
            }
        }