public ActionResult Edit(int id = 0)
        {
            NotaFiscal model = new NotaFiscal();

            model.produto    = new Produto();
            model.cliente    = new Cliente();
            model.fornecedor = new Fornecedor();
            List <SelectListItem> clientes     = new List <SelectListItem>();
            List <SelectListItem> fornecedores = new List <SelectListItem>();
            List <SelectListItem> produtos     = new List <SelectListItem>();

            using (NotaFiscalModel acoes = new NotaFiscalModel())
            {
                clientes     = acoes.ListarClientes();
                fornecedores = acoes.ListarFornecedores();
                produtos     = acoes.ListarProdutos(new Fornecedor());
                if (id > 0)
                {
                    model = acoes.ObterNota(id);
                }
            }
            model.ListaClientes   = clientes;
            model.ListaProdutos   = produtos;
            model.ListaFornecedor = fornecedores;
            return(View("Create", model));
        }
        //
        public string NotaFiscalManter(NotaFiscalModel notaFiscalModel)
        {
            var retorno = string.Empty;

            //
            try
            {
                this.dbCore.LimparParametros();
                //
                this.dbCore.ComandoAdicionarParametro("@id_nota_fiscal", notaFiscalModel.IdNotaFiscal);
                this.dbCore.ComandoAdicionarParametro("@id_estabelecimento", notaFiscalModel.Estabelecimento.IdEstabelecimento);
                this.dbCore.ComandoAdicionarParametro("@id_fornecedor", notaFiscalModel.Fornecedor.IdFornecedor);
                this.dbCore.ComandoAdicionarParametro("@numero_nota_fiscal", notaFiscalModel.NumeroNotaFiscal);
                this.dbCore.ComandoAdicionarParametro("@data_emissao", notaFiscalModel.DataEmissaoInicial);
                this.dbCore.ComandoAdicionarParametro("@data_entrada", notaFiscalModel.DataEntradaInicial);
                this.dbCore.ComandoAdicionarParametro("@valor_total_nota_fiscal", notaFiscalModel.ValorTotalDaNota);
                this.dbCore.ComandoAdicionarParametro("@valor_total_icms_st", notaFiscalModel.ValorTotalDoIcmsSt);
                this.dbCore.ComandoAdicionarParametro("@valor_total_ipi", notaFiscalModel.ValorTotalDoIpi);
                this.dbCore.ComandoAdicionarParametro("@valor_total_depesa", notaFiscalModel.ValorTotalDasDespesas);
                //
                retorno = this.dbCore.ExecutarComando("usp_nota_fiscal_manter");
            }
            catch (Exception)
            {
                throw;
            }
            //
            return(retorno);
        }
Example #3
0
        public override async void OnNavigatedTo(INavigationParameters parameters)
        {
            var notas = App.ProdutoDatabase.Get();

            if (parameters.ContainsKey("url"))
            {
                IsBusy = true;
                string          url  = parameters["url"].ToString();
                NotaFiscalModel nota = await App.ConsultaAPI.SearchItens(url);

                if (nota != null)
                {
                    Notas.Add(nota);
                }
                else
                {
                    await PageDialogService.DisplayAlertAsync("QRCode", "Não foi possivel abrir QRCode.", "Ok");
                }

                IsBusy = false;
                //await PageDialogService.DisplayAlertAsync("URL", parameters["url"].ToString(), "Cancel");
            }
            else if (parameters.ContainsKey("nota"))
            {
            }
        }
        public ActionResult Remove(NotaFiscal nota)
        {
            using (NotaFiscalModel model = new NotaFiscalModel())
            {
                model.ExcluirNota(nota);

                return(Json("Item removido com sucesso", JsonRequestBehavior.AllowGet));
            }
        }
        private static Destinatario GetDestinatario(NotaFiscalModel notaFiscal, Ambiente ambiente, Modelo _modelo)
        {
            if (notaFiscal.DestinatarioSelecionado.Documento == null &&
                string.IsNullOrEmpty(notaFiscal.Documento))
            {
                return(null);
            }

            string            documento, nomeRazao, inscricaoEstadual = null;
            DestinatarioModel destinatarioSelecionado = null;
            Endereco          endereco = null;

            if (notaFiscal.DestinatarioSelecionado.Documento != null)
            {
                destinatarioSelecionado = notaFiscal.DestinatarioSelecionado;

                if (notaFiscal.DestinatarioSelecionado.Endereco.Logradouro != null)
                {
                    var enderecoModel = notaFiscal.DestinatarioSelecionado.Endereco;
                    endereco = new Endereco(enderecoModel.Logradouro, enderecoModel.Numero, enderecoModel.Bairro,
                                            enderecoModel.Municipio, enderecoModel.CEP, enderecoModel.UF);
                }

                inscricaoEstadual = notaFiscal.DestinatarioSelecionado?.InscricaoEstadual;
                documento         = notaFiscal.DestinatarioSelecionado.Documento;
                nomeRazao         = notaFiscal.DestinatarioSelecionado.NomeRazao;
            }
            else
            {
                documento = notaFiscal.Documento;
                nomeRazao = "CONSUMIDOR NÃO IDENTIFICADO";
            }

            TipoDestinatario tipoDestinatario;

            if (notaFiscal.IsEstrangeiro)
            {
                tipoDestinatario = TipoDestinatario.Estrangeiro;
            }
            else if (documento.Length == 11)
            {
                tipoDestinatario = TipoDestinatario.PessoaFisica;
            }
            else
            {
                tipoDestinatario = TipoDestinatario.PessoaJuridica;
            }


            var destinatario = new Destinatario(ambiente, _modelo, destinatarioSelecionado?.Telefone,
                                                destinatarioSelecionado?.Email, endereco, tipoDestinatario, inscricaoEstadual, documento: documento,
                                                nomeRazao: nomeRazao);

            return(destinatario);
        }
Example #6
0
        private async void OpenQRCode()
        {
            NotaFiscalModel nota = await App.ConsultaAPI.SearchItens("https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?p=43191187397865002165652070001264771004360527|2|1|1|3B9666B4B19EDA74307BAE1F059795CA425F036A");

            NavigationParameters pairs = new NavigationParameters
            {
                { "nota", nota }
            };
            //await NavigationService.NavigateAsync("BarcodePage");
            await NavigationService.NavigateAsync("ProdutoPage", pairs);
        }
 // GET: NotaFiscal
 public ActionResult Index(string msgSucesso = "")
 {
     using (NotaFiscalModel model = new NotaFiscalModel())
     {
         List <NotaFiscal> lista = model.ListarNota();
         if (!string.IsNullOrEmpty(msgSucesso))
         {
             ViewBag.MsgSucesso = msgSucesso;
         }
         return(View(lista));
     }
 }
Example #8
0
        public async Task EnviarNota(NotaFiscalModel NotaFiscal, Modelo _modelo, IClosable closable)
        {
            if (!NotaFiscal.NaturezaOperacao.Equals("Venda"))
            {
                NotaFiscal.Pagamentos = new ObservableCollection <PagamentoVO>()
                {
                    new PagamentoVO()
                    {
                        FormaPagamento = "Sem Pagamento"
                    }
                };
            }

            NotaFiscal.ValidateModel();

            if (NotaFiscal.HasErrors)
            {
                return;
            }

            BusyContent = "Enviando...";
            IsBusy      = true;

            try
            {
                var notaFiscal = await _enviarNotaController.EnviarNota(NotaFiscal, _modelo);

                IsBusy = false;
                bool result = await _dialogService.ShowMessage("Nota enviada com sucesso! Deseja imprimi-la?", "Emissão NFe", "Sim", "Não", null);

                if (result)
                {
                    BusyContent = "Gerando impressão...";
                    IsBusy      = true;
                    await _enviarNotaController.ImprimirNotaFiscal(notaFiscal);
                }
            }
            catch (ArgumentException e)
            {
                log.Error(e);
                await _dialogService.ShowError("Ocorreram os seguintes erros ao tentar enviar a nota fiscal:\n\n" + e.InnerException.Message, "Erro", "Ok", null);
            }
            catch (Exception e)
            {
                log.Error(e);
                await _dialogService.ShowError("Ocorreram os seguintes erros ao tentar enviar a nota fiscal:\n\n" + e.InnerException.Message, "Erro", "Ok", null);
            }
            finally
            {
                IsBusy = false;
                closable.Close();
            }
        }
        public async Task <Core.NotasFiscais.NotaFiscal> EnviarNota(NotaFiscalModel notaFiscalModel, Modelo modelo)
        {
            notaFiscalModel.ValidateModel();

            if (notaFiscalModel.HasErrors)
            {
                throw new ArgumentException("Nota fiscal contém erros de validação não resolvidos.");
            }

            if (notaFiscalModel.Pagamentos[0].FormaPagamento != "Sem Pagamento" &&
                notaFiscalModel.Produtos.Sum(c => c.QtdeProduto * c.ValorUnitario) !=
                notaFiscalModel.Pagamentos.Sum(p => p.QtdeParcelas * p.ValorParcela))
            {
                await _dialogService.ShowError("Valor total da nota não corresponde ao valor de pagamento.",
                                               "Erro!", "Ok", null);

                throw new ArgumentException("Valor total da nota não corresponde ao valor de pagamento.");
            }

            Core.NotasFiscais.NotaFiscal notaFiscal = null;
            var config   = _configuracaoService.GetConfiguracao();
            var ambiente = config.IsProducao ? Ambiente.Producao : Ambiente.Homologacao;

            await Task.Run(() =>
            {
                var modeloNota = modelo;
                const TipoEmissao tipoEmissao = TipoEmissao.Normal; //verificar status do serviço e etc
                var destinatario   = GetDestinatario(notaFiscalModel, ambiente, modelo);
                var documentoDanfe =
                    destinatario != null ? destinatario.DocumentoDanfe : "CPF"; //Encapsular isso aqui
                var emitente = _emissorService.GetEmissor();
                var codigoUF = (CodigoUfIbge)Enum.Parse(typeof(CodigoUfIbge), emitente.Endereco.UF);

                var identificacao = GetIdentificacao(notaFiscalModel, codigoUF, DateTime.Now, emitente, modeloNota,
                                                     Convert.ToInt32(notaFiscalModel.Serie), notaFiscalModel.Numero, tipoEmissao, ambiente, documentoDanfe);
                var produtos      = GetProdutos(notaFiscalModel, config);
                var pagamentos    = GetPagamentos(notaFiscalModel);
                var totalNFe      = GetTotalNFe(notaFiscalModel);
                var infoAdicional = new InfoAdicional(produtos);
                var transporte    = GetTransporte(notaFiscalModel, modelo);

                notaFiscal = new Core.NotasFiscais.NotaFiscal(emitente, destinatario, identificacao, transporte,
                                                              totalNFe, infoAdicional, produtos, pagamentos);

                var cscId = ambiente == Ambiente.Homologacao ? config.CscIdHom : config.CscId;
                var csc   = ambiente == Ambiente.Homologacao ? config.CscHom : config.Csc;
                _enviaNotaFiscalService.EnviarNotaFiscal(notaFiscal, cscId, csc);
            });

            NotaEnviadaEvent(notaFiscal);
            return(notaFiscal);
        }
Example #10
0
 public ProdutoLancamentoNotaFiscalForm(ProdutoNotaFiscalModel produtoNotaFiscalModel)
 {
     try
     {
         InitializeComponent();
         //
         this.notaFiscalModel = produtoNotaFiscalModel.NotaFiscal;
         //
         if (produtoNotaFiscalModel.Produto.IdProduto > 0)
         {
             this.txtCodigo.Text = produtoNotaFiscalModel.Produto.IdProduto.ToString();
             foreach (DataRow dtRow in new ProdutoDAO().ProdutoListByAll(this.txtCodigo.Text, this.notaFiscalModel.Estabelecimento.IdEstabelecimento).Rows)
             {
                 this.produtoModel = new ProdutoModel
                 {
                     IdProduto    = Convert.ToInt32(dtRow["id_produto"]),
                     NomeProduto  = dtRow["nome_produto"].ToString(),
                     Departamento = new DepartamentoProdutoModel
                     {
                         IdDepartamento   = Convert.ToInt32(dtRow["id_departamento"]),
                         NomeDepartamento = dtRow["nome_departamento"].ToString()
                     },
                     PrecoCusto = Convert.ToDecimal(dtRow["preco_custo"]),
                     PrecoVenda = Convert.ToDecimal(dtRow["preco_venda"])
                 };
             }
             //this.produtoModel = new ProdutoDAO().ProdutoListByAll(this.txtCodigo.Text).Single();
             //
             this.txtNomeProduto.Text         = this.produtoModel.NomeProduto;
             this.txtQuantidade.Text          = produtoNotaFiscalModel.Quantidade.ToString("N2");
             this.txtQuantidadeEmbalagem.Text = produtoNotaFiscalModel.QuantidadePorEmbalagem.ToString("N2");
             this.txtValorUnitario.Text       = produtoNotaFiscalModel.ValorUnitario.ToString("N2");
             this.txtCustoSemImposto.Text     = produtoNotaFiscalModel.CustoSemImposto.ToString("N2");
             this.txtCustoComImposto.Text     = produtoNotaFiscalModel.CustoComImposto.ToString("N2");
             this.txtValorIcmsSt.Text         = produtoNotaFiscalModel.ValorTotalDoIcmsSt.ToString("N2");
             this.txtVAlorIpi.Text            = produtoNotaFiscalModel.ValorTotalDoIpi.ToString("N2");
             this.txtValorDesconto.Text       = produtoNotaFiscalModel.ValorTotalDoDesconto.ToString("N2");
             this.txtObservacao.Text          = produtoNotaFiscalModel.Observacao.ToString();
             this.Text = "Alteração de lançamento de produto";
             this.txtCodigo.ReadOnly       = true;
             this.txtCodigo.BackColor      = Color.White;
             this.txtNomeProduto.ReadOnly  = true;
             this.txtNomeProduto.BackColor = Color.White;
             this.btnProduto.Enabled       = false;
             this.CalcularCusto();
         }
     }
     catch (Exception exception)
     {
         Mensagens.MensagemErro(exception.Message);
     }
 }
        private static IdentificacaoNFe GetIdentificacao(NotaFiscalModel NotaFiscal, CodigoUfIbge codigoUF, DateTime now,
                                                         Emissor emitente, Modelo modeloNota,
                                                         int serie, string numeroNFe, TipoEmissao tipoEmissao, Ambiente ambiente, string documentoDanfe)
        {
            var finalidadeEmissao = (FinalidadeEmissao)Enum.Parse(typeof(FinalidadeEmissao), Acentuacao.RemoverAcentuacao(NotaFiscal.Finalidade));

            var identificacao = new IdentificacaoNFe(codigoUF, now, emitente.CNPJ, modeloNota, serie, numeroNFe,
                                                     tipoEmissao, ambiente, emitente,
                                                     NotaFiscal.NaturezaOperacao, finalidadeEmissao, NotaFiscal.IsImpressaoBobina,
                                                     NotaFiscal.IndicadorPresenca, documentoDanfe);

            return(identificacao);
        }
Example #12
0
 public ProdutosNotaFiscalForm(NotaFiscalModel notaFiscalModel)
 {
     try
     {
         InitializeComponent();
         this.notaFiscalModel = notaFiscalModel;
         this.CarregarDatagridProdutos();
     }
     catch (Exception exception)
     {
         Mensagens.MensagemErro(exception.Message);
     }
 }
Example #13
0
        public ActionResult Relatorio(int id = 0)
        {
            List <NotaFiscal> lista = new List <NotaFiscal>();

            using (NotaFiscalModel acoes = new NotaFiscalModel())
            {
                if (id > 0)
                {
                    lista = acoes.ListarNotasPorProduto(id);
                }
            }

            return(View("Relatorio", lista));
        }
Example #14
0
        public ActionResult Create(NotaFiscal nota)
        {
            using (NotaFiscalModel model = new NotaFiscalModel())
            {
                nota.DataNotaFiscal = DateTime.Now;
                if (nota.IdNotaFiscal > 0)
                {
                    model.AtualizarNota(nota);
                }
                else
                {
                    model.IncluirNota(nota);
                }
            }

            return(Json("Item salvo com sucesso", JsonRequestBehavior.AllowGet));
        }
Example #15
0
        public async Task EnviarNota(NotaFiscalModel NotaFiscal, Modelo _modelo, IClosable closable)
        {
            NotaFiscal.ValidateModel();

            if (NotaFiscal.HasErrors)
            {
                return;
            }

            BusyContent = "Enviando...";
            IsBusy      = true;
            try
            {
                var notaFiscal = await _enviarNotaController.EnviarNota(NotaFiscal, _modelo);

                IsBusy = false;
                var result = await _dialogService.ShowMessage("Nota enviada com sucesso! Deseja imprimi-la?", "Emissão NFe", "Sim", "Não", null);

                if (result)
                {
                    BusyContent = "Gerando impressão...";
                    IsBusy      = true;
                    await _enviarNotaController.ImprimirNotaFiscal(notaFiscal);
                }
            }
            catch (ArgumentException e)
            {
                log.Error(e);
                var erro = e.Message + "\n" + e.InnerException?.Message;
                await _dialogService.ShowError("Ocorreram os seguintes erros ao tentar enviar a nota fiscal:\n\n" + erro, "Erro", "Ok", null);
            }
            catch (Exception e)
            {
                log.Error(e);
                var erro = e.Message + "\n" + e.InnerException?.Message;
                await _dialogService.ShowError("Ocorreram os seguintes erros ao tentar enviar a nota fiscal:\n\n" + erro, "Erro", "Ok", null);
            }
            finally
            {
                IsBusy = false;
                closable.Close();
            }
        }
 //
 public DataTable DataTableNotaFiscal(NotaFiscalModel notaFiscalModel)
 {
     try
     {
         this.dbCore.LimparParametros();
         //
         this.dbCore.ComandoAdicionarParametro("@id_estabelecimento", notaFiscalModel.Estabelecimento.IdEstabelecimento);
         this.dbCore.ComandoAdicionarParametro("@id_fornecedor", notaFiscalModel.Fornecedor.IdFornecedor);
         this.dbCore.ComandoAdicionarParametro("@data_entrada_inicial", notaFiscalModel.DataEntradaInicial);
         this.dbCore.ComandoAdicionarParametro("@data_entrada_final", notaFiscalModel.DataEntradaFinal);
         this.dbCore.ComandoAdicionarParametro("@data_emissao_inicial", notaFiscalModel.DataEmissaoInicial);
         this.dbCore.ComandoAdicionarParametro("@data_emissao_final", notaFiscalModel.DataEmissaoFinal);
         //
         return(this.dbCore.ExecutarConsulta("usp_nota_fiscal_sel"));
     }
     catch (Exception)
     {
         throw;
     }
 }
        private List <Produto> GetProdutos(NotaFiscalModel notaFiscal, ConfiguracaoEntity config)
        {
            var idsProdutosSelecionados = notaFiscal.Produtos.Select(p => p.ProdutoSelecionado.Id);
            var produtosTo = _produtoService.GetAll().Where(p => idsProdutosSelecionados.Contains(p.Id));
            var produtos   = new List <Produto>();

            foreach (var produtoNota in notaFiscal.Produtos)
            {
                var produtoEntity = produtosTo.First(c => c.Id == produtoNota.ProdutoSelecionado.Id);

                var produto = new Produto(produtoEntity.GrupoImpostos, produtoEntity.Id,
                                          produtoEntity.GrupoImpostos.CFOP, produtoEntity.Codigo, produtoEntity.Descricao, produtoEntity.NCM,
                                          notaFiscal.Produtos.First(p => p.ProdutoSelecionado.Id == produtoEntity.Id).QtdeProduto,
                                          produtoEntity.UnidadeComercial,
                                          produtoNota.ValorUnitario, produtoNota.Descontos, !config.IsProducao);

                produtos.Add(produto);
            }

            return(produtos);
        }
        private static List <Pagamento> GetPagamentos(NotaFiscalModel NotaFiscal)
        {
            var pagamentosNf = new List <Pagamento>();

            foreach (var pagamento in NotaFiscal.Pagamentos)
            {
                FormaPagamento formaPagamento;

                switch (pagamento.FormaPagamento)
                {
                case "Dinheiro":
                    formaPagamento = FormaPagamento.Dinheiro;
                    break;

                case "Cheque":
                    formaPagamento = FormaPagamento.Cheque;
                    break;

                case "Cartão de Crédito":
                    formaPagamento = FormaPagamento.CartaoCredito;
                    break;

                case "Cartão de Débito":
                    formaPagamento = FormaPagamento.CartaoDebito;
                    break;

                case "Sem Pagamento":
                    formaPagamento = FormaPagamento.SemPagamento;
                    break;

                default:
                    throw new ArgumentException();
                }

                pagamentosNf.Add(new Pagamento(formaPagamento, pagamento.QtdeParcelas * pagamento.ValorParcela));
            }

            return(pagamentosNf);
        }
        private static TotalNFe GetTotalNFe(NotaFiscalModel NotaFiscal)
        {
            double sumValorTotal         = 0;
            double sumValorTotalFrete    = 0;
            double sumValorTotalSeguro   = 0;
            double sumValorTotalDesconto = 0;

            foreach (var produto in NotaFiscal.Produtos)
            {
                sumValorTotal         += produto.TotalLiquido;
                sumValorTotalFrete    += produto.Frete;
                sumValorTotalSeguro   += produto.Seguro;
                sumValorTotalDesconto += produto.Descontos;
            }

            var totalNFe = new TotalNFe {
                IcmsTotal = new IcmsTotal()
            };
            var icmsTotal = totalNFe.IcmsTotal;

            icmsTotal.BaseCalculo             = 0.00;
            icmsTotal.ValorTotalIcms          = 0.00;
            icmsTotal.ValorTotalDesonerado    = 0.00;
            icmsTotal.BaseCalculoST           = 0.00;
            icmsTotal.ValorTotalST            = 0.00;
            icmsTotal.ValorTotalProdutos      = sumValorTotal;
            icmsTotal.ValorTotalFrete         = sumValorTotalFrete;
            icmsTotal.ValorTotalSeguro        = sumValorTotalSeguro;
            icmsTotal.ValorTotalDesconto      = sumValorTotalDesconto;
            icmsTotal.ValorTotalII            = 0.00;
            icmsTotal.ValorTotalIpi           = 0.00;
            icmsTotal.ValorTotalPis           = 0.00;
            icmsTotal.ValorTotalCofins        = 0.00;
            icmsTotal.ValorDespesasAcessorias = 0.00;
            icmsTotal.ValorTotalNFe           = sumValorTotal;

            return(totalNFe);
        }
Example #20
0
        //
        public CorpoNotaFiscalForm(NotaFiscalModel notaFiscalModel, AcaoForm acaoForm)
        {
            try
            {
                InitializeComponent();
                this.notaFiscalModel            = new NotaFiscalModel();
                this.produtoNotaFiscalListModel = new ProdutoNotaFiscalListModel();
                this.acaoForm = acaoForm;
                //
                this.CarregarComboBoxEstabelecimento();
                this.CarregarComboBoxFornecedores();
                this.PreencherTextBoxVazio();
                //
                switch (acaoForm)
                {
                case AcaoForm.NovoLancamento:
                    this.Text = "Novo lançamento de compras";
                    break;

                case AcaoForm.AlterarLancamento:
                    this.Text                     = "Alteração de lançamento de compras";
                    this.notaFiscalModel          = notaFiscalModel;
                    this.txtNumeroNotaFiscal.Text = notaFiscalModel.NumeroNotaFiscal;
                    this.txtTotalDespesas.Text    = notaFiscalModel.ValorTotalDasDespesas.ToString("N2");
                    this.txtTotalIcms.Text        = notaFiscalModel.ValorTotalDoIcmsSt.ToString("N2");
                    this.txtTotalIpi.Text         = notaFiscalModel.ValorTotalDoIpi.ToString("N2");
                    this.txtTotalNotaFiscal.Text  = notaFiscalModel.ValorTotalDaNota.ToString("N2");
                    //
                    this.BloquearControles();
                    break;
                }
            }
            catch (Exception exception)
            {
                Mensagens.MensagemErro(exception.Message);
            }
        }
        private static Transporte GetTransporte(NotaFiscalModel NotaFiscal, Modelo modeloNota)
        {
            if (modeloNota == Modelo.Modelo65)
            {
                return(new Transporte(modeloNota, null, null));
            }

            var nfeModel = NotaFiscal as NFeModel;

            if (nfeModel == null)
            {
                throw new ArgumentException("Parâmetro NotaFiscal não é do mesmo modelo que modeloNota");
            }

            var transportadora = new Transportadora(nfeModel.TransportadoraSelecionada.CpfCnpj,
                                                    nfeModel.TransportadoraSelecionada.Endereco.ToString(),
                                                    nfeModel.TransportadoraSelecionada.InscricaoEstadual,
                                                    nfeModel.TransportadoraSelecionada.Endereco.Municipio,
                                                    nfeModel.TransportadoraSelecionada.Endereco.UF, nfeModel.TransportadoraSelecionada.NomeRazao);

            var veiculo = new Veiculo(nfeModel.PlacaVeiculo, nfeModel.UfVeiculo);

            return(new Transporte(modeloNota, transportadora, veiculo));
        }
Example #22
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);
            }
        }
Example #23
0
        static async Task <NotaFiscalModel> SearchItens(string url)
        {
            //string url = "https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?p=43191187397865002165652070001264771004360527|2|1|1|3B9666B4B19EDA74307BAE1F059795CA425F036A";
            //string url1 = "https://www.sefaz.rs.gov.br/ASP/AAE_ROOT/NFE/SAT-WEB-NFE-NFC_QRCODE_1.asp?p=43191187397865002165652070001264771004360527%7C2%7C1%7C1%7C3B9666B4B19EDA74307BAE1F059795CA425F036A";
            //string url1 = "https://www.sefaz.rs.gov.br/ASP/AAE_ROOT/NFE/SAT-WEB-NFE-NFC_QRCODE_1.asp?p=43191175315333012115655020002257541048579178|2|1|1|9EEF25B0ED906720BFF9849A163F4F54CAB69F75";
            NotaFiscal notaFiscal = new NotaFiscal();
            Local      local      = new Local();
            Produto    produto    = new Produto();

            url = await GetURLAsync(url);

            NotaFiscalModel notaFiscalModel = new NotaFiscalModel(notaFiscal, local);

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    var response = await client.GetAsync(url);

                    if (response.IsSuccessStatusCode)
                    {
                        var doc = new HtmlDocument();
                        doc.LoadHtml(await response.Content.ReadAsStringAsync());

                        var value = doc.DocumentNode.SelectNodes("//td").Where(n => n.HasClass("NFCCabecalho_SubTitulo")).ToList();
                        local.Nome             = value[0].InnerText;
                        notaFiscal.ChaveAcesso = value[5].InnerText;
                        notaFiscal.DataEmissao = ProcessData(value[2].InnerText);

                        value          = doc.DocumentNode.SelectNodes("//td").Where(n => n.HasClass("NFCCabecalho_SubTitulo1")).ToList();
                        local.Endereco = Regex.Replace(value[1].InnerText, @"\s+", " ");

                        value = doc.DocumentNode.SelectNodes("//td").Where(n => n.HasClass("NFCDetalhe_Item")).ToList();
                        value.RemoveRange(0, 5);

                        for (int i = 0; i < value.Count; i += 5)
                        {
                            if (value[i].InnerText.Contains("Valor"))
                            {
                                notaFiscal.ValorCompra   = Convert.ToDecimal(value[i + 1].InnerText);
                                notaFiscal.ValorDesconto = Convert.ToDecimal(value[i + 3].InnerText);

                                break;
                            }
                            produto.Descricao    = value[i + 1].InnerText;
                            produto.Qtd          = Convert.ToDecimal(value[i + 2].InnerText);
                            produto.TipoUnidade  = value[i + 3].InnerText;
                            produto.ValorUnidade = Convert.ToDecimal(value[i + 4].InnerText);
                            produto.ValorPago    = Convert.ToDecimal(value[i + 5].InnerText);

                            notaFiscalModel.AddProduto(produto);
                            produto = new Produto();
                            i++;
                        }

                        return(notaFiscalModel);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }