public ActionResult Editar(int compraId)
        {
            Compra cp = _compraService.Find(compraId);

            CompraNovoModel cnm = new CompraNovoModel();

            cnm.EmpresaId                  = cp.Empresa.Id;
            cnm.Entrega                    = cp.Data;
            cnm.CategoriaId                = cp.Categoria.Id;
            cnm.FornecedorId               = cp.Fornecedor.Id;
            cnm.Fornecedor                 = cp.Fornecedor.RazaoSocial;
            cnm.Id                         = cp.Id;
            cnm.TipoPagamentoId            = cp.TipoPagamento;
            cnm.NumeroNota                 = cp.NotaFiscal;
            cnm.Valor                      = cp.ValorTotal;
            cnm.ValorDespesaAdministrativa = cp.ValorDespesaAdministrativa;
            cnm.ValorFrete                 = cp.ValorFrete;
            cnm.ValorSeguro                = cp.ValorSeguro;
            cnm.Desconto                   = cp.Desconto;
            cnm.ValorICMSNota              = cp.ValorICMSNota;
            cnm.ValorIPINota               = cp.ValorIPINota;
            cnm.ValorTotalNota             = cp.ValorTotalNota;

            IList <ProdutoCompra> pros = _compraService.GetProdutos(compraId);

            cnm.Produtos = new List <ProdutosModel>();
            foreach (ProdutoCompra pro in pros)
            {
                ProdutosModel pm = new ProdutosModel();
                pm.Id                   = pro.Id;
                pm.ProdutoId            = pro.Produto.Id;
                pm.Quantidade           = Convert.ToInt32(pro.Quantidade);
                pm.Valor                = pro.Valor;
                pm.TipoQuantidade       = pro.TipoQuantidade;
                pm.Descricao            = pro.Produto.Nome;
                pm.ValorTotal           = pro.Valor * pro.Quantidade;
                pm.ValorICMS            = pm.ValorTotal * (pro.ICMS / 100);
                pm.ValorIPI             = pm.ValorTotal * (pro.IPI / 100);
                pm.ValorTotalComImposto = pm.ValorTotal + pm.ValorICMS + pm.ValorIPI;
                pm.IPI                  = pro.IPI;
                pm.ICMS                 = pro.ICMS;
                ((IList <ProdutosModel>)cnm.Produtos).Add(pm);
            }

            IList <Boleto> bols = _compraService.GetBoletos(compraId);

            cnm.Boletos = new List <BoletosModel>();
            foreach (Boleto bol in bols)
            {
                BoletosModel b = new BoletosModel();
                b.Id         = bol.Id;
                b.Numero     = bol.Numero;
                b.Valor      = bol.Valor;
                b.Vencimento = bol.DataVencimento.ToShortDateString();
                ((IList <BoletosModel>)cnm.Boletos).Add(b);
            }

            cnm.TipoPagamentos = new List <SelectListItem>();
            GetCategoriasETipoPagamento(cnm.EmpresaId, cnm);

            return(View("Novo", cnm));
        }