private NotaFiscal SemearNotaFiscal() { Destinatario destinatario = SemearDestinatario(); Emitente emitente = SemearEmitente(); Transportador transportador = SemearTransportador(); Produto produto = SemearProduto(); NotaFiscal notaFiscal = new NotaFiscal { ValorTotalICMS = 90, ValorTotalIPI = 10, ValorTotalFrete = 50, ValorTotalNota = 1000, ValorTotalProdutos = 800, ValorTotalImpostos = 100, NaturezaOperacao = "Natureza", DataEntrada = DateTime.Now, Destinatario = destinatario, Emitente = emitente, Transportador = transportador }; _contexto.NotasFiscais.Add(notaFiscal); _contexto.SaveChanges(); ProdutoNotaFiscal produtoNotaFiscal = new ProdutoNotaFiscal(notaFiscal, produto, 10); notaFiscal.Produtos.Add(produtoNotaFiscal); _contexto.SaveChanges(); return(notaFiscal); }
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); }
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; }
public void ProdutoNotaFiscal_Dominio_Validar_ExcecaoProdutoNotaFiscalComQuantidadeInferiorAum() { ProdutoNotaFiscal produtoParaSerValidado = ObjectMother.PegarProdutoNotaFiscalComQuantidadeInferiorAumValido(_mockProduto.Object, _mockNotaFiscal.Object); Action acaoQueDeveRetornarExcecaoProdutoNotaFiscalComQuantidadeInferiorAum = () => produtoParaSerValidado.Validar(); acaoQueDeveRetornarExcecaoProdutoNotaFiscalComQuantidadeInferiorAum.Should().Throw <ExcecaoProdutoNotaFiscalComQuantidadeInferiorAum>(); }
public void ProdutoNotaFiscal_Dominio_Validar_ExcecaoProdutoNotaFiscalSemNotaFiscal() { ProdutoNotaFiscal produtoParaSerValidado = ObjectMother.PegarProdutoNotaFiscalSemNotaFiscalVinculadaValido(_mockProduto.Object); Action acaoQueDeveRetornarExcecaoProdutoNotaFiscalSemNotaFiscal = () => produtoParaSerValidado.Validar(); acaoQueDeveRetornarExcecaoProdutoNotaFiscalSemNotaFiscal.Should().Throw <ExcecaoProdutoNotaFiscalSemNotaFiscal>(); }
public void ProdutoNotaFiscal_Dominio_Validar_Sucesso() { ProdutoNotaFiscal produtoParaSerValidado = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); Action acaoQueNaoDeveRetornarExcecao = () => produtoParaSerValidado.Validar(); acaoQueNaoDeveRetornarExcecao.Should().NotThrow <ExcecaoDeNegocio>(); }
public void ProdutoNotaFiscal_InfraData_BuscarPorId_Sucesso() { long idDaNotaFiscalPreCadastrada = 1; ProdutoNotaFiscal produtoNotaFiscalBuscado = _repositorio.BuscarPorId(idDaNotaFiscalPreCadastrada); produtoNotaFiscalBuscado.Should().NotBeNull(); }
public IActionResult PatchNotaFiscal([FromBody] NotaFiscalDTO notaFiscalDTO) { if (notaFiscalDTO.Id > 0) { try { var notafiscal = Database.NotasFiscais.First(p => p.Id.Equals(notaFiscalDTO.Id)); if (notafiscal != null) { Cliente cliente = new Cliente(); cliente = Database.Clientes.First(c => c.Id.Equals(notaFiscalDTO.ClienteId)); if (cliente == null) { Response.StatusCode = 404; return(new ObjectResult(new { msg = $"Cliente com Id {notaFiscalDTO.ClienteId} não encontrado!" })); } notafiscal.Valor = notaFiscalDTO.Valor != 0.0 ? notaFiscalDTO.Valor : notafiscal.Valor; notafiscal.Cliente = cliente; var removerRelacao = Database.ProdutosNotaFiscal.Where(n => n.NotaFiscalId.Equals(notafiscal.Id)).ToList(); foreach (var e in removerRelacao) { Database.Remove(e); } Database.RemoveRange(removerRelacao); foreach (var produtoNF in notaFiscalDTO.ProdutosNotaFiscalDTO) { ProdutoNotaFiscal produtonota = new ProdutoNotaFiscal(); produtonota.Quantidade = produtoNF.Quantidade; produtonota.Produto = Database.Produtos.First(p => p.Id == produtoNF.ProdutoId); produtonota.NotaFiscal = notafiscal; Database.ProdutosNotaFiscal.Add(produtonota); } Database.SaveChanges(); Response.StatusCode = 200; return(new ObjectResult(new { msg = "Nota Fiscal atualizada com Sucesso!" })); } else { Response.StatusCode = 404; return(new ObjectResult(new { msg = "Nota Fiscal não encontrada!" })); } } catch (Exception e) { Response.StatusCode = 404; return(new ObjectResult(new { msg = $"NotaFiscal com Id {notaFiscalDTO.Id} não encontrado!", erro = e })); } } else { Response.StatusCode = 404; return(new ObjectResult(new { msg = "Id do Produto Inválido" })); } }
private Dictionary <string, object> ObterDicionarioProdutoNotaFiscal(ProdutoNotaFiscal produtoNotaFiscal) { return(new Dictionary <string, object> { { "ID", produtoNotaFiscal.Id }, { "NOTAFISCALID", produtoNotaFiscal.NotaFiscal.Id }, { "PRODUTOID", produtoNotaFiscal.Produto.Id }, { "QUANTIDADE", produtoNotaFiscal.Quantidade } }); }
public void ProdutoNotaFiscal_Dominio_ValorTotal_Sucesso() { ProdutoNotaFiscal produtoNotaFiscalParaCalcularValorTotal = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); int quantidadeDeProdutosDoObjectMother = 10; int valorEsperadoDoProduto = 100; _mockProduto.Setup(mp => mp.Valor).Returns(valorEsperadoDoProduto); produtoNotaFiscalParaCalcularValorTotal.ValorTotal.Should().Be(valorEsperadoDoProduto * quantidadeDeProdutosDoObjectMother); }
public void ProdutoNotaFiscal_InfraData_Excluir_Sucesso() { long idDaNotaFiscalPreCadastrada = 1; ProdutoNotaFiscal produtoNotaFiscalBuscado = _repositorio.BuscarPorId(idDaNotaFiscalPreCadastrada); _repositorio.Excluir(produtoNotaFiscalBuscado); ProdutoNotaFiscal produtoNotaFiscalQueDeveSerNulo = _repositorio.BuscarPorId(idDaNotaFiscalPreCadastrada); produtoNotaFiscalQueDeveSerNulo.Should().BeNull(); }
private static ProdConfiguracao MontarProdutoConfiguracao(ProdutoNotaFiscal produtoNotaFiscal) { ProdConfiguracao prodConfiguracao = new ProdConfiguracao(); prodConfiguracao.CodigoProduto = produtoNotaFiscal.Produto.Codigo; prodConfiguracao.DescricaoProduto = produtoNotaFiscal.Produto.Descricao; prodConfiguracao.Quantidade = produtoNotaFiscal.Quantidade; prodConfiguracao.Total = produtoNotaFiscal.ValorTotal; prodConfiguracao.Unitario = produtoNotaFiscal.Produto.Valor; return(prodConfiguracao); }
public void ProdutoNotaFiscal_Dominio_ValorIPI_Sucesso() { ProdutoNotaFiscal produtoNotaFiscalParaCalcularValorIPI = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); int quantidadeDeProdutosDoObjectMother = 10; int valorEsperadoDoProduto = 100; double produtoAliquotaIPI = 0.10; _mockProduto.Setup(mp => mp.Valor).Returns(valorEsperadoDoProduto); _mockProduto.Setup(mp => mp.AliquotaIPI).Returns(produtoAliquotaIPI); produtoNotaFiscalParaCalcularValorIPI.ValorIPI.Should().Be(valorEsperadoDoProduto * quantidadeDeProdutosDoObjectMother * produtoAliquotaIPI); }
private static ImpostoConfiguracao MontarImpostoConfiguracao(ProdutoNotaFiscal produtoNotaFiscal) { ImpostoConfiguracao impostoConfiguracao = new ImpostoConfiguracao(); IcmsProduto icmsProduto = new IcmsProduto(); Icms icms = new Icms(); icms.IcmsProduto = icmsProduto; icmsProduto.AliquotaICMS = produtoNotaFiscal.Produto.AliquotaICMS * 100; icmsProduto.ValorICMS = produtoNotaFiscal.ValorICMS; impostoConfiguracao.Icms = icms; return(impostoConfiguracao); }
public void ProdutoNotaFiscal_InfraData_Adicionar_Sucesso() { ProdutoNotaFiscal produtoNotaFiscalValido = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); long idDeProdutoCadastrado = 1; long idDeNotaFiscalCadastrada = 1; _mockProduto.Setup(mp => mp.Id).Returns(idDeProdutoCadastrado); _mockNotaFiscal.Setup(mnf => mnf.Id).Returns(idDeNotaFiscalCadastrada); ProdutoNotaFiscal produtoNotaFiscalAdicionado = _repositorio.Adicionar(produtoNotaFiscalValido); produtoNotaFiscalAdicionado.Id.Should().BeGreaterThan(0); }
public void ProdutoNotaFiscal_InfraData_Atualizar_Sucesso() { long idDoProdutoNotaFiscalDaBaseSql = 1; ProdutoNotaFiscal produtoNotaFiscalResultadoDoBuscarParaAtualizar = _repositorio.BuscarPorId(idDoProdutoNotaFiscalDaBaseSql); produtoNotaFiscalResultadoDoBuscarParaAtualizar.Quantidade += 1; _repositorio.Atualizar(produtoNotaFiscalResultadoDoBuscarParaAtualizar); ProdutoNotaFiscal produtoNotaFiscalResultadoAposAtualizacao = _repositorio.BuscarPorId(produtoNotaFiscalResultadoDoBuscarParaAtualizar.Id); produtoNotaFiscalResultadoAposAtualizacao.Quantidade.Should().Be(produtoNotaFiscalResultadoDoBuscarParaAtualizar.Quantidade); }
public void ProdutoNotaFiscal_InfraData_Adicionar_Sucesso() { long idDaNotaFiscalPreCadastrada = 1; NotaFiscalRepositorioSql repositorioNF = new NotaFiscalRepositorioSql(_fakeDbContext); NotaFiscal nf = repositorioNF.BuscarPorId(idDaNotaFiscalPreCadastrada); ProdutoNotaFiscal produtoDaNF = nf.Produtos.First(); Produto produto = produtoDaNF.Produto; ProdutoNotaFiscal produtoNotaFiscalValido = ObjectMother.PegarProdutoNotaFiscalValido(produto, nf); _repositorio.Adicionar(produtoNotaFiscalValido); produtoNotaFiscalValido.Id.Should().BeGreaterThan(0); }
private static List <ProdutoConfiguracao> MontarListaDeProdutosConfiguracao(NotaFiscal notaFiscal) { List <ProdutoConfiguracao> listaProdutos = new List <ProdutoConfiguracao>(); for (int i = 0; i < notaFiscal.Produtos.Count; i++) { ProdutoNotaFiscal produtoNotaFiscal = notaFiscal.Produtos[i]; ProdutoConfiguracao produto = new ProdutoConfiguracao(); produto.Imposto = MontarImpostoConfiguracao(produtoNotaFiscal); produto.nItemNumber = i + 1; produto.Prod = MontarProdutoConfiguracao(produtoNotaFiscal); listaProdutos.Add(produto); } return(listaProdutos); }
public void ProdutoNotaFiscal_InfraData_Excluir_Sucesso() { ProdutoNotaFiscal produtoNotaFiscalValido = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); long idDeProdutoCadastrado = 1; long idDeNotaFiscalCadastrada = 1; _mockProduto.Setup(mp => mp.Id).Returns(idDeProdutoCadastrado); _mockNotaFiscal.Setup(mnf => mnf.Id).Returns(idDeNotaFiscalCadastrada); ProdutoNotaFiscal produtoNotaFiscalAdicionado = _repositorio.Adicionar(produtoNotaFiscalValido); _repositorio.Excluir(produtoNotaFiscalAdicionado); ProdutoNotaFiscal produtoBuscado = _repositorio.BuscarPorId(produtoNotaFiscalAdicionado.Id); produtoBuscado.Should().BeNull(); }
public IActionResult PostNotaFiscal([FromBody] NotaFiscalDTO notaFiscalDTO) { try { if (notaFiscalDTO.Valor <= 0) { Response.StatusCode = 400; return(new ObjectResult(new { msg = "O Total não pode ser menor que 0.0" })); } Cliente cliente = new Cliente(); cliente = Database.Clientes.First(c => c.Id == notaFiscalDTO.ClienteId); if (cliente == null) { Response.StatusCode = 400; return(new ObjectResult(new { msg = $"Cliente com Id {notaFiscalDTO.ClienteId} não encontrado!" })); } NotaFiscal.Models.NotaFiscal nota = new NotaFiscal.Models.NotaFiscal(); nota.Valor = notaFiscalDTO.Valor; nota.DataEmissao = DateTime.Now; nota.Cliente = cliente; Database.NotasFiscais.Add(nota); foreach (var produtoNF in notaFiscalDTO.ProdutosNotaFiscalDTO) { ProdutoNotaFiscal produtonota = new ProdutoNotaFiscal(); produtonota.Quantidade = produtoNF.Quantidade; produtonota.Produto = Database.Produtos.First(p => p.Id == produtoNF.ProdutoId); produtonota.NotaFiscal = nota; Database.ProdutosNotaFiscal.Add(produtonota); } Database.SaveChanges(); Response.StatusCode = 201; return(new ObjectResult(new { msg = "Nota Fiscal salva com Sucesso!" })); } catch { Response.StatusCode = 401; return(new ObjectResult(new { msg = "Falha ao Salvar os Dados!" })); } }
private NotaFiscal SemearNotaFiscal() { Destinatario destinatario = SemearDestinatario(); Emitente emitente = SemearEmitente(); Transportador transportador = SemearTransportador(); Produto produto = SemearProduto(); NotaFiscal notaFiscal = ObjectMother.PegarNotaFiscalValida(emitente, destinatario, transportador); _contexto.NotasFiscais.Add(notaFiscal); _contexto.SaveChanges(); ProdutoNotaFiscal produtoNotaFiscal = new ProdutoNotaFiscal(notaFiscal, produto, 10); notaFiscal.Produtos.Add(produtoNotaFiscal); _contexto.SaveChanges(); return(notaFiscal); }
public void ProdutoNotaFiscal_InfraData_BuscarPorId_Sucesso() { ProdutoNotaFiscal produtoNotaFiscalValido = ObjectMother.PegarProdutoNotaFiscalValido(_mockProduto.Object, _mockNotaFiscal.Object); long idDeProdutoCadastrado = 1; long idDeNotaFiscalCadastrada = 1; double valorDoProdutoDeId1NoBanco = 100; _mockProduto.Setup(mp => mp.Id).Returns(idDeProdutoCadastrado); _mockNotaFiscal.Setup(mnf => mnf.Id).Returns(idDeNotaFiscalCadastrada); ProdutoNotaFiscal produtoNotaFiscalAdicionado = _repositorio.Adicionar(produtoNotaFiscalValido); ProdutoNotaFiscal produtoNotaFiscalBuscado = _repositorio.BuscarPorId(produtoNotaFiscalAdicionado.Id); produtoNotaFiscalBuscado.Produto.Valor.Should().Be(valorDoProdutoDeId1NoBanco); produtoNotaFiscalBuscado.Quantidade.Should().Be(produtoNotaFiscalAdicionado.Quantidade); }
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; }
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; }
public ProdutoNotaFiscal Adicionar(ProdutoNotaFiscal produtoNotaFiscal) { produtoNotaFiscal.Id = Db.Adicionar(_sqlAdicionar, ObterDicionarioProdutoNotaFiscal(produtoNotaFiscal)); return(produtoNotaFiscal); }
public bool Excluir(ProdutoNotaFiscal produtoNotaFiscal) { _contexto.ProdutosNotaFiscal.Remove(produtoNotaFiscal); return _contexto.SaveChanges() != 0; }
public ProdutoNotaFiscal Atualizar(ProdutoNotaFiscal produtoNotaFiscal) { Db.Atualizar(_sqlAtualizar, ObterDicionarioProdutoNotaFiscal(produtoNotaFiscal)); return(produtoNotaFiscal); }
public void Excluir(ProdutoNotaFiscal produtoNotaFiscal) { Db.Excluir(_sqlExcluir, new Dictionary <string, object> { { "ID", produtoNotaFiscal.Id } }); }
public void AddProduto() { ProdutoAtual.Sequencia = Produtos.Count + 1; Produtos.Add(ProdutoAtual); ProdutoAtual = new ProdutoNotaFiscal(); }
private void UpdateProduto() { ProdutoAtual = new ProdutoNotaFiscal(); }