Ejemplo n.º 1
0
        public IHttpActionResult Put(int id, Pedido pedido)
        {
            // valida pedido
            var mensagens = new List <string>();

            if (!pedido.Validar(out mensagens))
            {
                return(BadRequest(string.Join(" ", mensagens)));
            }
            foreach (var item in pedido.Itens)
            {
                if (!item.Validar(out mensagens))
                {
                    return(BadRequest(string.Join(" ", mensagens)));
                }
            }

            try
            {
                // insere pedido
                pedido.Id = id;
                pedidoRepositorio.Alterar(pedido);
                return(Ok(pedido));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult Put(Pedido pedido)
        {
            var mensagens = new List <string>();

            if (pedido == null)
            {
                return(BadRequest("O Pedido não pode ser nulo"));
            }
            if (!pedido.Validar(out mensagens))
            {
                return(BadRequest(string.Join(" - ", mensagens)));
            }
            var mensagem = "";

            foreach (ItemPedido item in pedido.Itens)
            {
                if (!item.Validar(out mensagem))
                {
                    mensagens.Add(mensagem);
                }
                Produto produto = _produtoRepositorio.Obter(item.ProdutoId);
                if (produto != null)
                {
                    ItemPedido itemPedidoAntigo = _itemPedidoRepositorio.Obter(item.Id);

                    if (itemPedidoAntigo != null)
                    {
                        var novoEstoque = produto.Estoque + (itemPedidoAntigo.Quantidade - item.Quantidade);
                        //Pega a quantidade do pedido antigo e subtrai da nova Quantidade,
                        //esta diferença, sendo positiva ou negativa é descontada/adicionada
                        // no estoque do produto

                        if (novoEstoque >= 0)
                        {
                            Produto produtoAlterado = new Produto(produto.Id, produto.Nome, produto.Preco, novoEstoque);
                            _produtoRepositorio.Alterar(produtoAlterado);
                        }
                        else
                        {
                            mensagens.Add("Estoque com quantidade insuficiente do produto de ID " + produto.Id);
                        }
                    }
                    else
                    {
                        ItemPedido itemPedidoNovo = _itemPedidoRepositorio.Criar(item, pedido.Id);
                    }
                }
                else
                {
                    mensagens.Add("Produto de Id " + item.ProdutoId + " é inválido");
                }
            }
            if (mensagens.Count > 0)
            {
                return(BadRequest(string.Join(" - ", mensagens)));
            }
            _pedidoRepositorio.Alterar(pedido);
            return(Ok(pedido));
        }
Ejemplo n.º 3
0
        public IHttpActionResult Put(Pedido pedido)
        {
            //if (!pedido.Validar(out mensagens))
            //    return BadRequest(string.Join(".", mensagens.ToArray()));

            _pedidoRepositorio.Alterar(pedido);

            return(Ok(pedido));
        }
Ejemplo n.º 4
0
        public ActionResult Alterar(PedidoViewModel pedido)
        {
            if (ModelState.IsValid)
            {
                var ped = Mapper.Map <PedidoViewModel, Pedido>(pedido);
                _pedidoRep.Alterar(ped);
            }

            return(RedirectToAction("Index"));
        }
        public HttpResponseMessage DevolverImovel(int id)
        {
            var pedido = repositorio.ObterPorId(id);

            if (pedido.DataEntregaRealizada != null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound,
                                              new { error = "Não existe pedido com o id informado" }));
            }
            pedido.DataEntregaRealizada = DateTime.Now;
            pedido.CalcularPrecoTotal();
            repositorioEstoque.AdicionarImovelEstoque(pedido.Imovel.Id, pedido.Combo.Id);
            foreach (var adicional in pedido.Adicionais)
            {
                adicional.Adicional.Quantidade += 1;
                repositorioAdicionais.Alterar(adicional.Adicional);
            }
            repositorio.Alterar(pedido);
            return(Request.CreateResponse(HttpStatusCode.OK, new { data = pedido.TotalPago }));
        }
        public IHttpActionResult Put(Pedido pedido)
        {
            var mensagens = new List <string>();

            if (!pedido.Validar(out mensagens))
            {
                return(BadRequest(string.Join(".", mensagens.ToArray())));
            }
            _pedidoRepositorio.Alterar(pedido);
            return(Ok(pedido));
        }
        public IHttpActionResult Put(Pedido pedido)
        {
            List <string> listaErros;

            if (!pedido.Validar(out listaErros))
            {
                return(BadRequest(string.Join(".\n", listaErros.ToArray())));
            }
            repositorio.Alterar(pedido);
            return(Ok(pedido));
        }
        public IHttpActionResult Put(Pedido pedido)
        {
            var mensagens = new List <string>();

            if (servico.ValidarPedido(pedido))
            {
                return(BadRequest("Algum item do pedido sem estoque"));
            }

            _pedidoRepositorio.Alterar(pedido);

            return(Ok(pedido));
        }
        public IHttpActionResult SetarDataPagamento(int id, DateTime data) //id sendo a rota, DateTime os dados
        {
            var pedido = repositorio.Obter(id);

            if (pedido != null)
            {
                return(BadRequest("Esse livro não se encontra cadastrado"));
            }

            pedido.Entregar(data);

            repositorio.Alterar(pedido);
            return(Ok());
        }
 public IHttpActionResult Put(Pedido pedido)
 {
     _pedidoRepositorio.Alterar(pedido);
     return(Ok(pedido));
 }
Ejemplo n.º 11
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            Enum.TryParse <SituacaoPedido>(cboSituacao.SelectedValue.ToString(), out situacaoPedido);
            int valueSituacaoPedido = (int)situacaoPedido;

            errorProvider1.Clear();
            if (cboCliente.Text == string.Empty)
            {
                errorProvider1.SetError(cboCliente, "Selecione o cliente do pedido.");
                cboCliente.Focus();
                return;
            }
            if (cboFormaPagamento.Text == string.Empty)
            {
                errorProvider1.SetError(cboFormaPagamento, "Selecione a forma de pagamento do pedido.");
                cboFormaPagamento.Focus();
                return;
            }
            if (dtpPrevisaoPagamento.Text == string.Empty)
            {
                errorProvider1.SetError(dtpPrevisaoPagamento, "Informe a data de previsão de pagamento.");
                dtpPrevisaoPagamento.Focus();
                return;
            }
            if (cboSituacao.Text == string.Empty)
            {
                errorProvider1.SetError(cboSituacao, "Informe a situação do pedido.");
                cboSituacao.Focus();
                return;
            }
            if (cboSituacao.Text == "PAGO" && dtpDataPagamento.Text == string.Empty)
            {
                errorProvider1.SetError(dtpDataPagamento, "Informe a data de pagamento do pedido.");
                dtpDataPagamento.Focus();
                return;
            }
            if (dgvPedidoItem.Rows.Count == 0)
            {
                errorProvider1.SetError(cboProduto, "Inclua pelo menos um produto ao pedido.");
                cboProduto.Focus();
                return;
            }
            if (valueSituacaoPedido == 3 && txtMotivo.Text == string.Empty)
            {
                errorProvider1.SetError(txtMotivo, "Informe o motivo do cancelamento do pedido.");
                txtMotivo.Focus();
                return;
            }


            PedidoRepositorio <Pedido> pedidoRepo = new PedidoRepositorio <Pedido>();

            try
            {
                Pedido             pedido     = new Pedido();
                IList <PedidoItem> pedidoItem = new List <PedidoItem>();
                Cliente            cliente    = new Cliente();

                //Recupera as informações do cliente selecionado no combo Clientes.
                //Atualiza a classe cliente instanciada na classe pedido
                if (clienteInserido > 0)
                {
                    pedido.Cliente = consultaClienteSelecionado(clienteInserido);
                }
                else
                {
                    pedido.Cliente = consultaClienteSelecionado(Convert.ToInt32(this.cboCliente.SelectedValue.ToString()));
                }

                //Recupera as informações do cliente selecionado no combo Clientes.
                //Atualiza a classe cliente instanciada na classe pedido
                pedido.FormaPagamento = consultaFormaPagamentoSelecionada(Convert.ToInt32(this.cboFormaPagamento.SelectedValue.ToString()));


                pedido.Id                      = idPedido;
                pedido.Usuario.Id              = Global.idUsuario;
                pedido.Data_Inclusao           = DateTime.Now;
                pedido.Data_Previsao_Pagamento = Convert.ToDateTime(dtpPrevisaoPagamento.Text);
                pedido.Valor_Total             = Convert.ToDecimal(txtValorPedido.Text);
                pedido.Status                  = situacaoPedido;

                //pedido.Data_Pagamento = Convert.ToDateTime(dtpDataPagamento.Text);
                //pedido.Data_Registro_Pagamento = DateTime.Now;


                //Enum.TryParse<SituacaoPedido>(cboSituacao.SelectedValue.ToString(), out situacaoPedido);
                //int value = (int)situacaoPedido;
                //pedido.Status =Convert.ToString(value);
                //pedido.Status = situacaoPedido;

                //Preencher somente quando a situação do pedido for Pago
                if (valueSituacaoPedido == 2)
                {
                    //pedido.UsuarioPagamento.Id = Global.idUsuario;
                    pedido.Status                  = situacaoPedido;
                    pedido.Data_Pagamento          = Convert.ToDateTime(dtpDataPagamento.Text);
                    pedido.Data_Registro_Pagamento = DateTime.Now;
                }
                else if (valueSituacaoPedido == 3)
                {
                    pedido.Status = situacaoPedido;
                    pedido.Motivo_Cancelamento = txtMotivo.Text.Trim();
                    pedido.Data_Cancelamento   = Convert.ToDateTime(DateTime.Now);
                }



                // Processo de inclusão
                if (pedido.Id == 0)
                {
                    //Percorre o datagridview se o processo for de inclusão
                    foreach (DataGridViewRow dr in dgvPedidoItem.Rows)
                    {
                        var lstPedidoItem = new PedidoItem();
                        //lstPedidoItem.Id = Convert.ToInt32(dr.Cells[0].Value.ToString());
                        lstPedidoItem.Produto.Id     = Convert.ToInt32(dr.Cells[1].Value.ToString());
                        lstPedidoItem.Quantidade     = Convert.ToInt32(dr.Cells[3].Value.ToString());
                        lstPedidoItem.Valor_Unitario = Convert.ToDecimal(dr.Cells[4].Value.ToString());
                        lstPedidoItem.Valor_Total    = Convert.ToDecimal(dr.Cells[5].Value.ToString());

                        pedidoItem.Add(lstPedidoItem);

                        //MessageBox.Show("Produto " + lstPedidoItem.Produto.Id + " valor unitário" + lstPedidoItem.Valor_Unitario);
                    }


                    pedidoRepo.InserirPedidoItem(pedido, pedidoItem);
                    MessageBox.Show("Cadastro realizado com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    clienteInserido = 0;
                    this.Close();
                }
                else
                {
                    //Cenário que ocorre no processo de edição

                    // Valida a opção selecionada no combo situação do pedido
                    if (valueSituacaoPedido == 2) // Pago
                    {
                        pedidoUpdate.Data_Pagamento          = Convert.ToDateTime(dtpDataPagamento.Text);
                        pedidoUpdate.Data_Registro_Pagamento = DateTime.Now;
                        pedidoUpdate.Status = situacaoPedido;
                    }
                    else if (valueSituacaoPedido == 3) //Cancelado
                    {
                        pedidoUpdate.Status = situacaoPedido;
                        pedidoUpdate.Motivo_Cancelamento = txtMotivo.Text.Trim();
                        pedidoUpdate.Data_Cancelamento   = DateTime.Now;
                    }

                    pedidoRepo.Alterar(pedidoUpdate);
                    MessageBox.Show("Alteração realizada com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    clienteInserido = 0;
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro na operação " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }