private void Eventos() { KeyDown += KeyDowns; KeyPreview = true; Masks.SetToUpper(this); Shown += (s, e) => { Refresh(); BeginInvoke((MethodInvoker) delegate { IdPdtSelecionado = Produtos.IdPdtSelecionado; backOn.RunWorkerAsync(); }); SetHeadersAdicionais(GridAdicionais); SetHeadersCombo(GridCombos); nome.Focus(); }; menuEstoque.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque); label27.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque); pictureBox12.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelEstoque, menuEstoque); menuImpostos.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos); label35.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos); pictureBox16.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelImpostos, menuImpostos); menuAdicionais.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais); label30.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais); pictureBox13.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelAdicionais, menuAdicionais); menuCombo.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo); label33.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo); pictureBox17.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelCombo, menuCombo); menuInfoAdicionais.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais); label31.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais); pictureBox15.Click += (s, e) => Support.DynamicPanel(flowLayoutPanel, panelInfoAdicionais, menuInfoAdicionais); btnExit.Click += (s, e) => { var dataProd = _modelItem.Query().Where("id", IdPdtSelecionado) .Where("atualizado", "01.01.0001, 00:00:00.000").WhereNull("codebarras").FirstOrDefault(); if (dataProd != null) { var result = AlertOptions.Message("Atenção!", "Esse produto não foi editado, deseja deletar?", AlertBig.AlertType.info, AlertBig.AlertBtn.YesNo); if (result) { var data = _modelItem.Remove(IdPdtSelecionado, false); if (data) { Close(); } } nome.Focus(); return; } Close(); }; btnSalvar.Click += (s, e) => Save(); btnRemover.Click += (s, e) => { var result = AlertOptions.Message("Atenção!", "Você está prestes a deletar um produto, continuar?", AlertBig.AlertType.warning, AlertBig.AlertBtn.YesNo); if (result) { var data = _modelItem.Remove(IdPdtSelecionado); if (data) { Close(); } } }; btnEstoque.Click += (s, e) => { _modelItem.Nome = nome.Text; if (new Model.Item().ValidarDados(_modelItem)) { return; } var f = new AddEstoque { TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { LoadEstoque(); estoqueminimo.Focus(); DataTableEstoque(); } }; valorcompra.TextChanged += (s, e) => { var txt = (TextBox)s; Masks.MaskPrice(ref txt); }; valorvenda.TextChanged += (s, e) => { var txt = (TextBox)s; Masks.MaskPrice(ref txt); }; txtLimiteDesconto.TextChanged += (s, e) => { var txt = (TextBox)s; Masks.MaskPrice(ref txt); }; btnAddCategoria.Click += (s, e) => { Home.CategoriaPage = "Produtos"; var f = new AddCategorias { FormBorderStyle = FormBorderStyle.FixedSingle, StartPosition = FormStartPosition.CenterScreen, TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { Categorias.DataSource = new Categoria().GetAll("Produtos"); Categorias.Refresh(); } }; btnAddFornecedor.Click += (s, e) => { Home.pessoaPage = "Fornecedores"; AddClientes.Id = 0; var f = new AddClientes { FormBorderStyle = FormBorderStyle.FixedSingle, StartPosition = FormStartPosition.CenterScreen, TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { LoadFornecedores(); } }; btnAddImpostoOne.Click += (s, e) => { View.Produtos.Impostos.idImpSelected = 0; var f = new AddImpostos { FormBorderStyle = FormBorderStyle.FixedSingle, StartPosition = FormStartPosition.CenterScreen, TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { LoadImpostoOne(); LoadImpostoTwo(); } }; btnAddImpostoTwo.Click += (s, e) => { View.Produtos.Impostos.idImpSelected = 0; var f = new AddImpostos { FormBorderStyle = FormBorderStyle.FixedSingle, StartPosition = FormStartPosition.CenterScreen, TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { LoadImpostoOne(); LoadImpostoTwo(); } }; valorvenda.TextChanged += (s, e) => { if (Validation.ConvertToDouble(valorcompra.Text) == 0) { return; } if (Validation.ConvertToDouble(valorvenda.Text) == 0) { return; } var media = (Validation.ConvertToDouble(valorvenda.Text) - Validation.ConvertToDouble(valorcompra.Text)) * 100 / Validation.ConvertToDouble(valorcompra.Text); precoMedio.Text = $"{Validation.ConvertToDouble(Validation.RoundTwo(media))}%"; }; valorcompra.TextChanged += (s, e) => { if (Validation.ConvertToDouble(valorcompra.Text) == 0) { return; } if (Validation.ConvertToDouble(valorvenda.Text) == 0) { return; } var media = (Validation.ConvertToDouble(valorvenda.Text) - Validation.ConvertToDouble(valorcompra.Text)) * 100 / Validation.ConvertToDouble(valorcompra.Text); precoMedio.Text = Validation.Price(media); }; estoqueminimo.KeyPress += (s, e) => Masks.MaskDouble(s, e); codebarras.KeyPress += (s, e) => Masks.MaskOnlyNumbers(s, e, 20); referencia.KeyPress += (s, e) => Masks.MaskOnlyNumberAndChar(s, e, 50); ncm.KeyPress += (s, e) => Masks.MaskOnlyNumbers(s, e, 8); cest.KeyPress += (s, e) => Masks.MaskOnlyNumbers(s, e, 7); nome.TextChanged += (s, e) => { btnEstoque.Visible = nome.Text.Length >= 2; }; nome.KeyPress += (s, e) => { Masks.MaskMaxLength(s, e, 100); }; btnHelp.Click += (s, e) => Support.OpenLinkBrowser(Configs.LinkAjuda); chkImpostoNFE.Click += (s, e) => { if (chkImpostoNFE.Checked) { ImpostoNFE.Enabled = true; } else { ImpostoNFE.Enabled = false; ImpostoNFE.SelectedValue = 0; } }; chkImpostoCFE.Click += (s, e) => { if (chkImpostoCFE.Checked) { ImpostoCFE.Enabled = true; } else { ImpostoCFE.Enabled = false; ImpostoCFE.SelectedValue = 0; } }; btnRemoverImage.Click += (s, e) => { _modelItem.Id = IdPdtSelecionado; if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}")) { File.Delete($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}"); } _modelItem.Image = ""; _modelItem.Save(_modelItem, false); imageProduct.Image = Resources.sem_imagem; pathImage.Text = ""; btnRemoverImage.Visible = false; Alert.Message("Pronto!", "Imagem removida com sucesso.", Alert.AlertType.success); }; btnImage.Click += (s, e) => { ofd.RestoreDirectory = true; ofd.Filter = @"Image files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png"; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.Multiselect = false; if (ofd.ShowDialog() == DialogResult.OK) { if (!ofd.CheckFileExists) { Alert.Message("Opps", "Não encontramos a imagem selecionada. Tente Novamente!", Alert.AlertType.error); return; } var path = ofd.InitialDirectory + ofd.FileName; var ext = Path.GetExtension(ofd.FileName); if (File.Exists(path)) { if (!Directory.Exists(Program.PATH_IMAGE + @"\Imagens")) { Directory.CreateDirectory(Program.PATH_IMAGE + @"\Imagens"); } var nameImage = $"{Validation.CleanString(nome.Text).Replace(" ", "-")}{ext}"; if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{nameImage}")) { File.Delete($@"{Program.PATH_IMAGE}\Imagens\{nameImage}"); } File.Copy(path, $@"{Program.PATH_IMAGE}\Imagens\{nameImage}"); _modelItem.Id = IdPdtSelecionado; _modelItem.Image = nameImage; _modelItem.Save(_modelItem, false); var imageAsByteArray = File.ReadAllBytes($@"{Program.PATH_IMAGE}\Imagens\{nameImage}"); imageProduct.Image = Support.ByteArrayToImage(imageAsByteArray); pathImage.Text = $@"{Program.PATH_IMAGE}\Imagens\{nameImage}"; btnRemoverImage.Visible = true; Alert.Message("Pronto!", "Imagem atualizada com sucesso.", Alert.AlertType.success); } else { Alert.Message("Opps", "Não foi possível copiar a imagem. Tente novamente.", Alert.AlertType.error); } } }; filterTodos.Click += (s, e) => DataTableEstoque(); filterMaisRecentes.Click += (s, e) => DataTableEstoque(); selecionarNCM.Click += (s, e) => { var f = new ModalNCM { TopMost = true }; if (f.ShowDialog() == DialogResult.OK) { ncm.Text = ModalNCM.NCM; } }; backOn.DoWork += (s, e) => { _modelItem = _modelItem.FindById(IdPdtSelecionado).FirstOrDefault <Model.Item>(); ListCategorias = new Categoria().GetAll("Produtos"); ListFornecedores = new Pessoa().GetAll("Fornecedores"); Impostos = new Model.Imposto().FindAll().WhereFalse("excluir").OrderByDesc("nome").Get(); Impostos2 = new Model.Imposto().FindAll().WhereFalse("excluir").OrderByDesc("nome").Get(); }; backOn.RunWorkerCompleted += (s, e) => { Start(); if (IdPdtSelecionado > 0) { LoadData(); } else { _modelItem = new Item { Tipo = "Produtos", Id = IdPdtSelecionado }; if (_modelItem.Save(_modelItem, false)) { IdPdtSelecionado = _modelItem.GetLastId(); LoadData(); } else { Alert.Message("Opss", "Erro ao criar.", Alert.AlertType.error); Close(); } } }; workerBackEstoque.DoWork += (s, e) => { var query = new ItemEstoqueMovimentacao().Query() .LeftJoin("USUARIOS", "USUARIOS.id_user", "ITEM_MOV_ESTOQUE.id_usuario") .Select("ITEM_MOV_ESTOQUE.*", "USUARIOS.id_user", "USUARIOS.nome as nome_user") .Where("id_item", IdPdtSelecionado) .OrderByDesc("criado"); if (LimitShowStock > 0) { query.Limit(LimitShowStock); } ListEstoque = query.Get(); }; workerBackEstoque.RunWorkerCompleted += (s, e) => { GetDataTableEstoque(listaEstoque); }; btnVariacao.Click += (s, e) => { ModalVariacao.idProduto = IdPdtSelecionado; var form = new ModalVariacao(); form.ShowDialog(); }; GridAdicionais.CellContentClick += (s, e) => { if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione") { GridAdicionais.SelectedRows[0].Cells["Selecione"].Value = (bool)GridAdicionais.SelectedRows[0].Cells["Selecione"].Value == false; } }; GridAdicionais.CellMouseEnter += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Hand; } }; GridAdicionais.CellMouseLeave += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridAdicionais.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Default; } }; GridCombos.CellContentClick += (s, e) => { if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione") { GridCombos.SelectedRows[0].Cells["Selecione"].Value = (bool)GridCombos.SelectedRows[0].Cells["Selecione"].Value == false; } }; GridCombos.CellMouseEnter += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Hand; } }; GridCombos.CellMouseLeave += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridCombos.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Default; } }; }
/// <summary> /// Carrega os itens na tabela /// </summary> /// <param name="table"></param> private void LoadDataTableItens() { if (listProdutos.Count == listProdutosSelecionados.Count) { label1.Visible = false; panel4.Visible = false; panel3.Height = 345; return; } //var countCat = listProdutos.Cast<dynamic>().Count(itens => itens.Tipo == "Categoria"); //if (countCat > 1) // btnProximo.Visible = true; foreach (dynamic itens in listProdutos) { int idItem = Validation.ConvertToInt32(itens.Id); if (listProdutosSelecionados.Contains(idItem)) { continue; } if (itens.Tipo == "Produto") { var dataItem = _mItem.FindById(idItem).FirstOrDefault <Item>(); if (dataItem != null) { Image photo = null; if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{dataItem.Image}")) { var imageAsByteArray = File.ReadAllBytes($@"{Program.PATH_IMAGE}\Imagens\{dataItem.Image}"); photo = Support.ByteArrayToImage(imageAsByteArray); } GridListaItens.Rows.Add( true, photo, dataItem.Id, dataItem.Nome, Validation.FormatPrice(dataItem.ValorVenda, true), Validation.FormatPrice(0, true), Validation.FormatMedidas(dataItem.Medida, Validation.ConvertToDouble(dataItem.EstoqueAtual)), "", Validation.FormatPrice(dataItem.ValorVenda, true), Resources.menu20x ); } } if (itens.Tipo == "Categoria") { label1.Visible = true; panel4.Visible = true; panel3.Height = 128; var dataCat = _mCategoria.FindById(idItem).FirstOrDefault <Categoria>(); if (dataCat != null) { label1.Text = $@"Itens da categoria: {dataCat.Nome}"; } var dataItens = _mItem.FindAll(new[] { "id", "excluir", "nome", "valorvenda", "estoqueatual", "categoriaid" }) .WhereFalse("excluir").Where("tipo", "Produtos") .Where("categoriaid", idItem) .Get <Item>(); foreach (var data in dataItens) { Image photo = null; if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{data.Image}")) { var imageAsByteArray = File.ReadAllBytes($@"{Program.PATH_IMAGE}\Imagens\{data.Image}"); photo = Support.ByteArrayToImage(imageAsByteArray); } GridListaSelectItens.Rows.Add( photo, data.Id, data.Nome, Validation.FormatPrice(data.ValorVenda, true), Validation.FormatMedidas(data.Medida, Validation.ConvertToDouble(data.EstoqueAtual)) ); } listProdutosSelecionados.Add(idItem); break; } listProdutosSelecionados.Add(idItem); } }
private void LoadData() { _modelItem = _modelItem.FindById(IdPdtSelecionado).FirstOrDefault <Model.Item>(); nome.Text = _modelItem?.Nome ?? ""; codebarras.Text = _modelItem?.CodeBarras ?? ""; referencia.Text = _modelItem?.Referencia ?? ""; valorcompra.Text = Validation.Price(_modelItem?.ValorCompra ?? 0); valorvenda.Text = Validation.Price(_modelItem?.ValorVenda ?? 0); estoqueminimo.Text = Validation.FormatMedidas(_modelItem?.Medida ?? "UN", _modelItem?.EstoqueMinimo ?? 0); inf_adicional.Text = _modelItem?.InfAdicional ?? ""; LoadEstoque(); CustoMedio(); if (nome.Text.Length > 2) { btnEstoque.Enabled = true; } if (_modelItem.Impostoid > 0) { ImpostoNFE.SelectedValue = _modelItem.Impostoid; chkImpostoNFE.Checked = true; } else { ImpostoNFE.Enabled = false; } if (_modelItem.Impostoidcfe > 0) { ImpostoCFE.SelectedValue = _modelItem.Impostoidcfe; chkImpostoCFE.Checked = true; } else { ImpostoCFE.Enabled = false; } cest.Text = _modelItem?.Cest ?? ""; ncm.Text = _modelItem?.Ncm ?? ""; if (_modelItem.Origem != null) { Origens.SelectedValue = _modelItem.Origem; } if (_modelItem.Medida != null) { Medidas.SelectedItem = _modelItem.Medida; } Categorias.SelectedValue = _modelItem.Categoriaid.ToString(); Fornecedor.SelectedValue = _modelItem.Fornecedor.ToString(); Ativo.Toggled = _modelItem.ativo != 1; aliq_federal.Text = Validation.Price(_modelItem.AliqFederal); aliq_estadual.Text = Validation.Price(_modelItem.AliqEstadual); aliq_municipal.Text = Validation.Price(_modelItem.AliqMunicipal); txtLimiteDesconto.Text = Validation.Price(_modelItem.Limite_Desconto); if (File.Exists($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}")) { var imageAsByteArray = File.ReadAllBytes($@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}"); imageProduct.Image = Support.ByteArrayToImage(imageAsByteArray); pathImage.Text = $@"{Program.PATH_IMAGE}\Imagens\{_modelItem.Image}"; btnRemoverImage.Visible = true; } DataTableEstoque(); SetContentTableAdicionais(GridAdicionais); foreach (DataGridViewRow item in GridAdicionais.Rows) { if (!string.IsNullOrEmpty(_modelItem.Adicional)) { var addons = _modelItem.Adicional.Split(','); foreach (var id in addons) { if (Validation.ConvertToInt32(item.Cells["ID"].Value) == Validation.ConvertToInt32(id)) { item.Cells["Selecione"].Value = true; } } } } SetContentTableCombos(GridCombos); foreach (DataGridViewRow item in GridCombos.Rows) { if (!string.IsNullOrEmpty(_modelItem.Combos)) { var combos = _modelItem.Combos.Split(','); foreach (var id in combos) { if (Validation.ConvertToInt32(item.Cells["ID"].Value) == Validation.ConvertToInt32(id)) { item.Cells["Selecione"].Value = true; } } } } }