Ejemplo n.º 1
0
        public NotaFiscal Emitir(NotaFiscal notaFiscal, Random sorteador)
        {
            notaFiscal.CalcularValoresTotais();

            notaFiscal.ValidarParaEmitir();

            notaFiscal.GerarChaveDeAcesso(sorteador);

            while (ConsultarExistenciaDeNotaEmitida(notaFiscal.ChaveAcesso))
            {
                notaFiscal.GerarChaveDeAcesso(sorteador);
            }

            //Gerarando XML para inserção em banco
            string notaFiscalSerializadaParaXML = _notaFiscalRepositorioXML.Serializar(notaFiscal);

            long idNotaFiscalEmitida = _notaFiscalEmitidaRepositorio.Adicionar(notaFiscalSerializadaParaXML, notaFiscal.ChaveAcesso);

            if (idNotaFiscalEmitida != 0)
            {
                _notaFiscalRepositorio.Excluir(notaFiscal);
            }

            return(notaFiscal);
        }
Ejemplo n.º 2
0
        public void IniciarCenario()
        {
            _repositorio = new NotaFiscalEmitidaRepositorioSql();

            _notaFiscalRepositorioXML = new NotaFiscalRepositorioXML();

            _destinatarioRepositorio         = new DestinatarioRepositorioSql();
            _emitenteRepositorio             = new EmitenteRepositorioSql();
            _transportadorRepositorio        = new TransportadorRepositorioSql();
            _produtoNotaFiscalRepositorioSql = new ProdutoNotaFiscalRepositorioSql();

            BaseSqlTeste.InicializarBancoDeDadosPrepararNotaFiscalEmitida();

            long idEmitenteCadastradoPorBaseSql           = 1;
            long idDestinatarioCadastradoPorBaseSql       = 1;
            long idTransportadorCadastradoPorBaseSql      = 1;
            long idProdutoNotaFiscalCadastradorPorBaseSql = 1;

            _notaFiscalValida = ObjectMother.PegarNotaFiscalValidaComIdDasDependencias(idEmitenteCadastradoPorBaseSql, idDestinatarioCadastradoPorBaseSql, idTransportadorCadastradoPorBaseSql);
            _notaFiscalValida.Destinatario  = _destinatarioRepositorio.BuscarPorId(idDestinatarioCadastradoPorBaseSql);
            _notaFiscalValida.Emitente      = _emitenteRepositorio.BuscarPorId(idEmitenteCadastradoPorBaseSql);
            _notaFiscalValida.Transportador = _transportadorRepositorio.BuscarPorId(idTransportadorCadastradoPorBaseSql);
            _notaFiscalValida.Produtos      = new List <ProdutoNotaFiscal>();
            _notaFiscalValida.Produtos.Add(_produtoNotaFiscalRepositorioSql.BuscarPorId(idProdutoNotaFiscalCadastradorPorBaseSql));

            _notaFiscalValida.ValidarGeracao();
            _notaFiscalValida.ValidarParaEmitir();
            _notaFiscalValida.CalcularValoresTotais();
            _notaFiscalValida.GerarChaveDeAcesso(new Random());
            _notaFiscalValida.DataEmissao = DateTime.Now;
        }
Ejemplo n.º 3
0
        public void IniciarCenario()
        {
            _notaFiscalRepositorioXML = new NotaFiscalRepositorioXML();

            _endereco = Common.Tests.Funcionalidades.Enderecos.ObjectMother.PegarEnderecoValido();

            _emitente = Common.Tests.Funcionalidades.Emitentes.ObjectMother.PegarEmitenteValido(_endereco, new CNPJ {
                NumeroComPontuacao = "99.327.235/0001-50"
            });
            _destinatario = Common.Tests.Funcionalidades.Destinatarios.ObjectMother.PegarDestinatarioValidoComCNPJ(_endereco, new CNPJ {
                NumeroComPontuacao = "13.106.137/0001-77"
            });
            _transportador = Common.Tests.Funcionalidades.Transportadoras.ObjectMother.PegarTransportadorValidoComCNPJ(_endereco, new CNPJ {
                NumeroComPontuacao = "11.222.333/0001-81"
            });

            _notaFiscal             = ObjectMother.PegarNotaFiscalValida(_emitente, _destinatario, _transportador);
            _notaFiscal.DataEmissao = DateTime.Now;
            _produto           = Common.Tests.Funcionalidades.Produtos.ObjectMother.ObterProdutoValido();
            _produtoNotaFiscal = Common.Tests.Funcionalidades.ProdutoNotasFiscais.ObjectMother.PegarProdutoNotaFiscalValido(_produto, _notaFiscal);

            _notaFiscal.Produtos = new List <ProdutoNotaFiscal>();
            _notaFiscal.Produtos.Add(_produtoNotaFiscal);

            _notaFiscal.ValidarGeracao();
            _notaFiscal.ValidarParaEmitir();
            _notaFiscal.CalcularValoresTotais();
            _notaFiscal.GerarChaveDeAcesso(new Random());
            _notaFiscal.DataEmissao = DateTime.Now;
        }
Ejemplo n.º 4
0
        public void NotaFiscal_InfraPDF_Exportar_Com5Produtos_Sucesso()
        {
            Produto           produto           = ObjectMother.ObterProdutoValido();
            ProdutoNotaFiscal produtoNotaFiscal = ObjectMother.PegarProdutoNotaFiscalValido(produto, _notaFiscal);

            _notaFiscal.Produtos = new List <ProdutoNotaFiscal>();
            _notaFiscal.Produtos.Add(produtoNotaFiscal);
            _notaFiscal.Produtos.Add(produtoNotaFiscal);
            _notaFiscal.Produtos.Add(produtoNotaFiscal);
            _notaFiscal.Produtos.Add(produtoNotaFiscal);
            _notaFiscal.Produtos.Add(produtoNotaFiscal);

            _notaFiscal.CalcularValoresTotais();
            _notaFiscal.GerarChaveDeAcesso(new Random());
            _notaFiscal.DataEmissao = DateTime.Now;

            NotaFiscalRepositorioPDF gerador = new NotaFiscalRepositorioPDF();

            gerador.Exportar(_caminhoParaANovaNotaFiscal, _notaFiscal);

            Action acaoParaVerificarSeArquivoExiste = () => File.Exists(_caminhoParaANovaNotaFiscal);

            acaoParaVerificarSeArquivoExiste.Should().Equals(true);

            File.Delete(_caminhoParaANovaNotaFiscal);
        }
Ejemplo n.º 5
0
        public void IniciarCenario()
        {
            var connection = DbConnectionFactory.CreatePersistent(Guid.NewGuid().ToString());

            _fakeDbContext = new FakeDbContext(connection);

            _repositorio = new NotaFiscalEmitidaRepositorioSql();

            _notaFiscalRepositorioXML = new NotaFiscalRepositorioXML();

            _destinatarioRepositorio         = new DestinatarioRepositorioSql(_fakeDbContext);
            _emitenteRepositorio             = new EmitenteRepositorioSql(_fakeDbContext);
            _transportadorRepositorio        = new TransportadorRepositorioSql(_fakeDbContext);
            _produtoNotaFiscalRepositorioSql = new ProdutoNotaFiscalRepositorioSql(_fakeDbContext);


            long idEmitenteCadastradoPorBaseSql           = 1;
            long idDestinatarioCadastradoPorBaseSql       = 1;
            long idTransportadorCadastradoPorBaseSql      = 1;
            long idProdutoNotaFiscalCadastradorPorBaseSql = 1;

            _notaFiscalValida = ObjectMother.PegarNotaFiscalValidaComIdDasDependencias(idEmitenteCadastradoPorBaseSql, idDestinatarioCadastradoPorBaseSql, idTransportadorCadastradoPorBaseSql);
            _notaFiscalValida.Destinatario  = _destinatarioRepositorio.BuscarPorId(idDestinatarioCadastradoPorBaseSql);
            _notaFiscalValida.Emitente      = _emitenteRepositorio.BuscarPorId(idEmitenteCadastradoPorBaseSql);
            _notaFiscalValida.Transportador = _transportadorRepositorio.BuscarPorId(idTransportadorCadastradoPorBaseSql);
            _notaFiscalValida.Produtos      = new List <ProdutoNotaFiscal>();
            _notaFiscalValida.Produtos.Add(_produtoNotaFiscalRepositorioSql.BuscarPorId(idProdutoNotaFiscalCadastradorPorBaseSql));

            _notaFiscalValida.CalcularValoresTotais();
            _notaFiscalValida.GerarChaveDeAcesso(new Random());
            _notaFiscalValida.DataEmissao = DateTime.Now;
        }
Ejemplo n.º 6
0
        public void NotaFiscal_Dominio_TamanhoChaveDeAcessoDeveSer44_Sucesso()
        {
            Random sorteador = new Random();

            _notaFiscal.GerarChaveDeAcesso(sorteador);
            string chaveGerada = _notaFiscal.ChaveAcesso;

            chaveGerada.Length.Should().Be(44);
        }
Ejemplo n.º 7
0
        public void GerarCodigoDeAcesso_Deve_gerar_o_codigo_de_acesso_corretamente()
        {
            //Arrange

            List <NotaFiscal> notas = new List <NotaFiscal> {
                NotaFiscalValidaNaoEmitida
            };

            //Action
            NotaFiscalValidaNaoEmitida.GerarChaveDeAcesso(new DateTime(636643306335845925));

            //Assert
            NotaFiscalValidaNaoEmitida.ChaveAcesso.Should().Be("63664330633584592563664330633584592563664330");
        }
Ejemplo n.º 8
0
        public void IniciarCenario()
        {
            Endereco enderecoEmitente      = ObjectMother.PegarEnderecoValido();
            Endereco enderecoDestinatario  = ObjectMother.PegarEnderecoValido();
            Endereco enderecoTransportador = ObjectMother.PegarEnderecoValido();

            Emitente      emitente      = ObjectMother.PegarEmitenteValido(enderecoEmitente, new Documento("99.327.235/0001-50", TipoDocumento.CNPJ));
            Destinatario  destinatario  = ObjectMother.PegarDestinatarioValidoComCNPJ(enderecoDestinatario, new Documento("13.106.137/0001-77", TipoDocumento.CNPJ));
            Transportador transportador = ObjectMother.PegarTransportadorValidoComCNPJ(enderecoTransportador, new Documento("11.222.333/0001-81", TipoDocumento.CNPJ));

            _notaFiscal = ObjectMother.PegarNotaFiscalValida(emitente, destinatario, transportador);

            Produto           produto           = ObjectMother.ObterProdutoValido();
            ProdutoNotaFiscal produtoNotaFiscal = ObjectMother.PegarProdutoNotaFiscalValido(produto, _notaFiscal);

            _notaFiscal.Produtos = new List <ProdutoNotaFiscal>();
            _notaFiscal.Produtos.Add(produtoNotaFiscal);

            _notaFiscal.CalcularValoresTotais();
            _notaFiscal.GerarChaveDeAcesso(new Random());
            _notaFiscal.DataEmissao = DateTime.Now;
        }
Ejemplo n.º 9
0
        public void IniciarCenario()
        {
            _notaFiscalRepositorioXML = new NotaFiscalRepositorioXML();

            _endereco = ObjectMother.PegarEnderecoValido();

            _emitente      = ObjectMother.PegarEmitenteValido(_endereco, new Documento("99.327.235/0001-50", TipoDocumento.CNPJ));
            _destinatario  = ObjectMother.PegarDestinatarioValidoComCNPJ(_endereco, new Documento("13.106.137/0001-77", TipoDocumento.CNPJ));
            _transportador = ObjectMother.PegarTransportadorValidoComCNPJ(_endereco, new Documento("11.222.333/0001-81", TipoDocumento.CNPJ));

            _notaFiscal             = ObjectMother.PegarNotaFiscalValida(_emitente, _destinatario, _transportador);
            _notaFiscal.DataEmissao = DateTime.Now;
            _produto           = ObjectMother.ObterProdutoValido();
            _produtoNotaFiscal = ObjectMother.PegarProdutoNotaFiscalValido(_produto, _notaFiscal);

            _notaFiscal.Produtos = new List <ProdutoNotaFiscal>();
            _notaFiscal.Produtos.Add(_produtoNotaFiscal);

            _notaFiscal.CalcularValoresTotais();
            _notaFiscal.GerarChaveDeAcesso(new Random());
            _notaFiscal.DataEmissao = DateTime.Now;
        }