public ActionResult Projeto(int idProjeto)
        {
            try
            {
                LogBLL.Insert(new LogDado("Projeto", "Orcamento", _idUsuario));
                using (var db = new Context())
                {
                    var _bll = new BLL.ProjetoBLL(db, _idUsuario);
                    var _produtoBLL = new BLL.ProdutoBLL(db, _idUsuario);

                    var _projeto = _bll.Find(e => e.idProjeto == idProjeto)
                        .Select(u => new Models.Orcamento.ProjetoVM
                        {
                            idProjeto = idProjeto,
                            descricao = u.descricao,                            
                        }).FirstOrDefault();
                    _projeto.Produtos = _produtoBLL.Find(u => u.idProjeto == idProjeto)
                        .Select(k => new
                             Models.Orcamento.ProjetoVM.ProdutoVM
                             {
                                 idProduto = k.idProduto,
                                 nome = k.nome,
                                 descricao = k.descricao
                             }).ToList();
                    return View(_projeto);
                }
            }
            catch (Exception ex)
            {
                RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario);
                return RedirectToAction("Index", "Erro", new { area = string.Empty });
            }
        }
        public JsonResult JsCreate(ProdutoMaterial model)
        {
            try
            {
                LogBLL.Insert(new LogDado("JsCreate", "ProdutoMaterial", _idUsuario));
                using (var db = new Context())
                {
                    using (var trans = new RP.DataAccess.RPTransactionScope(db))
                    {
                        var _bll = new BLL.ProdutoMaterialBLL(db, _idUsuario);
                        var _produtoBLL = new BLL.ProdutoBLL(db, _idUsuario);

                        _bll.Insert(model);
                        _bll.SaveChanges();
                        trans.Complete();

                        decimal totalCusto = model.quantidade * model.valor;
                        decimal totalGanho = ((model.margemGanho / 100) * totalCusto) + totalCusto;
                        decimal totalLiquido = totalGanho - totalCusto;
                        var result = new
                        {
                            idMaterial = model.idMaterial,
                            idProduto = model.idProduto,
                            model.quantidade,
                            model.margemGanho,
                            model.valor,
                            model.Material.nome,
                            model.idProdutoMaterial,
                            totalCusto = totalCusto,
                            totalGanho = totalGanho,
                            totalLiquido = totalLiquido
                        };

                        return Json(new { model = result }, JsonRequestBehavior.AllowGet);
                    }
                }
            }

            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return Json(RP.Util.Exception.Message.Get(ex), JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult Produto(int idProduto)
        {
            try
            {
                using (var db = new Context())
                {
                    var _produtoBLL = new BLL.ProdutoBLL(db, _idUsuario);
                    var _materialBLL = new BLL.ProdutoMaterialBLL(db, _idUsuario);

                    var _produto = _produtoBLL.Find(e => e.idProduto == idProduto)
                        .Select(u => new Models.Orcamento.ProdutoVM
                        {
                            idProjeto = u.idProjeto,
                            nome = u.nome,
                            idProduto = u.idProduto,
                            descricao = u.descricao,
                        }).FirstOrDefault();
                    _produto.Itens = _materialBLL.Find(u => u.idProduto == idProduto)
                        .Select(k => new
                             Models.Orcamento.ProdutoVM.MaterialVM
                        {
                            idMaterial = k.idMaterial,
                            nome = k.Material.nome,
                            quantidade = k.quantidade
                        }).ToList();
                    return View(_produto);
                }
            }
            catch (Exception ex)
            {
                RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario);
                return RedirectToAction("Index", "Erro", new { area = string.Empty });
            }
        }