// Autocomplete no campo Grupos private void AutoCompleteGrupos() { var grupos = new ItemGrupo().FindAll().WhereFalse("excluir").Get <ItemGrupo>(); if (grupos != null) { foreach (var item in grupos) { collection.Add(item.Title, item.Id); } } txtGrupos.AutoCompleteCustomSource = collection; }
private void LoadData(DataGridView Table) { Table.Rows.Clear(); var grupos = new ItemGrupo().FindAll().WhereFalse("excluir").Get <ItemGrupo>(); foreach (var item in grupos) { Table.Rows.Add( false, item.Id, item.Title ); } Table.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; }
private void Eventos() { KeyDown += KeyDowns; KeyPreview = true; Masks.SetToUpper(this); Shown += (s, e) => { SetHeadersTable(GridLista); if (Id == 0) { txtVariacao.Visible = false; btnAddVariacao.Visible = false; GridLista.Visible = false; } if (Id <= 0) { return; } var grupo = new ItemGrupo().FindAll().WhereFalse("excluir").Where("id", Id).FirstOrDefault <ItemGrupo>(); if (grupo == null) { return; } txtGrupo.Text = grupo.Title; txtVariacao.Visible = true; btnAddVariacao.Visible = true; GridLista.Visible = true; // Carrega os atributos LoadData(GridLista); }; btnSalvarGrupo.Click += (s, e) => { if (string.IsNullOrEmpty(txtGrupo.Text)) { Alert.Message("Opps", "O título do grupo não pode ficar vazio.", Alert.AlertType.error); return; } var grupoCheck = new ItemGrupo().FindAll().WhereFalse("excluir").Where("title", txtGrupo.Text) .FirstOrDefault <ItemGrupo>(); if (grupoCheck != null) { Alert.Message("Opps", "Já existe um grupo com esse título.", Alert.AlertType.error); return; } var grupo = new ItemGrupo { Id = Id, Title = txtGrupo.Text }; if (!grupo.Save(grupo)) { return; } Id = grupo.GetLastId(); txtVariacao.Visible = true; btnAddVariacao.Visible = true; GridLista.Visible = true; }; btnAddVariacao.Click += (s, e) => { if (string.IsNullOrEmpty(txtVariacao.Text)) { Alert.Message("Opps", "O título da variação não pode ficar vazio.", Alert.AlertType.error); return; } if (Id == 0) { Alert.Message("Opps", "Você deve adicionar um grupo antes.", Alert.AlertType.error); return; } var attrCheck = new ItemAtributos().FindAll().WhereFalse("excluir").Where("atributo", txtVariacao.Text) .Where("grupo", Id).FirstOrDefault <ItemAtributos>(); if (attrCheck != null) { Alert.Message("Opps", "Já existe um atributo com esse título.", Alert.AlertType.error); return; } var add = new ItemAtributos { Grupo = Id, Atributo = txtVariacao.Text }; if (!add.Save(add)) { return; } txtVariacao.Clear(); // Carrega os atributos LoadData(GridLista); }; btnDelete.Click += (s, e) => { ListAtributos.Clear(); foreach (DataGridViewRow item in GridLista.Rows) { if ((bool)item.Cells["Selecione"].Value) { ListAtributos.Add(Validation.ConvertToInt32(item.Cells["ID"].Value)); } } var result = AlertOptions.Message("Atenção!", "Você está prestes a deletar os ATRIBUTOS selecionados, continuar?", AlertBig.AlertType.warning, AlertBig.AlertBtn.YesNo); if (result) { foreach (var attr in ListAtributos) { new ItemAtributos().Remove(attr); } LoadData(GridLista); } btnDelete.Visible = false; }; GridLista.CellClick += (s, e) => { if (GridLista.Columns[e.ColumnIndex].Name == "Selecione") { if ((bool)GridLista.SelectedRows[0].Cells["Selecione"].Value == false) { GridLista.SelectedRows[0].Cells["Selecione"].Value = true; btnDelete.Visible = true; } else { GridLista.SelectedRows[0].Cells["Selecione"].Value = false; var hideBtns = false; foreach (DataGridViewRow item in GridLista.Rows) { if ((bool)item.Cells["Selecione"].Value) { hideBtns = true; } } btnDelete.Visible = hideBtns; } } }; GridLista.CellMouseEnter += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridLista.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Hand; } }; GridLista.CellMouseLeave += (s, e) => { if (e.ColumnIndex < 0 || e.RowIndex < 0) { return; } var dataGridView = s as DataGridView; if (GridLista.Columns[e.ColumnIndex].Name == "Selecione") { dataGridView.Cursor = Cursors.Default; } }; btnVoltar.Click += (s, e) => { DialogResult = DialogResult.OK; Close(); }; }
private void LoadDataGrid() { var checkEstoque = new ItemEstoque().FindAll().WhereFalse("excluir").Where("item", idProduto) .Get <ItemEstoque>(); if (!checkEstoque.Any()) { return; } btnGerar.Visible = false; btnClearCombinacao.Visible = true; txtBuscarVariacao.Text = _mItem.Atributos; var attr1Name = new List <string>(); var attr2Name = new List <string>(); var attr3Name = new List <string>(); var attr1Id = new List <string>(); var attr2Id = new List <string>(); var attr3Id = new List <string>(); var grupos = _mItem.Atributos.Split('+'); var i_attrs = 0; foreach (var word in grupos) { i_attrs++; var grupo = new ItemGrupo().FindAll().WhereFalse("excluir").Where("title", word) .FirstOrDefault <ItemGrupo>(); if (grupo == null) { continue; } var attr = new ItemAtributos().FindAll().WhereFalse("excluir").Where("grupo", grupo.Id) .Get <ItemAtributos>(); foreach (var data in attr) { switch (i_attrs) { case 1: attr1Name.Add($"{data.Atributo}"); attr1Id.Add($"{data.Id}"); break; case 2: attr2Name.Add($" - {data.Atributo}"); attr2Id.Add($", {data.Id}"); break; case 3: attr3Name.Add($" - {data.Atributo}"); attr3Id.Add($", {data.Id}"); break; } } } var lstMaster = new List <List <string> >(); if (attr1Id.Count > 0) { lstMaster.Add(attr1Id); } if (attr2Id.Count > 0) { lstMaster.Add(attr2Id); } if (attr3Id.Count > 0) { lstMaster.Add(attr3Id); } var lstMasterNames = new List <List <string> >(); if (attr1Name.Count > 0) { lstMasterNames.Add(attr1Name); } if (attr2Name.Count > 0) { lstMasterNames.Add(attr2Name); } if (attr3Name.Count > 0) { lstMasterNames.Add(attr3Name); } var ids = GetPermutation(lstMaster.Count, lstMaster); var names = GetPermutation(lstMasterNames.Count, lstMasterNames); if (ids.Count != names.Count) { return; } for (var u = 0; u < ids.Count; u++) { var codeBarras = ""; if (checkCodeBarras.Checked) { codeBarras = CodeBarrasRandom(); } dataGridVariacao.Rows.Add( false, ids[u], names[u], 0, "", codeBarras ); } if (checkEstoque != null && checkEstoque.Any()) { // Verifica se existe algum linha if (dataGridVariacao.Rows.Count > 0) { // Percorre todas as linhas do datagrid foreach (DataGridViewRow row in dataGridVariacao.Rows) { // Percorre todos dados do banco, comparando as linhas do grid foreach (var item in checkEstoque) { if (row.Cells["ID"].Value.ToString() != item.Atributo) { continue; } row.Cells["Referencia"].Value = item.Referencia; row.Cells["Código de Barras"].Value = item.Codebarras; row.Cells["Estoque"].Value = item.Estoque; row.Cells["IDAttr"].Value = item.Id; } } } } dataGridVariacao.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; }
private void Eventos() { KeyDown += KeyDowns; txtGrupos.KeyDown += KeyDowns; KeyPreview = true; Masks.SetToUpper(this); Load += (s, e) => { ToolHelp.Show( "Com essa opção marcada é possível que o sistema dê uma travada para gerar\ncada código de barras diferente um do outro.", pictureBox4, ToolHelp.ToolTipIcon.Info, "Ajuda!"); }; Shown += (s, e) => { Refresh(); _mItem = _mItem.FindById(idProduto).FirstOrDefault <Item>(); AutoCompleteGrupos(); SetHeadersTable(dataGridVariacao); LoadDataGrid(); txtGrupos.Focus(); }; btnAddGrupo.Click += (s, e) => { AddCombination(); }; btnClearCombinacao.Click += (s, e) => { ClearEstoque(); txtBuscarVariacao.Text = ""; btnClearCombinacao.Visible = false; btnGerar.Visible = true; }; btnGerar.Click += (sender, e) => { if (string.IsNullOrEmpty(txtBuscarVariacao.Text)) { Alert.Message("Opps", "Escolhe pelo menos um grupo de variação.", Alert.AlertType.error); return; } if (dataGridVariacao.Rows.Count > 0) { var generateAlert = AlertOptions.Message("Atenção", "Ao gerar novas combinações, você irá perder a atual!\n Continuar?", AlertBig.AlertType.info, AlertBig.AlertBtn.YesNo); if (!generateAlert) { return; } dataGridVariacao.Rows.Clear(); } var attr1Name = new List <string>(); var attr2Name = new List <string>(); var attr3Name = new List <string>(); var attr1Id = new List <string>(); var attr2Id = new List <string>(); var attr3Id = new List <string>(); var grupos = txtBuscarVariacao.Text.Split('+'); var i_attrs = 0; foreach (var word in grupos) { i_attrs++; var grupo = new ItemGrupo().FindAll().WhereFalse("excluir").Where("title", word) .FirstOrDefault <ItemGrupo>(); if (grupo == null) { continue; } var attr = new ItemAtributos().FindAll().WhereFalse("excluir").Where("grupo", grupo.Id) .Get <ItemAtributos>(); foreach (var data in attr) { switch (i_attrs) { case 1: attr1Name.Add($"{data.Atributo}"); attr1Id.Add($"{data.Id}"); break; case 2: attr2Name.Add($" - {data.Atributo}"); attr2Id.Add($", {data.Id}"); break; case 3: attr3Name.Add($" - {data.Atributo}"); attr3Id.Add($", {data.Id}"); break; } } } var lstMaster = new List <List <string> >(); if (attr1Id.Count > 0) { lstMaster.Add(attr1Id); } if (attr2Id.Count > 0) { lstMaster.Add(attr2Id); } if (attr3Id.Count > 0) { lstMaster.Add(attr3Id); } var lstMasterNames = new List <List <string> >(); if (attr1Name.Count > 0) { lstMasterNames.Add(attr1Name); } if (attr2Name.Count > 0) { lstMasterNames.Add(attr2Name); } if (attr3Name.Count > 0) { lstMasterNames.Add(attr3Name); } var ids = GetPermutation(lstMaster.Count, lstMaster); var names = GetPermutation(lstMasterNames.Count, lstMasterNames); if (ids.Count != names.Count) { return; } for (var u = 0; u < ids.Count; u++) { var codeBarras = ""; if (checkCodeBarras.Checked) { codeBarras = CodeBarrasRandom(); } dataGridVariacao.Rows.Add( false, ids[u], names[u], 0, "", codeBarras ); } dataGridVariacao.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; }; btnSalvar.Click += (s, e) => { if (dataGridVariacao.Rows.Count <= 0) { return; } var item = new Item().FindById(idProduto).WhereFalse("excluir").FirstOrDefault <Item>(); if (item != null) { item.Atributos = txtBuscarVariacao.Text; item.Save(item); } foreach (DataGridViewRow row in dataGridVariacao.Rows) { // Apaga o registro se estoque for 0 e se existir no banco if (Validation.ConvertToDouble(row.Cells["Estoque"].Value) == 0) { if (row.Cells["IDAttr"].Value != null && !string.IsNullOrEmpty(row.Cells["IDAttr"].Value.ToString())) { new ItemEstoque().Remove(Validation.ConvertToInt32(row.Cells["IDAttr"].Value)); continue; } } // Se a coluna for diferente de 0 ou diferente de vazio, inclui a linha no banco! if (!(Validation.ConvertToDouble(row.Cells["Estoque"].Value) > 0)) { continue; } string codeBarras; if (checkCodeBarras.Checked && string.IsNullOrEmpty(row.Cells["Código de Barras"].Value.ToString())) { codeBarras = CodeBarrasRandom(); } else { codeBarras = row.Cells["Código de Barras"].Value.ToString(); } // Se a coluna IDAttr não estiver vazio, atualiza o registro if (row.Cells["IDAttr"].Value != null && !string.IsNullOrEmpty(row.Cells["IDAttr"].Value.ToString())) { var updateEstoque = new ItemEstoque() .FindById(Validation.ConvertToInt32(row.Cells["IDAttr"].Value)) .FirstOrDefault <ItemEstoque>(); updateEstoque.Item = idProduto; updateEstoque.Referencia = row.Cells["Referencia"].Value.ToString(); updateEstoque.Codebarras = codeBarras; updateEstoque.Atributo = row.Cells["ID"].Value.ToString(); updateEstoque.Estoque = Validation.ConvertToDouble(row.Cells["Estoque"].Value); updateEstoque.Usuario = Settings.Default.user_id; updateEstoque.Title = row.Cells["Combinação"].Value.ToString(); updateEstoque.Save(updateEstoque); continue; } var estoque = new ItemEstoque { Item = idProduto, Referencia = row.Cells["Referencia"].Value.ToString(), Codebarras = codeBarras, Atributo = row.Cells["ID"].Value.ToString(), Estoque = Validation.ConvertToDouble(row.Cells["Estoque"].Value), Usuario = Settings.Default.user_id, Title = row.Cells["Combinação"].Value.ToString() }; estoque.Save(estoque); row.Cells["IDAttr"].Value = estoque.GetLastId(); } DialogResult = DialogResult.OK; Close(); }; btnClose.Click += (s, e) => Close(); }