/*
         * - Khi bấm cập sản phẩm thì sẽ kiểm tra thông tin đầy đủ với chính xác chưa nếu chưa thì sẽ xuất ra messagbox
         * - Ngược lại sẽ lưu dữ liệu vào model product và thực hiện việc cập nhật qua class ProductDao
         * - Nếu thực hiện thành công thì sẽ load lại dữ liệu và trả lại trạng thái ban đầu của các textbox và button
         * - Nếu thực hiện không thành công thì sẽ xuất ra MessageBox
         */
        private void bt_capNhatSanPham_quanLySanPhamControl_Click(object sender, EventArgs e)
        {
            if (!checkInfoProduct())
            {
                MessageBox.Show("Hãy điền đủ và chính xác thông tin");
                return;
            }
            else
            {
                model.Product product = new model.Product();
                product.id_product    = tb_maSanPham_quanLySanPhamControl.Text;
                product.name_product  = tb_tenSanPham_quanLySanPhamControl.Text;
                product.specification = tb_size_quanLySanPhamControl.Text;
                product.amount        = 0;
                product.price         = int.Parse(tb_giaSanPham_quanLySanPhamControl.Text);
                product.id_category   = cb_loai_quanLySanPhamControl.SelectedIndex + 1;

                if (product_dao.updateById(product, id_product))
                {
                    MessageBox.Show("Cập nhật sản phẩm thành công");
                    dtv_sanPham_quanLySanPhamControl.ClearSelection();
                    loadData();
                    bt_refresh_quanLySanPhamControl_Click(null, null);
                    dtv_loaiSanPham_quanLySanPhamControl.ClearSelection();
                    commandButtonManagementProduct.notAdjustItem();
                    notifyOtherControlDataChange(TypeDataChange.PRODUCT);
                    return;
                }
                else
                {
                    MessageBox.Show("Cập nhật sản phẩm không thành công");
                    return;
                }
            }
        }
        //Add new Product
        public bool addProduct(model.Product product)
        {
            String sql = "insert into PRODUCT values(@idProduct, @nameProduct, @specification, @amount, @price, @idCategory)";

            DbParameter param1 = df.createParam("@idProduct", product.id_product);
            DbParameter param2 = df.createParam("@nameProduct", product.name_product);
            DbParameter param3 = df.createParam("@specification", product.specification);
            DbParameter param4 = df.createParam("@amount", product.amount);
            DbParameter param5 = df.createParam("@price", product.price);
            DbParameter param6 = df.createParam("@idCategory", product.id_category);

            DbParameter[] parameters = { param1, param2, param3, param4, param5, param6 };

            int rows = product_helper.insertUpdateDelete(sql, parameters);

            return(rows == 1);
        }
        //update product by idProduct
        public bool updateById(model.Product product, String idOld)
        {
            String sql = "update PRODUCT set ID_PRODUCT = @idProduct, NAME_PRODUCT = @nameProduct, SPECIFICATION = @specification " +
                         ",AMOUNT = @amount, PRICE = @price, ID_CATEGORY = @idCategory where ID_PRODUCT like @idOld ";

            DbParameter param1 = df.createParam("@idProduct", product.id_product);
            DbParameter param2 = df.createParam("@nameProduct", product.name_product);
            DbParameter param3 = df.createParam("@specification", product.specification);
            DbParameter param4 = df.createParam("@amount", product.amount);
            DbParameter param5 = df.createParam("@price", product.price);
            DbParameter param6 = df.createParam("@idCategory", product.id_category);
            DbParameter param7 = df.createParam("@idOld", idOld);

            DbParameter[] parameters = { param1, param2, param3, param4, param5, param6, param7 };

            int rows = product_helper.insertUpdateDelete(sql, parameters);

            return(rows == 1);
        }