Example #1
0
        public FichaViewModel Atualizar(FichaViewModel fichaViewModel)
        {
            var fichaDTO = _fichaRepository.BuscarPorId(fichaViewModel.Id);
            var ficha    = Mapper.Map(fichaViewModel, fichaDTO);

            return(Mapper.Map <FichaViewModel>(_fichaRepository.Atualizar(ficha)));
        }
Example #2
0
        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;
                        }
                    }
                }
            }
        }