public EstoqueReservadoColecao ConsultarPorFilial(int filial) { try { EstoqueReservadoColecao estoqueReservadoColecao = new EstoqueReservadoColecao(); conexao.LimparParametros(); conexao.AdicionarParametros("@Filial", filial); DataTable dataTable = conexao.ExecutarConsulta(CommandType.StoredProcedure, "uspEstoqueReservadoConsulta"); foreach (DataRow dataRow in dataTable.Rows) { EstoqueReservado estoque = new EstoqueReservado(); estoque.IDProduto = Convert.ToInt32(dataRow["IDProduto"]); estoque.IDFilial = Convert.ToInt32(dataRow["IDFilial"]); estoque.Quantidade = Convert.ToInt32(dataRow["Quantidade"]); estoqueReservadoColecao.Add(estoque); } return(estoqueReservadoColecao); } catch (Exception ex) { throw new Exception("Erro ao consultar estoque reservado. Detalhes: " + ex.Message); } }
private void btnCancelar_Click(object sender, EventArgs e) { #region Deletar Itens do Estoque Reservado //Retira os itens da lista de estoque reservado, caso existam if (pedidoItens != null && pedidoItens.Count > 0) { try { //Retirar item do estoque reservado try { EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio(); EstoqueReservado estoqueReservado = new EstoqueReservado(); foreach (var itemPedido in pedidoItens) { estoqueReservado.IDFilial = filialLogada.IDFilial; estoqueReservado.IDProduto = itemPedido.IDProduto; estoqueReservado.Quantidade = itemPedido.Quantidade * (-1); string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado); int IDProduto; if (!int.TryParse(retorno, out IDProduto)) { } } } catch (Exception ex) { MessageBox.Show("Erro ao remover produtos do estoque reservado. Detalhes: " + ex.Message); } } catch (Exception ex) { MessageBox.Show("Erro ao excluir item da lista. Detalhes: " + ex.Message); } } #endregion gerenciaBotoesParaNovaVenda(); Close(); }
public string Inserir(EstoqueReservado estoque) { try { conexao.LimparParametros(); conexao.AdicionarParametros("@IDProduto", estoque.IDProduto); conexao.AdicionarParametros("@IDPessoaFilial", estoque.IDFilial); conexao.AdicionarParametros("@Quantidade", estoque.Quantidade); string IDProdutoRetorno = conexao.ExecutarManipulacao(CommandType.StoredProcedure, "uspEstoqueManterReservado").ToString(); return(IDProdutoRetorno); } catch (Exception ex) { return(ex.Message); } }
private void deletarItem() { if (pedidoItens != null && pedidoItens.Count > 0) { try { PedidoItem itemDeletado = dbgListaProdutos.SelectedRows[0].DataBoundItem as PedidoItem; DialogResult resultado = MessageBox.Show("Deseja remover este item da lista de produtos? " + itemDeletado.ProdutoNome, "Remover Item!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (resultado == DialogResult.Yes) { pedido.ValorTotal -= itemDeletado.ValorTotal; pedido.ValorTotalComDesconto -= itemDeletado.ValorTotalComDesconto; txtValorTotal.Text = pedido.ValorTotal.ToString(); txtValorFinal.Text = pedido.ValorTotalComDesconto.ToString(); pedidoItens.Remove(itemDeletado); dbgListaProdutos.DataSource = null; dbgListaProdutos.DataSource = pedidoItens; dbgListaProdutos.Update(); dbgListaProdutos.Refresh(); //Retirar item do estoque reservado try { EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio(); EstoqueReservado estoqueReservado = new EstoqueReservado(); estoqueReservado.IDFilial = filialLogada.IDFilial; estoqueReservado.IDProduto = itemDeletado.IDProduto; estoqueReservado.Quantidade = itemDeletado.Quantidade * (-1); string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado); int IDProduto; if (int.TryParse(retorno, out IDProduto)) { return; } } catch (Exception ex) { MessageBox.Show("Erro ao remover produto do estoque reservado. Detalhes: " + ex.Message); } } else { return; } } catch (Exception ex) { MessageBox.Show("Erro ao excluir item da lista. Detalhes: " + ex.Message); } } else { MessageBox.Show("Não existe produto na lista para ser removido."); } }
private void btnFinalizarVenda_Click(object sender, EventArgs e) { if ((pedidoItens != null && pedidoItens.Count > 0) && txtValorTotal.Text != "0,00") { if (txtValorFinal.Text == "0,00") { if (DialogResult.No == MessageBox.Show("Valor final do produto está com DESCONTO de 100%. Deseja realmente continuar?", "Verificação!", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { txtDesconto.Focus(); return; } } if (DialogResult.Yes == MessageBox.Show("Deseja finalizar a venda?", "Verificação!", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { //inicia a gravação no banco #region Finalizar Venda Gravação no banco try { PedidoNegocio pedidoNegocio = new PedidoNegocio(); pedido.ValorTotal = Convert.ToDecimal(txtValorTotal.Text); pedido.ValorTotalComDesconto = Convert.ToDecimal(txtValorFinal.Text); pedido.PorcentagemDesconto = Convert.ToDecimal(txtDesconto.Text.Replace("%", "")); pedido.IDCaixa = ControleSistema.getCaixaAtual().IDCaixa; pedido.IDPagamento = Convert.ToInt32(cbbFormaPagamento.SelectedValue); string retorno = pedidoNegocio.Inserir(pedido); int IDPedido; if (!int.TryParse(retorno, out IDPedido)) { MessageBox.Show("Erro ao inserir pedido. Entre em contato com o suporte técnico."); return; } else { PedidoItemNegocio pedidoItemNegocio = new PedidoItemNegocio(); EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio(); EstoqueReservado estoqueReservado = new EstoqueReservado(); EstoqueNegocio estoqueNegocio = new EstoqueNegocio(); Estoque estoque = new Estoque(); foreach (var item in pedidoItens) { item.IDPedido = IDPedido; pedidoItemNegocio.Inserir(item); estoqueReservado.IDFilial = filialLogada.IDFilial; estoqueReservado.IDProduto = item.IDProduto; estoqueReservado.Quantidade = item.Quantidade * (-1); estoqueReservadoNegocio.Inserir(estoqueReservado); estoque.IDFilial = filialLogada.IDFilial; estoque.IDProduto = item.IDProduto; estoque.Quantidade = item.Quantidade * (-1); estoqueNegocio.Inserir(estoque); } } } catch (Exception ex) { MessageBox.Show("Erro ao inserir pedido. Detalhes: " + ex.Message); } #endregion gerenciaBotoesParaNovaVenda(); } else { return; } } else { MessageBox.Show("Esta faltando dados na venda. Verifique se todos os campos estão preenchidos."); } }
private void btnOk_Click(object sender, EventArgs e) { if (txtCliente.Text != "" && txtproduto.Text != "") { #region Verifica Se Existe o Produto No Estoque Antes de Inserir na Lista try { EstoqueDisponivel estoqueDisponivel = new EstoqueDisponivel(); EstoqueNegocio estoqueNegocio = new EstoqueNegocio(); estoqueDisponivel = estoqueNegocio.ConsultarEstoqueDisponivel(produtoSelecionado.IDProduto, filialLogada.IDFilial); if (estoqueDisponivel.QuantidadeDisponivel < Convert.ToInt32(txtQuantidade.Text)) { MessageBox.Show ("Não existe a quantidade solicitada em estoque do produto " + estoqueDisponivel.NomeProduto + ". Quantidade disponível: " + estoqueDisponivel.QuantidadeDisponivel + " . Quantidade reservada: " + estoqueDisponivel.QuantidadeReservada); return; } else { EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio(); EstoqueReservado estoqueReservado = new EstoqueReservado(); estoqueReservado.IDFilial = filialLogada.IDFilial; estoqueReservado.IDProduto = produtoSelecionado.IDProduto; estoqueReservado.Quantidade = Convert.ToInt32(txtQuantidade.Text); string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado); int IDProduto; if (!int.TryParse(retorno, out IDProduto)) { MessageBox.Show("Erro ao inserir produto no estoque reservado"); return; } } } catch (Exception ex) { MessageBox.Show("Erro ao consultar estoque disponível. Detalhes: " + ex.Message); return; } #endregion #region Adicionar Produto Na Lista De Venda try { if (pedido == null) { //Cria o pedido pedido = new Pedido(); pedido.IDOperacao = 1; pedido.IDPessoaDestinatario = clienteSelecionado.IDCliente; pedido.IDPessoaEmitente = filialLogada.IDFilial; pedido.IDSituacao = 1; } //adiciono item no pedido if (pedidoItens == null) { pedidoItens = new PedidoItemColecao(); } if (pedidoItens.Exists(p => p.IDProduto == produtoSelecionado.IDProduto)) { try { var pedidoItemExistente = pedidoItens.Single(p => p.IDProduto == produtoSelecionado.IDProduto); pedidoItemExistente.Quantidade += Convert.ToInt32(txtQuantidade.Text); pedidoItemExistente.ValorTotal += (produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)); decimal valorDescontoItemExistente = ((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) * Convert.ToDecimal(txtDescontoItem.Text.Replace("%", ""))) / 100; pedidoItemExistente.ValorDesconto += decimal.Round(valorDescontoItemExistente, 2); //45 decimal valorTotalItemComDesconto = (produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) - valorDescontoItemExistente; //22,5 pedidoItemExistente.ValorTotalComDesconto += decimal.Round(valorTotalItemComDesconto, 2); pedidoItemExistente.PercentualDesconto = decimal.Round((pedidoItemExistente.ValorDesconto * 100) / pedidoItemExistente.ValorTotal, 2); pedidoItem = pedidoItemExistente; //Adiciona valor total e total com desconto ao pedido decimal valorTotalDoItemNovo = produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text); pedido.ValorTotal += valorTotalDoItemNovo; txtValorTotal.Text = pedido.ValorTotal.ToString(); decimal valorTotalDoitemNovoComDesconto = valorTotalDoItemNovo - valorDescontoItemExistente; pedido.ValorTotalComDesconto += valorTotalDoitemNovoComDesconto; txtValorFinal.Text = pedido.ValorTotalComDesconto.ToString(); } catch (Exception ex) { MessageBox.Show("Erro ao inserir produto. Detalhes: " + ex.Message); } } else { pedidoItem = new PedidoItem(); pedidoItem.IDProduto = produtoSelecionado.IDProduto; pedidoItem.ProdutoNome = produtoSelecionado.Nome; pedidoItem.Quantidade = Convert.ToInt32(txtQuantidade.Text); pedidoItem.ValorTotal = produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text); decimal valorDescontoItem = ((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) * Convert.ToDecimal(txtDescontoItem.Text.Replace("%", ""))) / 100; pedidoItem.ValorDesconto = decimal.Round(valorDescontoItem, 2); pedidoItem.ValorUnitario = produtoSelecionado.PrecoVenda; pedidoItem.ValorTotalComDesconto = decimal.Round((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) - valorDescontoItem, 2); pedidoItem.PercentualDesconto = decimal.Round((pedidoItem.ValorDesconto * 100) / pedidoItem.ValorTotal, 2); //Adiciona valor total e total com desconto ao pedido pedido.ValorTotal += pedidoItem.ValorTotal; txtValorTotal.Text = pedido.ValorTotal.ToString(); pedido.ValorTotalComDesconto += pedidoItem.ValorTotalComDesconto; txtValorFinal.Text = pedido.ValorTotalComDesconto.ToString(); pedidoItens.Add(pedidoItem); } dbgListaProdutos.DataSource = null; dbgListaProdutos.DataSource = pedidoItens; dbgListaProdutos.Columns[0].Visible = false; dbgListaProdutos.Columns[1].Visible = false; dbgListaProdutos.Update(); dbgListaProdutos.Refresh(); txtproduto.Clear(); txtDescontoItem.Text = "0"; //txtQuantidade.Text = "1"; btnProcurarProduto.Focus(); } catch (Exception ex) { MessageBox.Show("Erro ao inserir produto no pedido. Detalhes: " + ex.Message); } } #endregion else { MessageBox.Show("É necesssário adicionar um cliente e selecionar um produto para inserir na venda."); } }