private void Eventos() { BuscarProduto.Select(); KeyDown += KeyDowns; ModoRapido.KeyDown += KeyDowns; BuscarProduto.KeyDown += KeyDowns; GridListaProdutos.KeyDown += KeyDowns; Quantidade.KeyDown += KeyDowns; Masks.SetToUpper(this); Shown += (s, e) => { // Autocomplete de produtos collection = _mItem.AutoComplete("Produtos"); BuscarProduto.AutoCompleteCustomSource = collection; Medidas.DataSource = Support.GetMedidas(); SetHeadersTable(GridListaProdutos); GetDataTableItens(GridListaProdutos, _mNota.id_pedido); LoadTotais(); ClearForms(); BuscarProduto.Select(); if (_mNota.Status != "Pendente") { progress5.Visible = false; pictureBox1.Visible = false; label9.Visible = false; } }; ModoRapido.Click += (s, e) => AlterarModo(); Next.Click += (s, e) => OpenForm.Show <TelaFrete>(this); Back.Click += (s, e) => Close(); addProduto.Click += (s, e) => LoadItens(); BuscarProduto.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { if (ModoRapAva == 1) { if (!string.IsNullOrEmpty(nomeProduto()[0])) { var item = _mItem.FindById(collection.Lookup(nomeProduto()[0])).FirstOrDefault <Model.Item>(); if (item != null) { Preco.Text = Validation.FormatPrice(item.ValorVenda); Medidas.SelectedItem = item.Medida; } Quantidade.Focus(); return; } } if (string.IsNullOrEmpty(nomeProduto()[0])) { ModalItens(); } else { LoadItens(); } } }; GridListaProdutos.DoubleClick += (s, e) => { if (GridListaProdutos.SelectedRows.Count > 0) { EditProduct.idPdt = Validation.ConvertToInt32(GridListaProdutos.SelectedRows[0].Cells["ID"].Value); EditProduct.nrItem = Validation.ConvertToInt32(GridListaProdutos.SelectedRows[0].Cells["#"].Value); EditProduct f = new EditProduct(); f.TopMost = true; if (f.ShowDialog() == DialogResult.OK) { GetDataTableItens(GridListaProdutos, _mNota.id_pedido); LoadTotais(); } } }; Preco.TextChanged += (s, e) => { TextBox txt = (TextBox)s; Masks.MaskPrice(ref txt); }; Preco.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { LoadItens(); } }; Quantidade.KeyPress += (s, e) => Masks.MaskDouble(s, e); Quantidade.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { if (String.IsNullOrEmpty(nomeProduto()[0])) { BuscarProduto.Focus(); } else if (ModoRapAva == 1 && !String.IsNullOrEmpty(nomeProduto()[0])) { Preco.Focus(); } else { LoadItens(); } } }; DescontoPorcentagem.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { LoadItens(); } }; DescontoReais.KeyDown += (s, e) => { if (e.KeyCode == Keys.Enter) { LoadItens(); } }; AlterarImposto.Click += (s, e) => { if (GridListaProdutos.SelectedRows.Count > 0) { AlterarImposto f = new AlterarImposto(); f.TopMost = true; if (f.ShowDialog() == DialogResult.OK) { if (idImposto > 0) { foreach (DataGridViewRow item in GridListaProdutos.Rows) { if ((bool)item.Cells["Selecione"].Value == true) { new Controller.Imposto().SetImposto(Validation.ConvertToInt32(item.Cells["ID"].Value), idImposto, "NFe", NCM); } } } GetDataTableItens(GridListaProdutos, _mNota.id_pedido); } NCM = ""; idImposto = 0; } BuscarProduto.Select(); }; btnMarcarCheckBox.Click += (s, e) => { foreach (DataGridViewRow item in GridListaProdutos.Rows) { if (btnMarcarCheckBox.Text == "Marcar Todos") { if ((bool)item.Cells["Selecione"].Value == false) { item.Cells["Selecione"].Value = true; AlterarImposto.Visible = true; } } else { item.Cells["Selecione"].Value = false; AlterarImposto.Visible = false; } } if (btnMarcarCheckBox.Text == "Marcar Todos") { btnMarcarCheckBox.Text = "Desmarcar Todos"; } else { btnMarcarCheckBox.Text = "Marcar Todos"; } }; GridListaProdutos.CellClick += (s, e) => { if (GridListaProdutos.Columns[e.ColumnIndex].Name == "Selecione") { if ((bool)GridListaProdutos.SelectedRows[0].Cells["Selecione"].Value == false) { GridListaProdutos.SelectedRows[0].Cells["Selecione"].Value = true; AlterarImposto.Visible = true; } else { GridListaProdutos.SelectedRows[0].Cells["Selecione"].Value = false; bool hideBtns = false; foreach (DataGridViewRow item in GridListaProdutos.Rows) { if ((bool)item.Cells["Selecione"].Value == true) { hideBtns = true; } } AlterarImposto.Visible = hideBtns; } } }; GridListaProdutos.CellMouseEnter += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = (s as DataGridView); if (GridListaProdutos.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Hand; } }; GridListaProdutos.CellMouseLeave += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = (s as DataGridView); if (GridListaProdutos.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Default; } }; }
/// <summary> /// Adiciona item ao pedido, controla o estoque e atualiza os totais. /// </summary> private void AddItem() { if (collection.Lookup(nomeProduto()[0]) > 0 && String.IsNullOrEmpty(PedidoModalItens.NomeProduto)) { var itemId = collection.Lookup(nomeProduto()[0]); Model.Item item = _mItem.FindById(itemId).WhereFalse("excluir").Where("tipo", "Produtos").FirstOrDefault <Model.Item>(); if (ModoRapAva == 0) { Medidas.SelectedItem = item.Medida; } double QuantidadeTxt = Validation.ConvertToDouble(Quantidade.Text); double DescontoReaisTxt = Validation.ConvertToDouble(DescontoReais.Text); double DescontoPorcentagemTxt = Validation.ConvertToDouble(DescontoPorcentagem.Text); string MedidaTxt = Medidas.Text; double PriceTxt = Validation.ConvertToDouble(Preco.Text); #region Controle de estoque var controlarEstoque = IniFile.Read("ControlarEstoque", "Comercial"); if (!string.IsNullOrEmpty(controlarEstoque) && controlarEstoque == "True") { if (item.EstoqueAtual <= 0) { Alert.Message("Opps", "Você está sem estoque desse produto.", Alert.AlertType.warning); return; } } if (PriceTxt == 0) { if (DescontoReaisTxt > item.ValorVenda || DescontoReaisTxt > item.Limite_Desconto || DescontoPorcentagemTxt > 101) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning); return; } } if (PriceTxt > 0) { if (DescontoReaisTxt > PriceTxt || DescontoPorcentagemTxt >= 101) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning); return; } } double LimiteDescontoIni = 0; if (!String.IsNullOrEmpty(IniFile.Read("LimiteDesconto", "Comercial"))) { LimiteDescontoIni = Validation.ConvertToDouble(IniFile.Read("LimiteDesconto", "Comercial")); } if (item.Limite_Desconto != 0) { if (DescontoReaisTxt > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } if (PriceTxt > 0) { var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt); if (porcentagemValor > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } if (PriceTxt == 0) { var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt); if (porcentagemValor > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } } else { if (LimiteDescontoIni != 0) { if (DescontoReaisTxt > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } if (PriceTxt == 0) { var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt); if (porcentagemValor > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } if (PriceTxt > 0) { var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt); if (porcentagemValor > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } } } #endregion var pedidoItem = new Model.PedidoItem(); pedidoItem.SetId(0) .SetTipo("Produtos") .SetPedidoId(_mNota.id_pedido) .SetAdicionalNomePdt(nomeProduto()[1]) .SetItem(item) .SetQuantidade(QuantidadeTxt) .SetMedida(MedidaTxt) .SetDescontoReal(DescontoReaisTxt); if (!pedidoItem.SetValorVenda(PriceTxt)) { if (ModoRapAva == 0) { AlterarModo(); ModoRapAvaConfig = 1; } Preco.Select(); Preco.Focus(); return; } pedidoItem.SetDescontoPorcentagens(DescontoPorcentagemTxt); pedidoItem.SomarTotal(); pedidoItem.Save(pedidoItem); if (item.Tipo == "Produtos") { new Controller.Imposto().SetImposto(pedidoItem.GetLastId()); // Class Estoque -> Se for igual 'Compras', adiciona a quantidade no estoque do Item, se não Remove a quantidade do estoque do Item if (Home.pedidoPage == "Compras" || Home.pedidoPage == "Devoluções") { new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Add().Item(); } else { new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Remove().Item(); } } new Controller.Imposto().SetImposto(pedidoItem.GetLastId()); // Carrega a Grid com o Item adicionado acima. GetDataTableItens(GridListaProdutos, _mNota.id_pedido); // Atualiza o total do pedido, e os totais da tela LoadTotais(); // Limpa os campos ClearForms(); // Verifica se modo é avançado e altera para modo simples, apenas se modo simples for padrão if (ModoRapAva == 1 && ModoRapAvaConfig == 1) { AlterarModo(); ModoRapAvaConfig = 0; } BuscarProduto.Select(); } }