예제 #1
0
        /// <summary>
        /// Llena los campos del panel usado para editar con los datos del artículo previamente seleccionado.
        /// </summary>
        /// <param name="article"></param>
        /// Contiene los datos del artículo seleccionado.
        /// <param name="index"></param>
        /// Índice del artículo seleccionado.
        public void fillDetails(ArticlePOJO article, int index)
        {
            lblIdArticle.Text           = "Clave: " + article.IdArticle;
            lblNameArticle.Text         = article.Name;
            txtaDescriptionDetails.Text = article.Description;
            lblQuantityArticle.Text     = "Existencia: " + dgvArticles.Rows[index].Cells[2].Value;

            if (article.Image != null)
            {
                var newFilepath =
                    Path.Combine(Common.Util.GetSolutionFolder(), "Common", "Resources\\Articles", article.Image);
                if (myComputer.FileSystem.FileExists(newFilepath))
                {
                    sourceFileName           = newFilepath;
                    pbxDetails.ImageLocation = newFilepath;
                }
                else
                {
                    pbxDetails.Image = null;
                }
            }
            else
            {
                pbxDetails.Image = null;
            }
        }
예제 #2
0
        /// <summary>
        /// Filtra los resultados mostrados en la tabla según el parámetro ingresado, dicha búsqueda se realiza
        /// ya sea por clave o por nombre.
        /// </summary>
        /// <param name="parameter"></param>
        /// Contiene el valor a buscar.
        public void filterResults(string parameter)
        {
            dgvArticles.Rows.Clear();
            for (int i = 0; i < articlesList.Count; i++)
            {
                if (rbtnNameArticle.Checked == true)
                {
                    if (articlesList[i].Name.ToLower().Contains(parameter) == true)
                    {
                        dgvArticles.Rows.Add(articlesList[i].IdArticle, articlesList[i].Name, articlesList[i].Quantity);
                    }
                }
                else if (rbtnIdArticle.Checked == true)
                {
                    if ((articlesList[i].IdArticle + "").Contains(parameter) == true)
                    {
                        dgvArticles.Rows.Add(articlesList[i].IdArticle, articlesList[i].Name, articlesList[i].Quantity);
                    }
                }
            }

            if (dgvArticles.RowCount == 0)
            {
                pnlDetails.Visible = false;
            }
            else
            {
                selectedItem = ArticleDAO.getOneById(int.Parse(dgvArticles.Rows[0].Cells[0].Value + ""));
                index        = 0;
                fillDetails(selectedItem, index);
                dgvArticles.Rows[index].Selected = true;
            }
        }
예제 #3
0
        /// <summary>
        /// Actualiza los datos del artículo ingresado como parámetro.
        /// </summary>
        /// <param name="newArticle"></param>
        /// Contiene los datos que sobrescribirán a los anteriores.
        public static void updateArticle(ArticlePOJO newArticle)
        {
            try
            {
                Conexion     con = new Conexion();
                MySqlCommand cmd = new MySqlCommand("UPDATE articles SET idArticle = @P0, name = @P1, " +
                                                    "description = @P2, image = @P3 WHERE idArticle = @P0;");
                cmd.Parameters.AddWithValue("@P0", newArticle.IdArticle);
                cmd.Parameters.AddWithValue("@P1", newArticle.Name);
                cmd.Parameters.AddWithValue("@P2", newArticle.Description);
                cmd.Parameters.AddWithValue("@P3", newArticle.Image);

                con.ejecutarSentencia(cmd, false);
            }
            catch (Exception ex)
            {
                return;
            }
            finally
            {
                if (Conexion.conexion != null)
                {
                    Conexion.conexion.Close();
                }
            }
        }
예제 #4
0
        /// <summary>
        /// Inserta un nuevo artículo en la base de datos.
        /// </summary>
        /// <param name="newArticle"></param>
        /// Contiene los datos que conforman un artículo.
        /// <returns>
        /// Retorna -1 si la sentencia no se ejecuto correctamente.
        /// </returns>
        public static int insertArticle(ArticlePOJO newArticle)
        {
            try
            {
                Conexion     con = new Conexion();
                MySqlCommand cmd = new MySqlCommand("INSERT INTO articles VALUES(@P0,@P1,@P2,@P3);");

                cmd.Parameters.AddWithValue("@P0", newArticle.IdArticle);
                cmd.Parameters.AddWithValue("@P1", newArticle.Name);
                cmd.Parameters.AddWithValue("@P2", newArticle.Description);
                cmd.Parameters.AddWithValue("@P3", newArticle.Image);

                return(con.ejecutarSentencia(cmd, true));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(-1);
            }
            finally
            {
                if (Conexion.conexion != null)
                {
                    Conexion.conexion.Close();
                }
            }
        }
예제 #5
0
        /// <summary>
        /// Permite ubicar al artículo seleccionado para posteriores operaciones.
        /// </summary>
        private void dgvArticles_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                index = e.RowIndex;
                dgvArticles.Rows[index].Selected = true;
                pnlDetails.Visible = true;
                pnlAddEdit.Visible = false;
                btnsShowHide(true, true, true);

                selectedItem = ArticleDAO.getOneById(int.Parse(dgvArticles.Rows[index].Cells[0].Value + ""));

                fillDetails(selectedItem, index);
            }
            catch (Exception)
            {
            }
        }
예제 #6
0
        /// <summary>
        /// Permite o restringe funciones dependiendo de si existen o no artículos en la base de datos.
        /// </summary>
        /// <returns>
        /// Retorna true si no existen artículos en la base de datos, de otro modo retorna false.
        /// </returns>
        public bool isEmpty()
        {
            if (articlesList.Count == 0)
            {
                btnsShowHide(true, false, false);
                cleanPanelAddEdit();
                pnlAddEdit.Visible = false;
                pnlDetails.Visible = false;

                return(true);
            }

            pnlDetails.Visible = true;
            selectedItem       = articlesList[0];
            index = 0;
            fillDetails(selectedItem, index);
            dgvArticles.Rows[index].Selected = true;
            return(false);
        }
예제 #7
0
        /// <summary>
        /// Guarda ya sea un nuevo artículo o los cambios realizado a un artículo existente.
        /// </summary>
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (((spnIdArticle.Value) + "").Length == 0 || txtNameArticle.Text == "")
            {
                MessageBox.Show("Clave y nombre son campos obligatorios", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (btnSave.Text == "Guardar")
            {
                if (ArticleDAO.getOneById(int.Parse((spnIdArticle.Value) + "")) != null)
                {
                    MessageBox.Show("Clave duplicada, pruebe con otra", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                DialogResult dr = MessageBox.Show("¿Está seguro que desea guardar el artículo?", "Info",
                                                  MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.No)
                {
                    return;
                }

                ArticlePOJO newArticle = new ArticlePOJO();
                newArticle.IdArticle   = int.Parse(spnIdArticle.Text);
                newArticle.Name        = txtNameArticle.Text;
                newArticle.Description = txtaDescriptionAddEdit.Text;
                if (lblPath.Text != "")
                {
                    if (myComputer.FileSystem.FileExists(destinationFileName))
                    {
                        MessageBox.Show("Actualmente existe un archivo con el mismo nombre", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    myComputer.FileSystem.CopyFile(sourceFileName, destinationFileName);
                    newArticle.Image = lblPath.Text;
                    lblPath.Text     = "";
                }
                else
                {
                    newArticle.Image = null;
                }

                ArticleDAO.insertArticle(newArticle);
                updateTable();

                cleanPanelAddEdit();
                pnlAddEdit.Visible = false;
            }
            else
            {
                DialogResult dr = MessageBox.Show("¿Está seguro que desea cambiar el artículo?", "Info",
                                                  MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.No)
                {
                    return;
                }

                ArticlePOJO newArticle = new ArticlePOJO();
                newArticle.IdArticle   = int.Parse((spnIdArticle.Value) + "");
                newArticle.Name        = txtNameArticle.Text;
                newArticle.Description = txtaDescriptionAddEdit.Text;

                if (lblPath.Text != "")
                {
                    if (myComputer.FileSystem.FileExists(destinationFileName))
                    {
                        MessageBox.Show("Actualmente existe un archivo con el mismo nombre", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    var newFilepath =
                        Path.Combine(Common.Util.GetSolutionFolder(), "Common", "Resources\\Articles", selectedItem.Image);

                    if (myComputer.FileSystem.FileExists(newFilepath))
                    {
                        myComputer.FileSystem.DeleteFile(newFilepath);
                    }

                    myComputer.FileSystem.CopyFile(sourceFileName, destinationFileName);
                    newArticle.Image = lblPath.Text;
                    lblPath.Text     = "";
                }
                else
                {
                    newArticle.Image = selectedItem.Image;
                }

                ArticleDAO.updateArticle(newArticle);
                updateTable();

                cleanPanelAddEdit();
                pnlAddEdit.Visible = false;
            }

            pnlDetails.Visible = true;
            selectedItem       = articlesList[0];
            index = 0;
            fillDetails(selectedItem, index);
            dgvArticles.Rows[index].Selected = true;

            btnsShowHide(true, true, true);
        }