Beispiel #1
0
        /// <summary>
        /// Obtem um produto e converte em Model
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        private bool ObterProduto(Guid id, ref ProdutoModel model, ref string mensagemErro)
        {
            //Preparar a requisição e o retorno
            RetornoObterDto <ProdutoDto> retorno       = new RetornoObterDto <ProdutoDto>();
            RequisicaoObterDto           requisicaoDto = new RequisicaoObterDto()
            {
                Id            = id,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            ProdutoBll produtoBll = new ProdutoBll(true);

            produtoBll.Obter(requisicaoDto, ref retorno);

            //Tratar o retorno
            if (retorno.Retorno == false)
            {
                mensagemErro = retorno.Mensagem;
                return(false);
            }
            else
            {
                //Converter para Model
                return(model.ConverterDtoParaModel(retorno.Entidade, ref mensagemErro));
            }
        }
        protected void gvPedidos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Alterar"))
            {
                int Linha = int.Parse(e.CommandArgument.ToString());
                int ID    = int.TryParse(gvPedidos.Rows[Linha].Cells[0].Text, out ID) ? ID : 0;

                try
                {
                    PedidoBll  PedidoBll  = new PedidoBll();
                    ProdutoBll ProdutoBll = new ProdutoBll();
                    Pedido     Pedido     = PedidoBll.RetornarPedido(ID);

                    hfID.Value          = Pedido.ID.ToString();
                    txtDocumento.Text   = Pedido.Documento;
                    txtDataEntrega.Text = string.Format("{0:dd/MM/yyyy}", Pedido.DataEntrega);

                    var Produtos = ProdutoBll.RetornarPedidoProdutos(Pedido.ID);

                    gvProdutos.DataSource = Produtos;
                    gvProdutos.DataBind();
                    ViewState["Produtos"] = Produtos.ToDataTable();
                }
                catch (Exception ex)
                {
                    Msg.Erro(Resource.ContateAdminstrador, this);
                }
            }
        }
        protected void gvProdutos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Alterar"))
            {
                int index = int.Parse(e.CommandArgument.ToString());
                int ID    = int.TryParse(gvProdutos.Rows[index].Cells[1].Text, out ID) ? ID : 0;

                try
                {
                    ProdutoBll produtoBll = new ProdutoBll();
                    Produto    produto    = produtoBll.RetornaProduto(ID);

                    txtID.Text              = string.Format("{0:000000}", produto.ID);
                    txtDescricao.Text       = produto.Descricao;
                    txtPrecoQuantidade.Text = string.Format("{0:C}", produto.PrecoQuantidade);
                    txtPrecoUnitario.Text   = string.Format("{0:C}", produto.PrecoUnitario);
                    cbAtivo.Checked         = produto.Ativo.Equals(1) ? true : false;

                    hfTipoOperacao.Value = TipoOperacao.Update.ToString();
                }
                catch (Exception ex)
                {
                    LogBll.InserirLog(new Log
                    {
                        ItemID   = ID,
                        Login    = User.Identity.Name,
                        Mensagem = ex.Message,
                        Operacao = TipoOperacao.Read.ToString(),
                        Tabela   = "Produto"
                    });

                    Msg.Erro(Resource.ContateAdminstrador, this);
                }
            }
        }
        private void LimparFormulario()
        {
            try
            {
                txtID.Text = string.Format("{0:000000}", ProdutoBll.RetornaNovoID());
            }
            catch (Exception ex)
            {
                LogBll.InserirLog(new Log
                {
                    Login    = User.Identity.Name,
                    Mensagem = ex.Message,
                    Operacao = TipoOperacao.Read.ToString(),
                    Tabela   = "Produto"
                });
                Msg.Erro(Resource.ContateAdminstrador, this);
            }

            ddlFornecedor.SelectedValue = "0";
            txtDescricao.Text           = string.Empty;
            txtPrecoQuantidade.Text     = string.Empty;
            txtPrecoUnitario.Text       = string.Empty;
            txtQuantidadeReposicao.Text = string.Empty;
            cbAtivo.Checked             = true;

            hfTipoOperacao.Value = TipoOperacao.Create.ToString();
        }
Beispiel #5
0
        /// <summary>
        /// Obtem uma listra filtrada de produtos
        /// </summary>
        /// <param name="filtros"></param>
        /// <returns></returns>
        public string ObterListaFiltrada(FiltrosProdutoModel filtros)
        {
            //Requisição para obter a lista
            RequisicaoObterListaDto requisicaoDto = new RequisicaoObterListaDto()
            {
                CampoOrdem           = string.IsNullOrWhiteSpace(filtros.CampoOrdenacao) ? "" : filtros.CampoOrdenacao.Trim(),
                IdUsuario            = SessaoUsuario.SessaoLogin.IdUsuario,
                Identificacao        = SessaoUsuario.SessaoLogin.Identificacao,
                NaoPaginarPesquisa   = filtros.NaoPaginaPesquisa,
                Pagina               = filtros.Pagina,
                NumeroItensPorPagina = (filtros.NumeroItensPagina == 0) ? 20 : filtros.NumeroItensPagina
            };

            //Adicionar filtros utilizados
            if (!string.IsNullOrWhiteSpace(filtros.Descricao))
            {
                requisicaoDto.ListaFiltros.Add("DESCRICAO", filtros.Descricao.Trim());
            }

            if (!string.IsNullOrWhiteSpace(filtros.Detalhes))
            {
                requisicaoDto.ListaFiltros.Add("DETALHES", filtros.Detalhes.Trim());
            }

            if (filtros.PrecoInicial > 0)
            {
                requisicaoDto.ListaFiltros.Add("PRECOMAIOR", filtros.PrecoInicial.ToString());
            }

            if (filtros.PrecoFinal > 0)
            {
                requisicaoDto.ListaFiltros.Add("PRECOMENOR", filtros.PrecoFinal.ToString());
            }

            if (!string.IsNullOrWhiteSpace(filtros.ObterInativos))
            {
                requisicaoDto.ListaFiltros.Add("INATIVO", filtros.ObterInativos.Trim());
            }

            if (filtros.Tipo != TipoProduto.NaoIdentificado)
            {
                requisicaoDto.ListaFiltros.Add("TIPO", ((int)filtros.Tipo).ToString());
            }

            //Consumir o serviço
            ProdutoBll produtoBll = new ProdutoBll(true);
            RetornoObterListaDto <ProdutoDto> retornoDto = new RetornoObterListaDto <ProdutoDto>();

            produtoBll.ObterListaFiltrada(requisicaoDto, ref retornoDto);

            string retorno = new JavaScriptSerializer().Serialize(retornoDto);

            return(retorno);
        }
Beispiel #6
0
        public ActionResult Incluir(ProdutoModel model)
        {
            //Se não tiver login, encaminhar para a tela de login
            if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao))
            {
                return(RedirectToAction("Login", "Usuario"));
            }

            //Validar a model recebida
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Converter para DTO
            ProdutoDto produtoDto   = new ProdutoDto();
            string     mensagemErro = "";

            if (!model.ConverterModelParaDto(ref produtoDto, ref mensagemErro))
            {
                ModelState.AddModelError("", $"Erro ao converter para Dto: {mensagemErro}");
                return(View(model));
            }

            produtoDto.Id = Guid.NewGuid();

            //Preparar requisição e retorno
            RetornoDto retorno = new RetornoDto();
            RequisicaoEntidadeDto <ProdutoDto> requisicaoDto = new RequisicaoEntidadeDto <ProdutoDto>()
            {
                EntidadeDto   = produtoDto,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            ProdutoBll produtoBll = new ProdutoBll(true);

            produtoBll.Incluir(requisicaoDto, ref retorno);

            //Verificar o retorno
            if (retorno.Retorno == false)
            {
                //Se houver erro, exibir na tela de inclusão
                ModelState.AddModelError("", retorno.Mensagem);
                return(View(model));
            }

            TempData["Retorno"] = "INCLUIDO";

            //Retornar para index
            return(RedirectToAction("Index"));
        }
        protected void btnProduto_Click(object sender, EventArgs e)
        {
            double Quantidade = double.TryParse(txtQuantidadeProduto.Text, out Quantidade) ? Quantidade : 0;

            if (Quantidade.Equals(0))
            {
                Msg.Info(Resource.QuantidadeMaiorZero, this);

                txtQuantidadeProduto.Focus();
            }
            else if (!ddlProdutos.SelectedValue.Equals("0"))
            {
                ProdutoBll ProdutoBll    = new ProdutoBll();
                DataTable  ProdutosTable = new DataTable();

                if (ViewState["Produtos"] != null)
                {
                    ProdutosTable = (DataTable)ViewState["Produtos"];
                }
                else
                {
                    ProdutosTable.Columns.Add("ID");
                    ProdutosTable.Columns.Add("produtoID");
                    ProdutosTable.Columns.Add("descricao");
                    ProdutosTable.Columns.Add("quantidade");
                    ProdutosTable.Columns.Add("total");
                    ProdutosTable.Columns.Add("precounitario");
                }

                int    ID            = int.Parse(ddlProdutos.SelectedValue);
                double PrecoUnitario = double.TryParse(txtPrecoProduto.Text, out PrecoUnitario) ? PrecoUnitario : 0;

                Produto Produto = ProdutoBll.RetornaProduto(ID);

                double Total = Quantidade * PrecoUnitario;

                ProdutosTable.NewRow();

                ProdutosTable.Rows.Add(0, Produto.ID, Produto.Descricao, string.Format("{0:N3}", Quantidade), string.Format("{0:N}", Total), PrecoUnitario);

                ViewState["Produtos"] = ProdutosTable;

                gvProdutos.DataSource = ProdutosTable;
                gvProdutos.DataBind();

                LimparFormularioProduto();
            }
            else
            {
                Msg.Info("Selecione um produto", this);
            }
        }
Beispiel #8
0
        public void CrudProduto()
        {
            RequisicaoEntidadeDto <ProdutoDto> requisicaoDto = new RequisicaoEntidadeDto <ProdutoDto>()
            {
                EntidadeDto = RetornarNovoProduto()
            };

            Assert.IsTrue(Utilidades.RetornarAutenticacaoRequisicaoPreenchida(requisicaoDto));
            ProdutoBll produtoBll = new ProdutoBll(true);

            // Incluir
            RetornoDto retornoDto = new RetornoDto();

            produtoBll.Incluir(requisicaoDto, ref retornoDto);
            Assert.AreEqual(true, retornoDto.Retorno);

            // Editar
            requisicaoDto.EntidadeDto.Descricao = "Produto atualizado " + DateTime.Now;
            produtoBll.Editar(requisicaoDto, ref retornoDto);
            Assert.AreEqual(true, retornoDto.Retorno);

            // Obter
            RetornoObterDto <ProdutoDto> retornoObterDto    = new RetornoObterDto <ProdutoDto>();
            RequisicaoObterDto           requisicaoObterDto = new RequisicaoObterDto()
            {
                Id            = requisicaoDto.EntidadeDto.Id,
                IdUsuario     = requisicaoDto.IdUsuario,
                Identificacao = requisicaoDto.Identificacao
            };

            produtoBll.Obter(requisicaoObterDto, ref retornoObterDto);
            Assert.AreEqual(true, retornoObterDto.Retorno);

            // Obter lista
            RequisicaoObterListaDto requisicaoObterListaDto = new RequisicaoObterListaDto()
            {
                CampoOrdem           = "DESCRICAO",
                IdUsuario            = requisicaoDto.IdUsuario,
                Identificacao        = requisicaoDto.Identificacao,
                NumeroItensPorPagina = 2,
                Pagina = 1
            };

            RetornoObterListaDto <ProdutoDto> retornoObterListaDto = new RetornoObterListaDto <ProdutoDto>();

            produtoBll.ObterListaFiltrada(requisicaoObterListaDto, ref retornoObterListaDto);
            Assert.AreEqual(true, retornoObterDto.Retorno);

            // Excluir
            produtoBll.Excluir(requisicaoObterDto, ref retornoDto);
            Assert.AreEqual(true, retornoObterDto.Retorno);
        }
Beispiel #9
0
        public ActionResult Editar(ProdutoModel model)
        {
            //Se não tiver login, encaminhar para a tela de login
            if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao))
            {
                return(RedirectToAction("Login", "Usuario"));
            }

            //Valida a entidade recebida
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Converte para DTO
            ProdutoDto produtoDto   = new ProdutoDto();
            string     mensagemErro = "";

            if (!model.ConverterModelParaDto(ref produtoDto, ref mensagemErro))
            {
                ViewBag.MensagemErro = mensagemErro;
                return(View("Erro"));
            }

            //Preparar requisição e retorno
            RetornoDto retorno = new RetornoDto();
            RequisicaoEntidadeDto <ProdutoDto> requisicaoDto = new RequisicaoEntidadeDto <ProdutoDto>()
            {
                EntidadeDto   = produtoDto,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            ProdutoBll produtoBll = new ProdutoBll(true);

            produtoBll.Editar(requisicaoDto, ref retorno);

            //Tratar o retorno
            if (retorno.Retorno == false)
            {
                ModelState.AddModelError("", retorno.Mensagem);
                return(View(model));
            }

            TempData["Retorno"] = "ALTERADO";

            //Voltar para o visualizar do produto
            return(RedirectToAction("Index"));
        }
        private void AlterarProduto()
        {
            int ID = int.TryParse(txtID.Text, out ID) ? ID : 0;

            try
            {
                ProdutoBll produtoBll          = new ProdutoBll();
                Produto    produto             = produtoBll.RetornaProduto(ID);
                int        fornecedorID        = int.TryParse(ddlFornecedor.SelectedValue, out fornecedorID) ? fornecedorID : 0;
                decimal    precoUnitario       = decimal.TryParse(txtPrecoUnitario.Text, out precoUnitario) ? precoUnitario : 0;
                decimal    precoQuantidade     = decimal.TryParse(txtPrecoQuantidade.Text, out precoQuantidade) ? precoQuantidade : 0;
                decimal    quantidadeReposicao = decimal.TryParse(txtQuantidadeReposicao.Text, out quantidadeReposicao) ? quantidadeReposicao : 0;

                produto.Ativo     = cbAtivo.Checked;
                produto.Ativo     = cbAtivo.Checked;
                produto.Descricao = txtDescricao.Text;
                //TODO: IMPLEMENTAR
                //produto.EmpresaID
                //produto.FornecedorID = fornecedorID;
                produto.PrecoQuantidade = precoQuantidade;
                produto.PrecoUnitario   = precoUnitario;

                produtoBll.AlterarProduto(produto);

                LimparFormulario();

                LogBll.InserirLog(new Log
                {
                    ItemID   = ID,
                    Login    = Context.User.Identity.Name,
                    Operacao = TipoOperacao.Update.ToString(),
                    Tabela   = "Produto"
                });

                Msg.Sucesso(Resource.ItemSalvoSucesso, this);
            }
            catch (Exception ex)
            {
                LogBll.InserirLog(new Log
                {
                    ItemID   = ID,
                    Login    = Context.User.Identity.Name,
                    Mensagem = ex.Message,
                    Operacao = TipoOperacao.Update.ToString(),
                    Tabela   = "Produto"
                });

                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
        private void BindarProdutos()
        {
            try
            {
                ProdutoBll ProdutoBll = new ProdutoBll();

                ddlProdutos.DataSource     = ProdutoBll.RetornaProdutos();
                ddlProdutos.DataTextField  = "Descricao";
                ddlProdutos.DataValueField = "ID";
                ddlProdutos.DataBind();
                ddlProdutos.Items.Insert(0, "Selecione");
                ddlProdutos.Items[0].Value = "0";
            }
            catch (Exception ex)
            {
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
Beispiel #12
0
        public static ProdutoDto IncluirProdutoTeste()
        {
            RequisicaoEntidadeDto <ProdutoDto> requisicaoDto = new RequisicaoEntidadeDto <ProdutoDto>()
            {
                EntidadeDto = RetornarNovoProduto()
            };

            Assert.IsTrue(Utilidades.RetornarAutenticacaoRequisicaoPreenchida(requisicaoDto));
            ProdutoBll produtoBll = new ProdutoBll(true);

            // Incluir
            RetornoDto retornoDto = new RetornoDto();

            produtoBll.Incluir(requisicaoDto, ref retornoDto);
            Assert.AreEqual(true, retornoDto.Retorno);

            return(requisicaoDto.EntidadeDto);
        }
        protected void ddlProdutos_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                ProdutoBll ProdutoBll = new ProdutoBll();
                int        ID         = int.Parse(ddlProdutos.SelectedValue);

                if (!ID.Equals(0))
                {
                    Produto Produto = ProdutoBll.RetornaProduto(ID);

                    txtPrecoProduto.Text = string.Format("{0:N}", Produto.PrecoUnitario);
                }
            }
            catch (Exception ex)
            {
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
Beispiel #14
0
        public ActionResult ExcluirProduto(ExclusaoModel model)
        {
            //Se não tiver login, encaminhar para a tela de login
            if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao))
            {
                return(RedirectToAction("Login", "Usuario"));
            }

            if (!SessaoUsuario.SessaoLogin.Administrador)
            {
                ViewBag.MensagemErro = "Para excluir um produto é necessário " +
                                       $"logar com um usuário administrador.";
                return(View("SemPermissao"));
            }

            //Preparar requisição e retorno
            RetornoDto         retorno       = new RetornoDto();
            RequisicaoObterDto requisicaoDto = new RequisicaoObterDto()
            {
                Id            = model.Id,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            ProdutoBll produtoBll = new ProdutoBll(true);

            produtoBll.Excluir(requisicaoDto, ref retorno);

            //Tratar o retorno
            if (retorno.Retorno == false)
            {
                ModelState.AddModelError("", retorno.Mensagem);
                return(View("Excluir", model));
            }

            TempData["Retorno"] = "EXCLUIDO";

            //Voltar para a index de produto
            return(RedirectToAction("Index"));
        }
        private void BindarGrid()
        {
            try
            {
                ProdutoBll produtoBll = new ProdutoBll();

                gvProdutos.DataSource = produtoBll.BuscarProdutos(txtFiltro.Text);
                gvProdutos.DataBind();
            }
            catch (Exception ex)
            {
                LogBll.InserirLog(new Log
                {
                    Login    = User.Identity.Name,
                    Mensagem = ex.Message,
                    Operacao = TipoOperacao.Read.ToString(),
                    Tabela   = "Produto"
                });
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
Beispiel #16
0
 public EstoqueBll()
 {
     context    = new Context();
     rep        = new EstoqueRepository(context);
     produtoBll = new ProdutoBll();
 }