public FichaViewModel Atualizar(FichaViewModel fichaViewModel) { var fichaDTO = _fichaRepository.BuscarPorId(fichaViewModel.Id); var ficha = Mapper.Map(fichaViewModel, fichaDTO); return(Mapper.Map <FichaViewModel>(_fichaRepository.Atualizar(ficha))); }
public void AtualizaFichas(Guid Id_Venda) { var vendaPagamentos = _venda_PagamentoRepository.TrazerAtivoPorVenda(Id_Venda).ToList(); var TotalVenda = vendaPagamentos.FirstOrDefault().Venda.TotalVenda.Value; var pagamento = TotalVenda; // traz venda_Pagamentos_Fichas e prioriza valores pré informados com OrderBy var venda_Pagamento_Fichas = (from vendaPagamento in vendaPagamentos from pagamentoFicha in vendaPagamento.Venda_Pagamento_Fichas select pagamentoFicha).OrderByDescending(x => x.ValorInformado); //Atualiza Fichas foreach (var venda_Pagamento_Ficha in venda_Pagamento_Fichas) { if (pagamento > 0) { double valorInformado = venda_Pagamento_Ficha.ValorInformado; double fichaSaldo = venda_Pagamento_Ficha.Ficha.Saldo.Value; // Se existir valor pré-informado em uma ficha if (valorInformado > 0) { // Se o valor pré-informado for maior ou igual ao pagamento if (valorInformado >= pagamento) { _ficha_Repository.Atualizar(venda_Pagamento_Ficha, pagamento); pagamento = 0; } else { _ficha_Repository.Atualizar(venda_Pagamento_Ficha, pagamento); pagamento = pagamento - valorInformado; } } // Se não existir valor pré informado na ficha else { // Se o saldo da ficha for maior ou igual ao pagamento if (fichaSaldo >= pagamento) { _ficha_Repository.Atualizar(venda_Pagamento_Ficha, pagamento); pagamento = 0; } else { _ficha_Repository.Atualizar(venda_Pagamento_Ficha, pagamento); pagamento = pagamento - fichaSaldo; } } } } }