Example #1
0
        private void LoadData(DataGridView Table)
        {
            Table.Rows.Clear();

            var atributos = new ItemAtributos().FindAll().WhereFalse("excluir").Where("grupo", Id).Get <ItemAtributos>();

            foreach (var item in atributos)
            {
                Table.Rows.Add(
                    false,
                    item.Id,
                    item.Atributo
                    );
            }

            Table.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
Example #2
0
        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();
            };
        }
Example #3
0
        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;
        }
Example #4
0
        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();
        }