private void Items_GridView_ValidateRow(object sender, ValidateRowEventArgs e)
        {
            Items_GridView.ClearColumnErrors();

            Items    row  = e.Row.CastTo <Items>();
            GridView view = sender as GridView;

            if (string.IsNullOrEmpty(row?.ItemName))
            {
                e.Valid = false;
                //Set errors with specific descriptions for the columns
                GridColumn column = view.Columns[nameof(row.ItemName)];
                view.SetColumnError(column, BSMessage.BSM000011);
                return;
            }

            if (string.IsNullOrEmpty(row?.ItemSName))
            {
                e.Valid = false;
                //Set errors with specific descriptions for the columns
                GridColumn column = view.Columns[nameof(row.ItemSName)];
                view.SetColumnError(column, BSMessage.BSM000012);
                return;
            }

            // Kiểm tra tồn tại trong grid
            if (ItemsData.ToList().Count(o => o.ItemSName == row?.ItemSName) > 1)
            {
                e.Valid = false;
                //Set errors with specific descriptions for the columns
                GridColumn column = view.Columns[nameof(row.ItemSName)];
                view.SetColumnError(column, BSMessage.BSM000010);
                return;
            }
        }
        private void ItemType_GridView_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e)
        {
            Items_GridView.ClearColumnsFilter();
            ItemType selectedRow = ItemType_GridView.GetFocusedRow().CastTo <ItemType>();

            if (selectedRow == null)
            {
                return;
            }

            // filter grid
            Items_GridView.ActiveFilterString = $"[ItemTypeID] = '{selectedRow.ItemTypeID}'";
            Items_GridView.FocusedRowHandle   = 0;
        }
        private void Items_GridView_RowUpdated(object sender, RowObjectEventArgs e)
        {
            Items row      = e.Row.CastTo <Items>();
            bool  isNewRow = Items_GridView.IsNewItemRow(e.RowHandle);

            if (isNewRow)
            {
                row.Status = ModifyMode.Insert;
                return;
            }

            if (row.Status == ModifyMode.Insert)
            {
                return;
            }

            row.Status = ModifyMode.Update;
        }
        private void LoadItemUnitGridView()
        {
            using (ItemsController controller = new ItemsController())
            {
                try
                {
                    ItemUnitData = new BindingList <ItemUnit>(controller.GetItemUnit());
                    ItemUnit_GridControl.DataSource = ItemUnitData;

                    // Load lại source cho combobox DVT
                    Items_GridView.SetSourceToDropDown("ItemUnitID", ItemUnitData);
                }
                catch (Exception ex)
                {
                    BSLog.Logger.Error(ex.Message);
                    MessageBoxHelper.ShowErrorMessage(BSMessage.BSM000028, "<Danh mục Đơn vị tính>");
                }
            }
        }
        private void LoadItemTypeGridView()
        {
            using (ItemsController controller = new ItemsController())
            {
                try
                {
                    ItemTypeData = new BindingList <ItemType>(controller.GetItemType());
                    ItemType_GridControl.DataSource = ItemTypeData;

                    // Load lại source cho combobox loại SP
                    Items_GridView.SetSourceToDropDown("ItemTypeID", ItemTypeData);
                }
                catch (Exception ex)
                {
                    BSLog.Logger.Error(ex.Message);
                    MessageBoxHelper.ShowErrorMessage(BSMessage.BSM000028, "<Danh Mục Loại Sản Phẩm>");
                }
            }
        }
 private void Items_Delete_Button_Click(object sender, EventArgs e)
 {
     Items_GridView.DeleteSelectedRows();
 }