Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Brunobento1990 committed Mar 21, 2024
1 parent 54dbb7b commit 8dc5ef2
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,5 @@
public class QuantidadeProdutoCarrinhoViewModel
{
public decimal Quantidade { get; set; }
public decimal? ValorUnitarioAtacado { get; set; }
public decimal? ValorUnitarioVarejo { get; set; }
public decimal? ValorUnitario { get; set; }
}
35 changes: 26 additions & 9 deletions OpenAdm.Application/Services/CarrinhoService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using OpenAdm.Application.Interfaces;
using OpenAdm.Application.Models.Carrinhos;
using OpenAdm.Application.Models.Categorias;
using OpenAdm.Application.Models.Usuarios;
using OpenAdm.Domain.Interfaces;
using OpenAdm.Domain.Model.Carrinho;

Expand Down Expand Up @@ -86,11 +87,11 @@ public async Task<bool> DeleteProdutoCarrinhoAsync(Guid produtoId)

public async Task<IList<CarrinhoViewModel>> GetCarrinhoAsync()
{
var _key = _tokenService.GetTokenUsuarioViewModel().Id.ToString();
var usuarioViewModel = _tokenService.GetTokenUsuarioViewModel();

var carrinhosViewModels = new List<CarrinhoViewModel>();

var carrinho = await _carrinhoRepository.GetCarrinhoAsync(_key);
var carrinho = await _carrinhoRepository.GetCarrinhoAsync(usuarioViewModel.Id.ToString());

var produtosIds = carrinho.Produtos.Select(x => x.ProdutoId).ToList();

Expand Down Expand Up @@ -122,11 +123,12 @@ public async Task<IList<CarrinhoViewModel>> GetCarrinhoAsync()
.Produtos?
.FirstOrDefault(pr => pr.ProdutoId == produto.Id && pr.TamanhoId == x.Id)?
.Quantidade ?? 0),

ValorUnitarioVarejo = itensTabelaDePreco
.FirstOrDefault(item => item.ProdutoId == produto.Id && item.TamanhoId == x.Id)?.ValorUnitarioVarejo,
ValorUnitarioAtacado = itensTabelaDePreco
.FirstOrDefault(item => item.ProdutoId == produto.Id && item.TamanhoId == x.Id)?.ValorUnitarioAtacado
ValorUnitario = GetValorUnitarioProduto(
usuarioViewModel.Cnpj,
itensTabelaDePreco
.FirstOrDefault(item => item.ProdutoId == produto.Id && item.TamanhoId == x.Id)?.ValorUnitarioAtacado,
itensTabelaDePreco
.FirstOrDefault(item => item.TamanhoId == x.Id && item.ProdutoId == produto.Id)?.ValorUnitarioVarejo)
}
}).ToList();

Expand All @@ -141,10 +143,13 @@ public async Task<IList<CarrinhoViewModel>> GetCarrinhoAsync()
.Produtos?
.FirstOrDefault(pr => pr.ProdutoId == produto.Id && pr.PesoId == x.Id)?
.Quantidade ?? 0),
ValorUnitarioAtacado = itensTabelaDePreco
ValorUnitario = GetValorUnitarioProduto(
usuarioViewModel.Cnpj,
itensTabelaDePreco
.FirstOrDefault(item => item.ProdutoId == produto.Id && item.PesoId == x.Id)?.ValorUnitarioAtacado,
ValorUnitarioVarejo = itensTabelaDePreco
itensTabelaDePreco
.FirstOrDefault(item => item.PesoId == x.Id && item.ProdutoId == produto.Id)?.ValorUnitarioVarejo
)
}
}).ToList();

Expand All @@ -163,4 +168,16 @@ public async Task LimparCarrinhoDoUsuarioAsync(Guid usuarioId)
{
await _carrinhoRepository.DeleteCarrinhoAsync(usuarioId.ToString());
}

private decimal GetValorUnitarioProduto(string? cnpj, decimal? valorUnitarioAtacado, decimal? valorUnitarioVarejo)
{
var isAtacado = !string.IsNullOrWhiteSpace(cnpj);

if (isAtacado)
{
return valorUnitarioAtacado ?? 0;
}

return valorUnitarioVarejo ?? 0;
}
}
4 changes: 2 additions & 2 deletions OpenAdm.Application/Services/PedidoService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public async Task<PedidoViewModel> CreatePedidoAsync(IList<ItensPedidoModel> ite

var produtosIds = itensPedidoModels.Select(x => x.ProdutoId).ToList();
var itensTabelaDePreco = await _itemTabelaDePrecoRepository.GetItensTabelaDePrecoByIdProdutosAsync(produtosIds);
var isVarejo = !string.IsNullOrWhiteSpace(usuarioViewModel.Cnpj);
var isAtacado = !string.IsNullOrWhiteSpace(usuarioViewModel.Cnpj);

foreach (var itemTabelaDePreco in itensTabelaDePreco)
{
Expand All @@ -46,7 +46,7 @@ public async Task<PedidoViewModel> CreatePedidoAsync(IList<ItensPedidoModel> ite
if (preco != null)
{

if (isVarejo && preco.ValorUnitario != itemTabelaDePreco.ValorUnitarioAtacado)
if (isAtacado && preco.ValorUnitario != itemTabelaDePreco.ValorUnitarioAtacado)
{
throw new ExceptionApi();
}
Expand Down

0 comments on commit 8dc5ef2

Please sign in to comment.