示例#1
0
        public IActionResult AdicionarLivro(AdminLivroModel livro)
        {
            _vh = new AdminLivroViewHelper {
                ViewModel = livro
            };

            Livro   livroNovo = (Livro)_vh.Entidades[typeof(Livro).Name];
            Editora editora   = _facade.Query <Editora>(e => e.Nome == livroNovo.Editora.Nome,
                                                        e => e).FirstOrDefault();

            if (editora != null)
            {
                livroNovo.Editora = editora;
            }
            GrupoPreco grp = _facade.GetEntidade(new GrupoPreco {
                Id = livroNovo.GrupoPrecoId
            });

            livroNovo.CodigoBarras = GeraCodigoLivro();
            if (livroNovo.Capa == null)
            {
                livroNovo.Capa = new byte[0];
            }

            livroNovo.Inativo = true;

            string msg = _facade.Cadastrar(livroNovo);

            if (!String.IsNullOrEmpty(msg))
            {
                TempData["Alert"] = msg;
            }

            return(RedirectToAction(nameof(ConfigLoja)));
        }
示例#2
0
        public IActionResult EditarLivro(AdminLivroModel livro)
        {
            _vh = new AdminLivroViewHelper {
                ViewModel = livro
            };

            Livro   ln      = (Livro)_vh.Entidades[typeof(Livro).Name];
            Livro   l       = _facade.GetAllInclude(ln);
            Editora editora = _facade.Query <Editora>(e => e.Nome == ln.Editora.Nome,
                                                      e => e).FirstOrDefault();

            if (editora == null)
            {
                ln.Editora = editora;
            }

            l.Altura                = ln.Altura;
            l.Autor                 = ln.Autor;
            l.Comprimento           = ln.Comprimento;
            l.DtLancamento          = ln.DtLancamento;
            l.Edicao                = ln.Edicao;
            l.Editora               = ln.Editora;
            l.GrupoPrecoId          = ln.GrupoPrecoId;
            l.Isbn                  = ln.Isbn;
            l.Largura               = ln.Largura;
            l.Paginas               = ln.Paginas;
            l.Peso                  = ln.Peso;
            l.Sinopse               = ln.Sinopse;
            l.Titulo                = ln.Titulo;
            l.Valor                 = ln.Valor;
            l.LivrosCategoriaLivros = ln.LivrosCategoriaLivros;
            GrupoPreco grp = _facade.GetEntidade(new GrupoPreco {
                Id = ln.GrupoPrecoId
            });

            if (l.Valor < l.MaiorCusto + (l.MaiorCusto * (grp.MargemLucro / 100)) &&
                !HttpContext.User.IsInRole("2"))
            {
                var valMin = l.MaiorCusto + l.MaiorCusto * (grp.MargemLucro / 100);
                TempData["Alert"] = "Você tentou inserir um valor inferior a margem de lucro desse livro. A margem de lucro" +
                                    $" do grupo de preço {grp.Nome} é {grp.MargemLucro}%, logo o preço mínimo deste livro é {valMin}. Tente novamente.";
                return(RedirectToAction(nameof(ConfigLoja)));
            }

            string msg = _facade.Editar(l);

            if (!String.IsNullOrEmpty(msg))
            {
                TempData["Alert"] = msg;
            }
            return(RedirectToAction(nameof(ConfigLoja)));
        }
示例#3
0
        protected override void ToViewModel()
        {
            GrupoPreco grupoPreco = (GrupoPreco)Entidades[typeof(GrupoPreco).Name];

            GrupoPrecoModel vm = new GrupoPrecoModel
            {
                Id          = grupoPreco.Id,
                Inativo     = grupoPreco.Inativo,
                MargemLucro = grupoPreco.MargemLucro,
                Nome        = grupoPreco.Nome
            };

            _viewModel = vm;
        }
示例#4
0
        public IActionResult _InativarReativarGrupoPrecoPartial(int id)
        {
            GrupoPreco grp = _facade.GetEntidade(new GrupoPreco {
                Id = id
            });

            _vh = new GrupoPrecoViewHelper {
                Entidades = new Dictionary <string, object>
                {
                    [typeof(GrupoPreco).Name] = grp
                }
            };

            return(PartialView("../Admin/PartialViews/_InativarReativarGrupoPrecoPartial", _vh.ViewModel));
        }
示例#5
0
        public IActionResult AdicionarGrupoPreco(GrupoPrecoModel grp)
        {
            _vh = new GrupoPrecoViewHelper
            {
                ViewModel = grp
            };

            GrupoPreco grpNovo = (GrupoPreco)_vh.Entidades[typeof(GrupoPreco).Name];
            string     msg     = _facade.Cadastrar(grpNovo);

            if (!String.IsNullOrEmpty(msg))
            {
                TempData["Alert"] = msg;
            }
            return(RedirectToAction(nameof(ConfigLoja)));
        }
示例#6
0
        protected override void ToEntidade()
        {
            GrupoPrecoModel vm = (GrupoPrecoModel)ViewModel;

            GrupoPreco g = new GrupoPreco
            {
                Id          = vm.Id,
                MargemLucro = vm.MargemLucro,
                Nome        = vm.Nome
            };

            _entidades = new Dictionary <string, object>
            {
                [typeof(GrupoPreco).Name] = g
            };
        }
示例#7
0
        public IActionResult _EditarGrupoPrecoPartial(int id)
        {
            GrupoPreco grp = _facade.GetEntidade(new GrupoPreco {
                Id = id
            });

            _vh = new GrupoPrecoViewHelper
            {
                Entidades = new Dictionary <string, object>
                {
                    [typeof(GrupoPreco).Name] = grp
                }
            };

            ViewBag.Operacao = "edit";

            return(PartialView("../Admin/PartialViews/_ConfigGrupoPrecoPartial", _vh.ViewModel));
        }
示例#8
0
        public IActionResult InativarReativarGrupoPreco(int id)
        {
            GrupoPreco grpDb = _facade.GetAllInclude(new GrupoPreco {
                Id = id
            });

            if (!grpDb.Inativo)
            {
                foreach (var livro in grpDb.Livros)
                {
                    livro.Inativo = true;
                    _facade.Cadastrar(new Inativacao {
                        LivroId = livro.Id, CategoriaId = 2
                    });
                }
            }

            grpDb.Inativo = !grpDb.Inativo;
            string msg = _facade.Editar(grpDb);

            return(RedirectToAction(nameof(ConfigLoja)));
        }
示例#9
0
        public IActionResult EditarGrupoPreco(GrupoPrecoModel grp)
        {
            _vh = new GrupoPrecoViewHelper
            {
                ViewModel = grp
            };

            GrupoPreco grpNovo = (GrupoPreco)_vh.Entidades[typeof(GrupoPreco).Name];
            GrupoPreco grpDb   = _facade.GetAllInclude(grpNovo);

            //Calcula novos preços baseados na margem de lucro
            foreach (var livro in grpDb.Livros)
            {
                if (livro.MaiorCusto.HasValue)
                {
                    double custo = livro.MaiorCusto ?? 0;
                    livro.Valor = custo + custo * grpDb.MargemLucro / 100;
                }
                else
                {
                    livro.Inativo = true;
                }
            }

            grpDb.Nome        = grpNovo.Nome;
            grpDb.MargemLucro = grpNovo.MargemLucro;

            string msg = _facade.Editar(grpDb);

            if (!String.IsNullOrEmpty(msg))
            {
                TempData["Alert"] = msg;
            }

            return(RedirectToAction(nameof(ConfigLoja)));
        }